Jump to content
Korean Random

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


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

318 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

Ну не как не угодить) )))

 

Я подлючил PyRetic к клиенту... туфта это всё. Он от силы 20-30% кода извлекает и то криво, то ли нельзя... то ли он не доработан... то ли его доделывать надо, хз. Отдельные функции он например не декомпилирует вообще, пустоту выдает, классы как-то еще пытается.

Link to comment
Short link
Share on other sites

Я подлючил PyRetic к клиенту... туфта это всё. Он от силы 20-30% кода извлекает и то криво, то ли нельзя... то ли он не доработан... то ли его доделывать надо, хз. Отдельные функции он например не декомпилирует вообще, пустоту выдает, классы как-то еще пытается.

Pyretic нужно допиливать судя по всему. Подскажите кто знает у меня вообще из HOWTO код не работает

import sys, os

sys.path.append(os.path.join(".", "pyREtic"))

from pyREtic import REpdb

REpdb.set_trace()

и ничего не происходит (((

Link to comment
Short link
Share on other sites

Pyretic нужно допиливать судя по всему. Подскажите кто знает у меня вообще из HOWTO код не работает

import sys, os

sys.path.append(os.path.join(".", "pyREtic"))

from pyREtic import REpdb

REpdb.set_trace()

и ничего не происходит (((

Я не знаю для чего это :))) но всё работает:

1. Берем Орион

2. Берем устанавливаем Python 2.7

3. Подключаем Орион к C:\Python27\python27.dll, так как для работы REpdb понадобятся либы, которые в комплекте с Орионом не идут

4. Скачиваем PyRetic 5.1 и извлекаем в папку c:\pyREtic_0.5.1\

5. Если в папке PyRetic-a есть папка Projects, то удаляем её вручную

6. В Орионе:

- командой Terminal - Add folder... добавляем папку c:\pyREtic_0.5.1 в окружение среды

- затем выполняем:

import REpdb
REpdb.set_trace()

Вуаля!

 

post-7009-0-15322800-1404896176_thumb.png

 

И не забываем давить папку Projects после перед сеансом :))))

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

Я не знаю для чего это :))) но всё работает:

1. Берем Орион

2. Берем устанавливаем Python 2.7

3. Подключаем Орион к C:\Python27\python27.dll, так как для работы REpdb понадобятся либы, которые в комплекте с Орионом не идут

4. Скачиваем PyRetic 5.1 и извлекаем в папку c:\pyREtic_0.5.1\

5. Если в папке PyRetic-a есть папка Projects, то удаляем её вручную

6. В Орионе:

- командой Terminal - Add folder... добавляем папку c:\pyREtic_0.5.1 в окружение среды

- затем выполняем:

import REpdb
REpdb.set_trace()

Вуаля!

 

attachicon.gifБезымянный.png

 

И не забываем давить папку Projects после перед сеансом :))))

прям так и не знаешь для чего )))

с папкой Projects помагает в pyREtic.py

def _quiet_makedir(self, dirname):

        """

        Make a dir, supress message if already exists

        """    

+++++if os.path.isdir(dirname)==False:

            try:

                os.makedirs(dirname)

            except Exception, err:

                if "Errno 17" not in str(err):

                    print "[-] Problem creating output directory '%s': %s"%(dirname, err)

                    raise

Спасибо, сейчас будем пробовать )))

Edited by Dkmn
Link to comment
Short link
Share on other sites

 

 

прям так и не знаешь для чего )))

 

Я юзаю функции декомпиляции файла и декомпиляции объекта в памяти из pyREtic.py, их же подцепил и в Орионе. А REpdb.py ни когда не пользовался.

Link to comment
Short link
Share on other sites

мне твою python27.dll нужно в папку с установленным питоном закинуть и в Terminal->Settings->Python прописать к ней путь?


Я юзаю функции декомпиляции файла и декомпиляции объекта в памяти из pyREtic.py, их же подцепил и в Орионе. А REpdb.py ни когда не пользовался.

только разбираюсь с питоном, дебагер мне как-то роднее ))) напиши простой пример декомпиляции из памяти плиз

Link to comment
Short link
Share on other sites

мне твою python27.dll нужно в папку с установленным питоном закинуть и в Terminal->Settings->Python прописать к ней путь?

только разбираюсь с питоном, дебагер мне как-то роднее ))) напиши простой пример декомпиляции из памяти плиз

 

1. Нет, я не это имел ввиду. У меня в комплекте идёт python27.dll и python27.zip - это почти весь питон-2.7.x, однако без lib-файлов. Если для работы нужны еще и lib файлы, а дебаггеру в PyRetic-е они нужны (он выдаст ошибку что их не находит), то не подключайся к dll в папке Ориона, а подключись к dll полноценного питона.

 

2. В Орионе есть опция в главном меню Decompile - Decompile Selected Object (pyRetic). Берешь в Орионе импортируешь какой-нибудь модуль например import os, затем выделяешь мышкой его имя os и опция станет доступной, жмякаешь на неё и PyRetic начнёт шуршать.... только вот херовато он всё это умеет делать.

Link to comment
Short link
Share on other sites

1. Нет, я не это имел ввиду. У меня в комплекте идёт python27.dll и python27.zip - это почти весь питон-2.7.x, однако без lib-файлов. Если для работы нужны еще и lib файлы, а дебаггеру в PyRetic-е они нужны (он выдаст ошибку что их не находит), то не подключайся к dll в папке Ориона, а подключись к dll полноценного питона.

 

2. В Орионе есть опция в главном меню Decompile - Decompile Selected Object (pyRetic). Берешь в Орионе импортируешь какой-нибудь модуль например import os, затем выделяешь мышкой его имя os и опция станет доступной, жмякаешь на неё и PyRetic начнёт шуршать.... только вот херовато он всё это умеет делать.

по п.2 понятно

по п.1 установлен python278 - в папке нет python27.dll??? где ее брать?

<<< [+] Object:  <module 'module1' from 'D:\Games\World_of_Tanks\res_mods\0.9.1\scripts\client\mods\module1.pyc'> <type 'module'>

<<<

<<<

это он типа не захотел декомпилить?

 

 

 

 

 

 

 

Link to comment
Short link
Share on other sites

по п.2 понятно

по п.1 установлен python278 - в папке нет python27.dll??? где ее брать?

<<< [+] Object:  <module 'module1' from 'D:\Games\World_of_Tanks\res_mods\0.9.1\scripts\client\mods\module1.pyc'> <type 'module'>

<<<

<<<

это он типа не захотел декомпилить?

 

Ты где его качал? Вот откуда качать надо - официальная ссылка. На странице тебе нужен Windows x86 MSI Installer (2.7.8), обрати внимание что Орион работает только с 32-битной (x86) версией dll-ки. Качай и устанавливай, после установки в папке c:\Python27\ будет лежать dll-ка вот к ней и подключай Орион.

 

Как я смог понять из работы с PyRetic - да это типа все что он смог сделать две пустые строчки :))))) Кто бы взялся за его доработку :))))) 

Edited by StranikS_Scan
  • Upvote 1
Link to comment
Short link
Share on other sites

так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает?


так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает?

переставил - нету dll (((((

Link to comment
Short link
Share on other sites

так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает?

 

Хз, сейчас сам скачал поставил, ни какие опции не трогал, dll-ка появилась. 

Link to comment
Short link
Share on other sites

так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает?

переставил - нету dll (((((

нашел - он ее зараза в windows\syswow64 кладет )) там и для 2.6 и 3.4 валяются )) счас переложу буду тестить...

Link to comment
Short link
Share on other sites

Выкладываю Альфу3


Скачать:

 


Что изменилось:

1. Переписал алгоритм трансмиттера, теперь выполнение скриптов не зависает при остановке реплеев

2. При выключении трасмиттера из меню WOT-Transmission - Send command - Disconnect, он полностью остановиться а вывод инфы от клиента будет перенаправлен обратно в python.log

3. Сделал доступным функцию декомпиляции в памяти из PyRetic, принцип работы как раньше, только расположена она отдельно в WOT-Transmission - Others - Decompile selected object...

4. Добавил команды "усыпить" и "разбудить" трансмиттер, обратите внимание что пока он спит данные на выходе и на входе кэшируются, так что когда вы его разбудете, он их спокойно за раз и обработает.

 

Что касается п.3, то от этой функции больше забавы чем пользы. Сама декомпиляция требует времени от 2-5 минут до 20-30 минут в зависимости от объема декомпилируемого модуля и всей той шняги что он в себя импортировал при запуске... да-да вы правильно прочитали, этот PeRetic будет именно так себя и вести... потому и времени может уйти на декомпиляцию не хило. А вот что вы получите на выходе - это надо видеть самому, там 20-30% будет полезного кода... может у кого и больше... почему так - хз.

 

Если интерес еще не пропал и охота чего-то "декомпильнуть", то делаем примерно так:

1. Запускаем игру через WOT-Transmission - Run - WorldOfTanks

2. После загрузки вы окажитесь внутри клиента в модуле wottransmission.transmitter, о чем вам Орион любезно и напишет:

>>> Connection to WOT: v.0.9.1 build 717 [C:\Games\World_of_Tanks\]
>>> Start the game...
*** WOT-Transmission initialization completed!
*** You are in the wottransmission.transmitter, use a WOT-Transmission menu command to work with the client
*** =====================================================================================
*** Load mods: AutoTelescope_mod
*** Load mods: BalCalc_mod
*** Load mods: BattleInterface
*** Load mods: fixDP
*** Load mods: InfoPanel
*** Load mods: observed
*** [NOTE] (scripts/common/fortified_regions.py, 130): fortified_regions.init()
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 4 was selected.
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 3 was selected.

3. Теперь импортируем в своё окружение любой мод из тех что у вас загрузиться вместе с игрой или любой другой, какой хотите.... Например, пишем вручную а потом Shift+F5:

from mods import InfoPanel

4. Теперь выделяем слово InfoPanel в самом текстовом редакторе, идем в главное меню и жмякаем WOT-Transmission - Others - Decompile selected object... Начнется декомпиляция:

*** Decompilation started, output buffering is enabled, please wait...
.......... 

5. Ну и остается ждать и ждать, когда декомпиляция закончиться, соответствующее сообщение у вас появиться в конце:

.......
*** Decompilation completed, output buffering is disabled!

Ну а перед этим сообщением и будет питон-код, который смог получить PyRetic.

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

Ты где его качал? только с 32-битной (x86) версией dll-ки

А я то думаю, что у меня всё через одно место получается )))

Edited by o-0-0-0
Link to comment
Short link
Share on other sites

Выкладываю Альфу3


Скачать: attachicon.gifPjOrion 1.0.8Alpha3 with P2.7.zip

 


Что изменилось:

1. Переписал алгоритм трансмиттера, теперь выполнение скриптов не зависает при остановке реплеев

2. При выключении трасмиттера из меню WOT-Transmission - Send command - Disconnect, он полностью остановиться а вывод инфы от клиента будет перенаправлен обратно в python.log

3. Сделал доступным функцию декомпиляции в памяти из PyRetic, принцип работы как раньше, только расположена она отдельно в WOT-Transmission - Others - Decompile selected object...

4. Добавил команды "усыпить" и "разбудить" трансмиттер, обратите внимание что пока он спит данные на выходе и на входе кэшируются, так что когда вы его разбудете, он их спокойно за раз и обработает.

 

Что касается п.3, то от этой функции больше забавы чем пользы. Сама декомпиляция требует времени от 2-5 минут до 20-30 минут в зависимости от объема декомпилируемого модуля и всей той шняги что он в себя импортировал при запуске... да-да вы правильно прочитали, этот PeRetic будет именно так себя и вести... потому и времени может уйти на декомпиляцию не хило. А вот что вы получите на выходе - это надо видеть самому, там 20-30% будет полезного кода... может у кого и больше... почему так - хз.

 

Если интерес еще не пропал и охота чего-то "декомпильнуть", то делаем примерно так:

1. Запускаем игру через WOT-Transmission - Run - WorldOfTanks

2. После загрузки вы окажитесь внутри клиента в модуле wottransmission.transmitter, о чем вам Орион любезно и напишет:

>>> Connection to WOT: v.0.9.1 build 717 [C:\Games\World_of_Tanks\]
>>> Start the game...
*** WOT-Transmission initialization completed!
*** You are in the wottransmission.transmitter, use a WOT-Transmission menu command to work with the client
*** =====================================================================================
*** Load mods: AutoTelescope_mod
*** Load mods: BalCalc_mod
*** Load mods: BattleInterface
*** Load mods: fixDP
*** Load mods: InfoPanel
*** Load mods: observed
*** [NOTE] (scripts/common/fortified_regions.py, 130): fortified_regions.init()
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 4 was selected.
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 3 was selected.

3. Теперь импортируем в своё окружение любой мод из тех что у вас загрузиться вместе с игрой или любой другой, какой хотите.... Например, пишем вручную а потом Shift+F5:

from mods import InfoPanel

4. Теперь выделяем слово InfoPanel в самом текстовом редакторе, идем в главное меню и жмякаем WOT-Transmission - Others - Decompile selected object... Начнется декомпиляция:

*** Decompilation started, output buffering is enabled, please wait...
.......... 

5. Ну и остается ждать и ждать, когда декомпиляция закончиться, соответствующее сообщение у вас появиться в конце:

.......
*** Decompilation completed, output buffering is disabled!

Ну а перед этим сообщением и будет питон-код, который смог получить PyRetic.

Питон полный подключать или твоего достаточно?

Link to comment
Short link
Share on other sites

Питон полный подключать или твоего достаточно?

 

Для работы с клиентом игры, моего достаточно, в клиенте игры свой питон есть.

 

Для написания модов моего питона как правило хватает. Если будет писать, что какой-то системный модуль или библиотека не найдены вот это и будет означать что нужно подключиться к полноценному питону. Например urllib юзает библиотеку ...\libs\_socket.lib. При работе с моим питоном получите ошибку:

from urllib import urlopen
<<< Traceback (most recent call last):
<<<   File "<string>", line 1, in <module>
<<<   File "", line 26, in <module>
<<<   File "", line 47, in <module>
<<< ImportError: No module named _socket

Подключаемся к c:\Python27\python27.dll и проблема решена.

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

Все ясно, спасибо.

При подключении через трансмиттер конструкция

import REpdb
REpdb.set_trace()

не работает

выдает в верхнем окне просто надпись, а сам отладчик не стартует (((

Link to comment
Short link
Share on other sites

Все ясно, спасибо.

При подключении через трансмиттер конструкция

import REpdb

REpdb.set_trace()

не работает

выдает в верхнем окне просто надпись, а сам отладчик не стартует (((

Делай по инструкции - тыц. Сейчас проверил, всё работает.

Link to comment
Short link
Share on other sites

Делай по инструкции - тыц. Сейчас проверил, всё работает.

по инструкции работает, а надо не по инструкции )))

делаю так

1.подключил питон полный

2.WOT-Transmission->Run->WorldOfTanks

видим:

>>> Python connected: 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)]
>>> Orion syntax: @!abc -> print abc; @!!module -> import module
>>> Connection to WOT: v.0.9.1 build 717 [D:\Games\World_of_Tanks\]
>>> Start the game...
*** WOT-Transmission initialization completed!
*** You are in the wottransmission.transmitter, use a WOT-Transmission menu command to work with the client
*** =====================================================================================
*** Load mods: Circle15
*** Load mods: minimap_helper
***
*** Damage Panel 0.8.10 v.3 by GambitER
*** Load mods: SessionStatistic
*** Load mods: sights
*** Load mods: stat
*** [STAT] started
*** Load mods: TeamHPPools
*** [NOTE] (scripts/common/fortified_regions.py, 130): fortified_regions.init()
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 4 was selected.
*** [NOTE] (scripts/client/post_processing/__init__.py, 275): The quality = 3 was selected.

3. WOT-Transmission->Others->Add Folder to <sys.path>

*** Added a folder 'D:\Games\pyREtic_0.5.1'
*** ['D:\\Games\\pyREtic_0.5.1', 'D:/Games/PjO108/wottransmission.zip/wottransmission', 'D:/Games/PjO108/wottransmission.zip', 'D:/Games/PjO108/dcpack.zip/dcpack', 'D:/Games/PjO108/dcpack.zip', 'D:/Games/PjO108/', u'scripts/client', u'scripts/common', u'scripts/common/Lib', u'scripts/client/DLLs/win32']

4.

import REpdb
REpdb.set_trace()

Shift-F5

Видим

***
*** =====================================================
*** REpdb is part of the pyREtic toolkit. Rich Smith 2010
*** =====================================================
***
*** --Return--
*** > <string>(2)<module>()->None
*** (REpdb:default)
***

и все ((

вот скрин  post-23968-0-20858600-1405019160_thumb.jpg

Link to comment
Short link
Share on other sites

@Dkmn, а у меня под клиентом он даже и не запускается. Как ты его запустил??? 


@Dkmn, а у меня под клиентом он даже и не запускается. Как ты его запустил??? 

 

Нашел причину - опять папка Projects.

Почему нет квери-окна - это хз.

Edited by StranikS_Scan
Link to comment
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...