>>> Врезка. инструментарий
Программируя методами ассемблерных вставок, достаточно иметь компилятор с его IDE (например, Microsoft Visual Studio). Ассемблерные вставки отлаживаются точно так же, как и весь остальной высокоуровневый код. Удобно!
Программы, целиком написанные на ассемблере, транслируются в машинный код при помощи ассемблера. Под DOS'ом большой популярностью пользовался пакет TASM от компании Borland, но на Windows его позиция выглядит неубедительной и большинство программистов использует транслятор MASM от Microsoft, входящий в состав DDK (Device Driver Kit – набор инструментов разработчика драйверов), который можно бесплатно скачать с сервера www.Microsoft.com (для каждоый версии Windows он свой). С ним конкурирует некоммерческий транслятор FASM (http://flatassembler.net/), заточенный под нужды системных программистов и поддерживающий более естественный синтаксис. Существуют ассемблеры и под UNIX, например, NASM, входящий в штатный комплект поставки большинства дистрибьютивов. В общем, какой ассемблер выбрать — дело вкуса.
Прежде чем ассемблированная программа заработает ее необходимо скомпоновать. Для этого вполне подойдет стандартный линкер, выдернутый из той же Microsoft Visual Studio или Platform SDK. Из нестандартных можно порекомендовать ulink от Юрия Харона, поддерживающего большое количество форматов файлов и множество тонких настроек, которых другие линкеры крутить не дают. Его можно скачать с сайта фирмы Стикс: ftp://ftp.styx.cabel.net/pub/UniLink/ulnbXXXX.zip. Для некоммерческого использования он бесплатен.
Еще нам понадобиться отладчик и дизассемблер. Отладчик это инструмент для поиска ошибок в своих собственных приложениях и взламывания чужих. Их много разных: Microsoft Visual Debugger, интегрированный в состав Microsoft Visual Studio, Microsoft Windows Debugger (сокращенно WDB), и Kernel Debugger, входящие в состав SDK и DDK, soft-ice от NuMega, OllyDbg от Олега Яшкина и т. д. Самый мощный — soft-ice, самый расширяемый — WDB, самый простой и неприхотливый — OllyDbg. Дизассемблер — это, конечно, IDA Pro. Другие и рядом не лежали.
Мелочь типа hex-редакторов, сравнивателей файлов, дамперов памяти, упаковщиков/распаковщиков так же должна быть все время под рукой. Скачать полный комплект необходимого инструментария можно, например, с сайта www.wasm.ru