anonymous@RULINUX.NET~# Last login: 2024-03-29 09:07:14
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Как поковыряться в недрах питоновой программы?

Суть вот какая... Есть питоновая программа, сконверченная под виндоус с помощью py2exe.

Программа в неком месте лажает(прибавляет к счетчику 1, а надо 10). Надобно эту программку отладить.

Идеальнее всего было бы выковырять ее из ехе, и покопаться в коде. Глядишь, тогда бы и под Линупсом можно было бы запустить.

Но как это сделать?

Ехе выглядит как обычный экзешник, внутри него, конечно, есть ссылки на питон и на файлик library.zip В файлике library.zip - куча файлов .pyd

Это что такое? Блокнотом они не читаются.

Я вроде, слышал про py и pyc - файлы.

Можно ли как-то подрубиться к запущенному процессу?

Я тут уже почти до ручки дошел - начал ковыряться в нем с помощью OllyDBG. Но искать что-то в недрах запущенного питона с помощью ассемблерного отладчика - не слишком большое удовольствие...

lockywolf(*) (2013-01-14 02:24:14)

[Ответить на это сообщение]
avatar
Скрыть

Re:Как поковыряться в недрах питоновой программы?

>Ехе выглядит как обычный экзешник, внутри него, конечно, есть ссылки на питон и на файлик library.zip В файлике library.zip - куча файлов .pyd
pyd - это что-то вроде dll. Там скомпиленный сишный код.

>Можно ли как-то подрубиться к запущенному процессу?
Имхо, если автор не оставил там дырки для этого, то не выйдет.

UPD: но если ошибка внутри чисто питоновских файлов (они должны быть, по идее), которые py/pyc - можно в них покопаться. Для pyc есть декомпиляторы.

SystemV(*)(2013-01-14 02:37:46)
Отредактировано SystemV по причине добавил
Emacs-w3m/1.4.508 w3m/0.5.3
avatar
Скрыть

Re:Как поковыряться в недрах питоновой программы?

Для винды Softice и хексэдитор, самое оно для поправить с +1 на +10.

anonymous(*)(2013-01-14 02:42:02)

Mozilla/6.0 (compatible; AppleWebKit/latest; like Gecko/20120405; };-> infernal_edition:goto-hell) Firefox/666
avatar
Скрыть

Re:Как поковыряться в недрах питоновой программы?

Я уже заемался ковыряться в этом ассемблерным отладчиком и хекс-редактором.

Мне в приницпе, достаточно поправить хранимые файлы.

Но там, сука, питоновский pickle. И у меня и он не декомпилится, и константы тамошние не те оказываются, что надо.

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

lockywolf(*)(2013-01-14 16:56:10)

avatar
Скрыть

Re:Как поковыряться в недрах питоновой программы?

>Но там, сука, питоновский pickle. И у меня и он не декомпилится, и константы тамошние не те оказываются, что надо.
Там можно версию протокола указать при десериализации.

pickle.dump(obj, file[, protocol])

UPD: хотя туплю, при загрузке он и сам должен определять протокол. Может надо открывать файл на чтение как "rb"?

SystemV(*)(2013-01-14 17:35:06)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.508 w3m/0.5.3
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!