Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #49, ДЕКАБРЬ 2004 г.

Выбор кодера

Дмитрий Коваленко aka Ingrem

Спецвыпуск: Хакер, номер #049, стр. 049-020-1


(ingrem@list.ru)

Идеальный софт для кодера

В интернете там и сям валяются гигабайты кодерского софта практически на любой вкус. Есть небольшие утилитки и огромные пакеты, бесплатные проекты с открытым кодом и полусекретные, жутко дорогие коммерческие разработки. Конечно, из такой кучи разнообразного софта тяжело выбрать самое лучшее. Но мы все-таки попробуем. ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ

Документация

Любому, кто кодит под Windows, нужна документация от Microsoft. Идеальный вариант - это лицензионный MSDN на нескольких компактах. Там содержится наиболее полная документация плюс полезные статьи и примеры исходного кода с комментариями (а также все версии Windows, Platform SDK, DDK и куча других полезных вещей - прим. AvaLANche'а). Если достать MSDN (хотя бы документацию) по той или иной причине возможности нет (я бы повесился – прим. ред.), нужно обзавестись хотя бы Platform Software Development Kit (SDK) для Windows XP. Его можно найти как на отдельном компакте, так и в составе MS Visual Studio или Inprise Delphi - SDK идет в комплекте с help-файлами, а также скачать на сайте Microsoft: www.microsoft.com/msdownload/platformsdk/sdkupdate.

Если ты собрался писать драйвера, тебе понадобится еще и Driver Development Kit (DDK). Причем DDK должен быть именно под ту версию Windows, для которой ты пишешь драйвер. В DDK содержится руководство по программированию драйверов (имхо, совершенно непонятное), примеры с исходниками и, главное, описание системных функций режима ядра.

В составе DDK под Windows 98 ты можешь найти заголовочные файлы для C++ и INC-файлы для MASM32. А вот в DDK под Windows 2000 и XP файлы для ассемблера не включили :(. Эти Kit'ы ориентированы полностью на C++. Вот и получается: если асм-кодер хочет написать драйвер под XP, он вынужден учить Си!

Однако нашелся достойный человек по имени Four-F, который разработал что-то наподобие DDK для MASM32. Называется это чудо Kernel Mode Driver Development Kit для MASM32 (сокращенно CmdKit). С CmdKit тебе ничто не помешает кодить драйвера для Win2k/XP на асме ;).

Отладчик

Больше всего отладчик нужен асм-кодеру - программировать на ассемблере без отладки очень трудно. Кодерам, которые пишут свои проги на С++ или Delphi, обычно хватает отладочных средств, встроенных в IDE. Хотя внешний отладчик все равно может пригодиться, например, при написании драйверов или процедур-перехватчиков API.

Безусловно, наиболее мощным и универсальным дебаггером является SoftIce от фирмы NuMega. SoftIce работает на уровне ядра и может отлаживать абсолютно все - от обычных приложений до драйверов и системных сервисов. Возможности SoftIce действительно впечатляют:

+ отладка многопоточных программ;

+ обработка исключительных ситуаций Win32;

+ программные и аппаратные точки останова, в том числе условные;

+ полное отображение адресного пространства процесса;

+ отслеживание всех событий ОС;

+ отладка на уровне исходного текста;

+ работает с обычной и отладочной версией Windows NT/2000;

+ отладка через dial-up.

И это далеко не все возможности SoftIce!

Содержание  Вперед на стр. 049-020-2