![]() |
eXeL@B —› Вопросы новичков —› Декомпилляция питона (самосборка вроде) |
Посл.ответ | Сообщение |
|
Создано: 05 мая 2013 21:25 · Личное сообщение · #1 Привет всем! Всех с праздником, удачи и здоровья! Есть питоновский exe`шник (pyinstall). Выковыривать оттуда .pyc научился, хотя и нудное это дело по одному файлику. Попытка декомпилляции тем, что нашел в сети (uncompyle2, еще что-то) приводит к ошибке - Unknown magic number - xx. Почитал про это дело - судя по всему, самосборный питон с переназначенными мнемониками. Версия питона - 2.7.1. Тестовые скрипты декомпилятся нормально. Вопрос: каким образом можно декомпилировать это чудо. как найти соответствие мнемоник байт коду? На что обратить внимание? Вопрос №2 (оффтопный): exe`шник сразу запихнул в оллю (из любопытства), запускается все ок. Но! Прога вызывает сама себя из командной строки (я так понял) поэтому когда нажимаю ,допустим, "ок" - в олли терминируется и запускает свою свежую копию. Вроде как параметры передает. Как дебажить вторую копию? Атач не канает - терминируется. Всем спасибо З.Ы. с питоном столкнулся вчера )) ![]() |
|
Создано: 05 мая 2013 21:46 · Личное сообщение · #2 sapog93 пишет: Вопрос №2 (оффтопный): exe`шник сразу запихнул в оллю (из любопытства), запускается все ок. Но! Прога вызывает сама себя из командной строки (я так понял) поэтому когда нажимаю ,допустим, "ок" - в олли терминируется и запускает свою свежую копию. Вроде как параметры передает. Как дебажить вторую копию? Атач не канает - терминируется. Ставь бряки на CreateProcessA, ShellExecuteA, WinExec и смотри с какими параметрами создается вторая копия. Потом в ольке File-Open и вписывай параметры в строку Arguments ![]() |
|
Создано: 05 мая 2013 21:49 · Личное сообщение · #3 sapog93 пишет: Unknown magic number по magic number многие программы опознают файлы, пригодные для обработки. то, что мэджик не сошёлся - еще не означает, что это sapog93 пишет: самосборный питон с переназначенными мнемониками кинь файл, там проверим sapog93 пишет: Вроде как параметры передает. Как дебажить вторую копию? подсмотри параметры в Process Explorer и запусти файло в ольке, указав те параметры в качестве командной строки. ![]() |
|
Создано: 05 мая 2013 22:15 · Поправил: sapog93 · Личное сообщение · #4 Ребя!! Респект. Сам не допер.. А вот файло из екзешника (там их много). Точнее из outPYZ1.pyz выдернул. Почти со всеми ошибка выскакивает. Остальные видать стандартные библиотеки. и в хекс редакторе у нормальных по первым двум байтам можно вычислить версию питона. А в этом.. борода. Еще вспомнил, что у файликов (выдирал ArchiveViewer.py) расширение на .pyc ручками менял. А еще есть какое-то .pyo вроде.. Еще подменял python27.dll. Брал из system32. С подменой вообще ничего не работает. Поэтому сделал вывод, что самопис ![]() ![]() |
|
Создано: 05 мая 2013 22:46 · Поправил: -=AkaBOSS=- · Личное сообщение · #5 sapog93 выложенному файлу не хватает заголовка: magic db 0xB3, 0xF2, 0x0D, 0x0A timestamp dd ? /ADD: timestamp - время/дата компиляции, очевидно же вопросительный знак я поставил просто по привычке ассемблерщика) ставь в ноль, не ошибёшься. sapog93 пишет: как вы поняли чего не хватает? питон у меня установлен, скомпилил простой скрипт и сравнил sapog93 пишет: Но появился вопрос - можно взять начало из рабочего и вставить? можно и нужно. ![]() |
|
Создано: 05 мая 2013 23:00 · Поправил: sapog93 · Личное сообщение · #6 -=AkaBOSS=- знать бы еще, что это такое - timestamp dd.. ![]() я так понял нужно добавить это в начало файла и он декомпильнется? и если да, то как вы поняли чего не хватает? Спасибо, уже сравнил и увидел разницу. Но появился вопрос - можно взять начало из рабочего и вставить? Могу сам попробовать, но интересно как правильно делается ![]() |
|
Создано: 05 мая 2013 23:04 · Поправил: reversecode · Личное сообщение · #7 sapog93 пишет: и если да, то как вы поняли чего не хватает? опыт sapog93 пишет: Но появился вопрос - можно взять начало из рабочего и вставить? Могу сам попробовать, но интересно как правильно делается можете так и делается можете вообще сами числа дописать ![]() |
|
Создано: 05 мая 2013 23:26 · Личное сообщение · #8 |
|
Создано: 06 мая 2013 00:34 · Личное сообщение · #9 |
|
Создано: 06 мая 2013 00:45 · Личное сообщение · #10 |
|
Создано: 06 мая 2013 01:16 · Личное сообщение · #11 |
|
Создано: 06 мая 2013 11:02 · Личное сообщение · #12 |
|
Создано: 06 мая 2013 11:50 · Поправил: sapog93 · Личное сообщение · #13 Airenikus да, так и делаю... ) А можно как-нибудь распаковать сразу все файлы? В ArchiveViewer.py что-то не нашел как это сделать upd. Не нашел как распаковать сразу все, точнее нашел, но не работает. Пришлось ручками, но все оказалось проще - ключевых файлов было мало.. Так что, можно сказать, все получилось. Всем спасибо ![]() |
|
Создано: 13 мая 2013 16:51 · Личное сообщение · #14 |
![]() |
eXeL@B —› Вопросы новичков —› Декомпилляция питона (самосборка вроде) |
Эта тема закрыта. Ответы больше не принимаются. |