[cracking: шаг первый]

Xakep, номер #043, стр. 043-036-4


Среди отладчиков заслуженной популярностью пользуется SoftICE, разработанный фирмой NuMega. Мощь этого инструмента практически безгранична. Лишь краткое описание всех его команд займет не один десяток, а то и сотню страниц. После освоения SoftICE надобность в других отладчиках исчезает сама по себе. Это действительно «номер один». Все же упомяну другой неплохой инструмент такого рода - TRW2000. А при полном отсутствии опыта работы с подобными программами можно попробовать свои силы на древнем TD (Turbo Debugger).

В давние времена, когда программы были маленькими, дизассемблеры были вполне востребованы. И такое название, как Sourcer, старожилы еще помнят. И единственным инструментом, пригодным для исследования кода современных программ, учитывая их размеры, мог бы остаться отладчик. Но появилась поистине революционная разработка (причем российского автора) в мире дизассемблеров. Это IDA Pro (Interactive Disassembler). Среди многих его особенностей я бы отметил одну - возможность распознавать по сигнатурам стандартные библиотечные функции. База сигнатур поддерживает библиотеки практически всех компиляторов. Работая с IDA, можно взламывать многие программы, даже не прибегая к помощи отладчика. А утилита IDASym позволит данные, полученные в IDA, использовать в SoftICE при отладке. Той же цели служит плагин IDA2SICE (IDA to SoftIce symbol loader). Из других популярных дизассемблеров, менее функциональных, но и более простых в использовании, я бы отметил W32Dasm, имеющий встроенный отладчик.

Восстановление исходного текста программы на языке высокого уровня - давняя и недостижимая мечта человечества. Но кое-чего все же можно добиться. Во-первых, с помощью IDA определяются названия многих функций, но только библиотечных. Во-вторых, для программ, созданных некоторыми компиляторами, есть утилиты, позволяющие восстановить либо исходный текст, либо другую информацию, которая пригодится при взломе. Например, восстанавливаются формы, компоненты и их свойства и адреса обработчиков событий. Это существенно экономит время, требуемое на взлом. Например, Refox для языка FoxPro, VBDE и Visual Basic 3 Decompiler для языка Visual Basic, EXE2DPR и DeDe для Delphi. DeDe также работает с программами, откомпилированными в C++ Builder.

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

Многие описанные программы и другие полезные утилиты можно найти на сайтах: www.dore.ru, protools.cjb.net, www.exetools.com.

Назад на стр. 043-036-3  Содержание