[#] Поверхностный реверс инжиниринг IronPython
habrabot(difrex,1) — All
2015-05-18 00:30:02


Привет, хабрахабр! Столкнулся я с необходимостью модифицировать поведение одной чужой программы, написанной на языке Python. Казалось бы что сложного, Python ведь, бери исходник да модифицируй сколько влезет. Но не тут-то было. Дело осложнялось тем, что программа не просто была написана на Python, она была ещё и откомпилирована при помощи [IronPython][1] и никаких исходников не имелось. Для обычного, так скажем, канонического CPython существует Over 9000 различных декомпайлеров байткода из файлов .pyc обратно в .py, например [мой любимый] [uncompyle2][2] и другие, а для IronPython ничего подобного я не нашёл. То ли плохо искал, то ли таковых действительно не существует. Пришлось разбираться самому. Говорю сразу, процесс я не автоматизировал, всё так сказать hand made. [Кому интересно -- прошу под кат][3]

[1]: http://ironpython.net/
[2]: https://github.com/Mysterie/uncompyle2
[3]: http://habrahabr.ru/post/258123/#habracut