С чего начинать?

Итак Вы приняли решение изучать Reverse Engineering, но не знаете с чего начинать. Мы попытаемся Вам помочь и укажем, что Вы должны изучить в первую очередь. Не воспринимайте это как догму, просто попробуйте придерживаться наших советов.

Первый, и наиболее важный шаг: Вы должны скопировать и установить на свой компьютер программу-отладчик, с помощью которой будете исследовать все остальные программы. Отладчик предназначен для обнаружения ошибок в программе и их устранения непосредственно в процессе ее выполнения. Конечно, никаких ошибок искать мы не будем, просто для работы нам необходимы все те функции, которые предоставляет отладчик. Наиболее важным свойством отладчика является то, что исследуемая программа полностью находится под его контролем, и Вы легко можете влиять на ход ее выполнения. Для нас это действительно наиболее нужное свойство отладчика - без возможности контроля над ходом выполнения программы мы не добъемся никаких положительных результатов.

Следующий абзац описывает достаточно сложные для начинающих детали архитектуры процессора 80х86, поэтому Вы смело можете его пропустить. Но сказать о них все-же стоит. Из всех существующих для Windows-платформы отладчиков, наибольшей популярностью вполне заслуженно пользуется SoftICE фирмы Numega. Вы можете скопировать его в разделе Инструменты.

Чем же SoftICE отличается от остальных подобных ему програм?. Наиболее важным отличием является то, что SoftICE работает в 0-м кольце защиты. Не пугайтесь, если Вы пока ничего не знаете о кольцах защиты, существующих в архитектуре 32-разрядных процессоров фирмы Intel и предназначенных для ограничения взаимодейстия выполняющихся программ между собой и с операционной системой. Обычно ОС имеет права полного доступа ко всем остальным выполняемым программам, т.к. она работает в 0-м кольце защиты (наиболее привилегированном), системные задачи выполняются в 1-м и 2-м кольцах, а приложения - в 3-м (наименее привелигерованном). Частично осуществлять управление запущенными приложениями можно из 1-го и 2-го кольца защиты, именно так работает большинство отладчиков из крупных пакетов для разработки программ. Разработчики из Numega подошли к делу более профессионально и создали SoftICE - отладчик, который работает в 0-м кольце защиты (для этого он загружается до загрузки ядра ОС Windows) и позволяет полностью контролировать не только все выполняемые системой задачи, но и саму ОС Windows.

Скоро появится статья полностью описывающая процесс установки, конфигурирования и работы с SoftICE. Пока дадим лишь несколько основных советов:

  1. При установке SoftICE, когда программа спросит о типе Вашего видеоадаптера, Вы можете указать Standard Display Adapter (VGA) и обязательно установите галочку напротив пункта Universal Video Driver (в нижней части экрана), это позволит вам работать с SoftICE в окне, не переходя на другое разрешение и видеть большую часть того, что выводится на экран Windows (очень удобно).
  2. В следующем окне выберите порт, к которому у Вас подключена мышь. Потом программа установки спросит Вас, что она должна делать с файлом autoexec.bat. Укажите самый верхний пункт (Let Setup modify AUTOEXEC.BAT).
  3. После того как завершится копирование файлов и программа установки попросит перегрузить компьютер, выберите пункт I restart my computer later. Сейчас мы произведем некоторые изменения в файле конфигурации SoftICE (winice.dat). Открываем его любым текстовым редактором. Находим строчку:
    INIT="X;"
    и заменяем ее на
    INIT="wl; color f a 4f 1f e; code on; lines 60; wc 40; wd 2; wr; faults off; X;"
    пока мы не будем пояснять значения всех элементов строки - обо всем Вы подробно узнаете немного позже. Пока просто используйте данную строку.

    Найдите также строку
    PHYSMB=32
    в ней указывается количество оперативной памяти, установленной на компьютере. Замените указанное по умолчанию значение (32) на то, количество, которое соответствующее для Вашего компьютера. Например, если у Вас 64 Мб, то напишите
    PHYSMB=64

    И, наконец, самое важное. В самом конце файла найдем следующий фрагмент:
    ; ***** Examples of export symbols that can be included *****
    ; Change the path to the appropriate drive and directory
    ;EXP=c:\windows\system\vga.drv
    ;EXP=c:\windows\system\vga.3gr
    ;EXP=c:\windows\system\sound.drv
    ;EXP=c:\windows\system\mouse.drv
    ;EXP=c:\windows\system\netware.drv
    ;EXP=c:\windows\system\system.drv
    ;EXP=c:\windows\system\keyboard.drv
    ;EXP=c:\windows\system\toolhelp.dll
    ;EXP=c:\windows\system\shell.dll
    ;EXP=c:\windows\system\commdlg.dll
    ;EXP=c:\windows\system\olesvr.dll
    ;EXP=c:\windows\system\olecli.dll
    ;EXP=c:\windows\system\mmsystem.dll
    ;EXP=c:\windows\system\winoldap.mod
    ;EXP=c:\windows\progman.exe
    ;EXP=c:\windows\drwatson.exe
    ; ***** Examples of export symbols that can be included for Windows 95 *****
    ; Change the path to the appropriate drive and directory
    ;EXP=c:\windows\system\kernel32.dll
    ;EXP=c:\windows\system\user32.dll
    ;EXP=c:\windows\system\gdi32.dll
    ;EXP=c:\windows\system\comdlg32.dll
    ;EXP=c:\windows\system\shell32.dll
    ;EXP=c:\windows\system\advapi32.dll
    ;EXP=c:\windows\system\shell232.dll
    ;EXP=c:\windows\system\comctl32.dll
    ;EXP=c:\windows\system\crtdll.dll
    ;EXP=c:\windows\system\version.dll
    ;EXP=c:\windows\system\netlib32.dll
    ;EXP=c:\windows\system\msshrui.dll
    ;EXP=c:\windows\system\msnet32.dll
    ;EXP=c:\windows\system\mspwl32.dll
    ;EXP=c:\windows\system\mpr.dll

    с помощью этих строк Вы можете подключить к SoftICE системные библиотеки экспортируемых функций. Для этого Вы должны убрать в начале строк символ ";", который означает, что строка является комментарием, и изменить путь к файлу на тот, который существует у Вас на компьютере. Например, если ОС Windows98 у Вас установлена в каталог win98 диска с, то вместо c:\windows\system\ Вы должны написать c:\win98\system.
    Внимание! Обязятельно проверьте наличие всех, включаемых Вами файлов на диске (в разных ОС их состав меняется) и если какого-то не найдете - не включайте его (т.е. не убирайте в начале строки символ ";").

  4. Теперь сохраняйте сделанные в файле изменения и перегружайте компьютер.
    Если Вы все сделали правильно, то теперь при нажатии сочетания клавишь Ctrl+D должно появится черное окно SoftICE (при разрешении 1024х768 оно занимает половину экрана). Теперь нажав сочетание Ctrl+Alt+C вы переместите окно SoftICE в центр экрана.
  5. Выход из SoftICE в Windows можно осуществить повторным нажанием Ctrl+D, но мы советуем для этих целей использовать клавишу F5 - это более корректно (клавиша F5 соответствует команде X).