StranikS_Scan 4,210 #198358 Posted July 8, 2014 Ну не как не угодить) ))) Я подлючил PyRetic к клиенту... туфта это всё. Он от силы 20-30% кода извлекает и то криво, то ли нельзя... то ли он не доработан... то ли его доделывать надо, хз. Отдельные функции он например не декомпилирует вообще, пустоту выдает, классы как-то еще пытается. Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198522 Posted July 9, 2014 Я подлючил PyRetic к клиенту... туфта это всё. Он от силы 20-30% кода извлекает и то криво, то ли нельзя... то ли он не доработан... то ли его доделывать надо, хз. Отдельные функции он например не декомпилирует вообще, пустоту выдает, классы как-то еще пытается. Pyretic нужно допиливать судя по всему. Подскажите кто знает у меня вообще из HOWTO код не работает import sys, os sys.path.append(os.path.join(".", "pyREtic")) from pyREtic import REpdb REpdb.set_trace() и ничего не происходит ((( Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198526 Posted July 9, 2014 (edited) 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() Вуаля! И не забываем давить папку Projects после перед сеансом :)))) Edited July 9, 2014 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198553 Posted July 9, 2014 (edited) Я не знаю для чего это :))) но всё работает: 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() Вуаля! Безымянный.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 July 9, 2014 by Dkmn Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198555 Posted July 9, 2014 прям так и не знаешь для чего ))) Я юзаю функции декомпиляции файла и декомпиляции объекта в памяти из pyREtic.py, их же подцепил и в Орионе. А REpdb.py ни когда не пользовался. Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198556 Posted July 9, 2014 мне твою python27.dll нужно в папку с установленным питоном закинуть и в Terminal->Settings->Python прописать к ней путь? Я юзаю функции декомпиляции файла и декомпиляции объекта в памяти из pyREtic.py, их же подцепил и в Орионе. А REpdb.py ни когда не пользовался. только разбираюсь с питоном, дебагер мне как-то роднее ))) напиши простой пример декомпиляции из памяти плиз Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198563 Posted July 9, 2014 мне твою 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 начнёт шуршать.... только вот херовато он всё это умеет делать. Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198567 Posted July 9, 2014 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'> <<< <<< это он типа не захотел декомпилить? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198579 Posted July 9, 2014 (edited) по п.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 July 9, 2014 by StranikS_Scan 1 Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198581 Posted July 9, 2014 так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает? так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает? переставил - нету dll ((((( Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198584 Posted July 9, 2014 так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает? Хз, сейчас сам скачал поставил, ни какие опции не трогал, dll-ка появилась. Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198585 Posted July 9, 2014 так оттуда вроде и качал - сейчас переставлю заново - попробую, у меня винда x64 мож он ее при установке кудато-еще закидывает? переставил - нету dll ((((( нашел - он ее зараза в windows\syswow64 кладет )) там и для 2.6 и 3.4 валяются )) счас переложу буду тестить... Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198694 Posted July 9, 2014 (edited) Выкладываю Альфу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 July 23, 2014 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
o-0-0-0 77 #198712 Posted July 9, 2014 (edited) Ты где его качал? только с 32-битной (x86) версией dll-ки А я то думаю, что у меня всё через одно место получается ))) Edited July 9, 2014 by o-0-0-0 Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198742 Posted July 10, 2014 Выкладываю Альфу3 Скачать: PjOrion 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. Питон полный подключать или твоего достаточно? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198752 Posted July 10, 2014 (edited) Питон полный подключать или твоего достаточно? Для работы с клиентом игры, моего достаточно, в клиенте игры свой питон есть. Для написания модов моего питона как правило хватает. Если будет писать, что какой-то системный модуль или библиотека не найдены вот это и будет означать что нужно подключиться к полноценному питону. Например 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 July 10, 2014 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198846 Posted July 10, 2014 Все ясно, спасибо. При подключении через трансмиттер конструкция import REpdbREpdb.set_trace() не работает выдает в верхнем окне просто надпись, а сам отладчик не стартует ((( Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198848 Posted July 10, 2014 Все ясно, спасибо. При подключении через трансмиттер конструкция import REpdb REpdb.set_trace() не работает выдает в верхнем окне просто надпись, а сам отладчик не стартует ((( Делай по инструкции - тыц. Сейчас проверил, всё работает. Quote Share this post Link to post Short link Share on other sites
Dkmn 0 #198879 Posted July 10, 2014 Делай по инструкции - тыц. Сейчас проверил, всё работает. по инструкции работает, а надо не по инструкции ))) делаю так 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) *** и все (( вот скрин Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #198890 Posted July 10, 2014 (edited) @Dkmn, а у меня под клиентом он даже и не запускается. Как ты его запустил??? @Dkmn, а у меня под клиентом он даже и не запускается. Как ты его запустил??? Нашел причину - опять папка Projects. Почему нет квери-окна - это хз. Edited July 10, 2014 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites