AtomSTAT

 

Границы моего языка означают границы моего мира. 

 Л. Карнап, Л. Витгенштейн. Логическая семантика.  

                            

 

"Зачем вам это, батенька. Лучше б водки выпили...."
© Н. В. Гоголь

 

 

 

Чем полезно иметь source code?

Имея source code его можно модифицировать, усовершенствовать и использовать для наследования других классов.

 

Имею опыт Reverse engineering файлов byte-code от Java.  Декомпиляция *.class в исходные файлы *.java. Имею опыт декомпиляции с байткодов Java(Жабы) или Python (Питона). На процесс написания исходных текстов для создания программ Soft-ware фирмы тратят большие инвестиции, в связи, с чем у них естественно возникает желание source code считать коммерческой тайной, но есть другая философия называемая open-source.

 

Для дизассемблирования программ обычно применяют движки дизассемблеров IDA, совместно с Python или Perl-ом для reverse engeneeringа что позволяет вскрывать и после этого использовать чужие уникальные алгоритмы. Успешные алгоритмы конкурентов, можно использовать для наследования.

Совместное использование движка дизассемблера c  Python-ом или Perl-ом может быть использована для снятия дампа памяти “архи-драгоценной” программы и сохранения её в файл.

 

Для программ, написанных на С+ Builder, Kylix  и Delphi, IDA не всегда распознает функции, классы и т.д. особенно, если программа была запакована. Поэтому иногда можно и не распаковывать программу, для ее анализа, а использовать Memory dumpers. То есть дизассемблировать не сам файл, а его образ в памяти (так называемый дамп).

 

Использование UML-диаграмм позволяет получить более читаемый года и понятия алгоритмы после декомпиляции  (строит UML диаграммы и прочее).

            Использование дисассемблер IDA Pro, с Python.   Бывают ситуации, когда программа реализует что-то, и проблематично понять, как это делается, в таких случаях весьма помогает прикручивание Perl  к дисассемблеру, также это помогает при reverse engineering  для исследования  web-технологий.

 

 

Из интервью Ильфака автора известного дизассемблера IDA Pro

 

  • TanaT: А может ли IDA Pro дизассемблировать байт-код Java и управляемый код на MSIL?
  • Ильфак: Конечно же, IDA дизассемблирует программы на Java или C#. И что примечательно, она может дизассемблировать классы и в очень тяжелых случаях, когда входной файл был испорчен, но все еще работоспособен.
  • Ильфак: Мы сами не планируем поддержку других языков, но любой пользователь IDA может это сделать сам с помощью IDA SDK. Я даже краешком уха слышал про подобные работы для подключения Python к IDA.

 

Ильфак: Ну, идея вроде лежит на поверхности? Нет ни одной большой программы, которая бы не позволяла запрограммировать ее тем или иным способом. Честно говоря, мне хотелось написать кусочек компилятора (лексический + синтаксический анализ, как это описано у Ахо и Ульмана), вот скрипты и оказались неплохим поводом. Сегодня я бы не стал писать свой язык, а просто бы подключил имеющиеся, например Perl или Python. Это было бы и проще, и позволило бы большему количеству пользователей писать скрипты.  

 

 

 

 

 

 

© Тимур Юнусов

e-mail: dll99@mail.ru


 

Используются технологии uCoz