Jump to content
Korean Random
StranikS_Scan

PjOrion - редактирование, компиляция, декомпиляция, обфускация модов (Версия: 1.3.5 Дата: 11.08.2019)

Пользуетесь ли вы Орионом?  

314 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Recommended Posts

А в реплее на паузе можно замерять? Иначе будет сложно сохранить одинаковую сцену.

http://www.koreanrandom.com/forum/topic/11842-xvm-падение-fps-микрофризы-исследуем-и-исправляем/?p=151935

Советую вам перейти в ту тему. Эта тема для проекта PjOrion.

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Тоже мне чудо. Замерил фпс, гляда в пол да еще в режиме отсчета боя, когда нагрузка минимальна. В бою надо фпс мерить в замесах с интерфейсом и без и глядеть какая разница будет.

Садит интерфейс по сути [(65 - 46) / 46 = 41%, (65 - 46) / 65 = 29%, avg 35%] при отсутствии больщой нагрузки. Когда таки это падение некритично.

В бою нагрузка значительно больше, и процент влияния интерфейса будет соответственно меньше. Как раз таки в крит. моменты. Так что особого выигрыша это не даст. А что даст - так это переход с калькулятора на нормальный комп. В принципе WoT еще достаточно лоялен к железу. Armored Warfare у тебя вообще вряд ли запустится...

Share this post


Link to post

Short link
Share on other sites

В июле будет, сейчас не когда.

Что-то visual-парсер переписать на питон захотелось...

post-16296-0-77695500-1434993115_thumb.png

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
Что-то парсер переписать на питон захотелось...

 

Я сразу отказался из-за меньшего быстродействия и отсутствия реальной многопоточности. 10к файлов без параллельных потоков это унылое ожидание. А 30к файлов - нереально дождаться будет.

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Я сразу отказался из-за меньшего быстродействия и отсутствия реальной многопоточности. 10к файлов без параллельных потоков это унылое ожидание. А 30к файлов - нереально дождаться будет.

Да мне зачем такое быстродействие

Share this post


Link to post

Short link
Share on other sites

Да мне зачем такое быстродействие

 

А тебе зачем вообще?

Share this post


Link to post

Short link
Share on other sites

Я сразу отказался из-за меньшего быстродействия и отсутствия реальной многопоточности.

Ну не особо питон и медленнее, если писать код правильно. Разница конечно есть, но при правильном подходе она не будет особо заметна.

Что касается многопоточности и GIL (одновременное выполнение только 1 потока)... да есть такая проблемка. Но в принципе можно просто запустить несколько дочерних процессов. Взаимодействие процессов правда сложно будет сделать. В этом плане питон проигрывает.

 

Насчет быстродействия... Питон игры почему-то работает намного (2-3 раза) медленнее чем в чистом виде при запущенной игре... Такое ощущение, что игра сильно режет ему ресурсы. Есть какие-нибудь адекватные способы его ускорить? И может это как-то быть связано с запуском скрипта через Орион?

Edited by GPCracker

Share this post


Link to post

Short link
Share on other sites

А тебе зачем вообще?

Плагин для Blender пишу.

Сейчас завис на xml.

minidom такой неудобный...

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

 

 

Насчет быстродействия... Питон игры почему-то работает намного (2-3 раза) медленнее чем в чистом виде при запущенной игре... Такое ощущение, что игра сильно режет ему ресурсы. Есть какие-нибудь адекватные способы его ускорить? И может это как-то быть связано с запуском скрипта через Орион?

 

Питон без игры работает быстрее питона в игре? Ну логично, ведь питон без игры сам по себе ни чем не занять, а в игре он постоянно всякие циклы крутит, занят бедняга.

 

Способ запуска скрипта не имеет значения. 

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan, вот что портировал

BWModelViewer.zip

 

10к файлов без параллельных потоков это унылое ожидание.

import time
t = time.time()
for i in range(10000):
	ps1 = Packed_Section('Gun_08.visual')
print time.time()-t
~20 секунд Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan, ты был прав)

 

совместимость кода с форточками у D6 феноменальная при хорошей компактности и хорошем быстродействии ;)))

Проблем нет даже с запусков в "Вине"

Выглядит как родной GTK+

post-16296-0-45724600-1435308220_thumb.png

post-16296-0-24033500-1435308669_thumb.png

 

P.S. заметил баг при минимизации скрипта(Remove docstrings and comments)

if(self.primitive_magicnumber == "0x42A14E65"):
заменяется на

if(self.primitive_magicnumber==):
и

impl.createDocument(None,"primitives",None)
заменяется на

impl.createDocument(None,,None)
также

text1 = """text"""
text2 = "text"
 

заменяется на

text1=
text2=
хотелось бы улучшенную логику, например если этот текст идет после = или в вызове функций, то не удалять

 

P.P.S. форум радует своими лагами)

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

@StranikS_Scan, ты был прав)

Проблем нет даже с запусков в "Вине" :ok:

Выглядит как родной GTK+))

 

 

 

P.S. заметил баг: при минимизации скрипта удаляется текст в "" и сами кавычки, хотелось бы улучшенную логику, например если этот текст идет после =, то не удалять

 

Manifest.res выручает ;)

 

Что именно удаляет? Починю. Попробуй локализовать ситуацию.

Edited by StranikS_Scan
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Очередная тестовая версия 1.3.0 Alpha

--------------------------

 

1. Исправлены ошибки парсинга строковых значений питон-кода в функции Minimize

2. В алгоритм протектора добавлен exe-инжектор (опция Use EXE-Injector), выполняющий вставку зашифрованного байт-кода непосредственно в память запущенного процесса, также внесены некоторые улучшения в код протектора

3. Добавлена поддержка вывода данных в лог из потоков, запущенных в питоне
4. Добавлены функции чтения и пакетной распаковки различных игровых файлов xml-формата
5. При обработке большого числа файлов с целью повышения быстродействия программы убран вывод промежуточной информации в окне редактора
6. В WOT-Transmission алгоритм подключения сделан универсальным и не зависящим от версии клиента, также добавлен проброс логов в файл python.log

 

Как работает инжектор:

  • инжектор это exe-файл, который прячется внутри вашего pyc-мода, можете не искать его там невооруженным глазом, вы его не увидите
  • при запуске мода на одной из стадий загрузки кода этот инжектор будет извлечен, а затем запущен в системе от имени того приложения, в котором вы юзаете питон
  • затем инжектор найдет в памяти приложения то что ему нужно и сделает с этим то что ему треба
  • после этого загрузка мода будет завершена

 

На что тут хотелось бы обратить внимание:

  1. Как, думаю все понимают, запуск и работа инжектора это не мгновенные операции, а значит при загрузке скрипта возможны задержки на 0,5-1 секунду, по моим тестам это не критично ни для кого, т.к. клиент игры грузиться даже на быстрых кумпутерах 5-10 секунд. В связи с этим интересно что будет если таким протектором защитить скажем 5-10 модов на старом древнем пылесосе, насколько возрастёт время загрузки клиента игры? Я на своем ноуте клал 10 модов защищенных инжектором и честно говоря на глаз не уловил разницы во времени загрузки клиента
  2. Инжектор пока что универсальный, т.е. он не отслеживает где запущен скрипт, и срабатывает на любых приложениях, я лично тестил его работу на WOT, на Орионе, в питон-плагине в Notepad++ и в IDLE стандартного питона 2.7, проблем ни где не возникло. В будущем ограничения будут добавлены, также наверно еще и опции будут всякие.
  3. Очень интересна какова будет реакция со стороны нубо-антивирусов на работу инжектора. Просьба отписываться кто будет тестировать )))

 

Версия 1.3.0 Alpha 2

--------------------------

 

  • пофиксел ошибку с __builtin__ в протекторе

 

PjOrion 1.3.0 Alpha 2 with P2.7.zip

Edited by StranikS_Scan
  • Upvote 5

Share this post


Link to post

Short link
Share on other sites

1. Исправлены ошибки парсинга строковых значений питон-кода в функции Minimize

Не совсем исправил.

Сейчас PjOrion это:

text1 = """kkk"""
text2="""jjj"""

Заменяет на

text1=text2="""jjj"""

Это приводит к ошибке

Также Drag&Drop работает странно.

И спасибо за галочку в "Unpack XML" :ok: Она ведь не работает как надо)

Unpack folder: 'Z:\media\W7HOME\Games\World_of_Tanks\res\scripts\item_defs'

Files unpacked/found - 0/875

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
Не совсем исправил.

 

А я это и не исправлял. Я там другое правил, там косяк с фильтрами был. Что касается комментариев, то сейчас он режет """...""" и '''...''' полагая что это комментарии. Что в принципе так и бывает в большинстве случаев.

def aaa():
  '''Гы гы функция'''
  return "Привет '''Вася'''"

На выходе будет:

def aaa():
  return "Привет '''Вася'''"

Можно немного улучшить и добавить проверку на то что коммент в отдельных строках написан. Попробую. Но опять таки вот такой код он все равно не правильно обработает

a = \
'''123'''
print a

Делать сложный анализатор не хочется, я чисто на regExp сделал.

 

 

Она ведь не работает как надо)

 

Не знаю, умну все работает. 

 

 

Также Drag&Drop работает странно.

 

А чего там странного? 

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Делать сложный анализатор не хочется, я чисто на regExp сделал.

Сделай по-дефолту снятую галочку и напиши (No recommended)

Я просто так скрипт убил)

 

А чего там странного?

Прога вылетает с ошибкой при перетаскивании файла(pyc или visual)

 

Не знаю, умну все работает.

Не знаю, у меня ничего не работает.

 

 

 

Очень интересна какова будет реакция со стороны нубо-антивирусов на работу инжектора.

А у кого-то есть антивирусы?

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites
Сделай по-дефолту снятую галочку и напиши (No recommended) Я просто так скрипт убил)

 

Ну ты как бы первый такой пока что. Думаю запомнишь без надписей =)

 

a = """Привет""" это сильно конечно, такое по умолчанию юзать вместо '...' и "..."

 

 

Прога вылетает с ошибкой при перетаскивании файла(pyc или visual)
Не знаю, у меня ничего не работает.

 

 

Чего-то у тебя с системой. Помнится еще в XCPad было 1-2 человека у кого постоянно что-то не запускалось и вылетало с крашем. Я хз чего ты там с системой творишь. От Админа запускать пробовал?

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites
Я хз чего ты там с системой творишь. От Админа запускать пробовал?

Программа вылетает с ошибкой при перетаскивании файла(pyc или visual) именно в Wine, что говорит о каком-то баге.

Что  происходит при перетаскивании? Как инициализируется окно? Можешь выложить код?

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Программа вылетает с ошибкой при перетаскивании файла(pyc или visual) именно в Wine, что говорит о каком-то баге.

Что  происходит при перетаскивании? Как инициализируется окно? Можешь выложить код?

 

Я юзаю вот такую штуку 

Edited by StranikS_Scan

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...