Дизассемблер. Брат Ассемблера

Xakep, номер #032, стр. 032-031-1

Доля Алексей (TanaT@yes.ru)

Дизассемблер (буквально: обратный ассемблер) - программа, служащая вспомогательным средством отладки и переводящая программу в машинных кодах обратно на язык ассемблера. Любой файл, имеющий расширение exe, com, dll, sys, drv и т.д., представляет собой программу в машинных кодах (естественно, если это не обычный текст, переименованный в файл с таким расширением). А как узнать, что делает тот или иной файл? И самое главное, как изменить ту или иную его функцию? Если ты профи в машинных кодах, то у тебя такой проблемы никогда не возникнет. А если нет? Вот тут-то ты без дизассемблера не обойдешься! С помощью этого инструмента можно перевести любую программу с языка понятного только машине и нескольким гениям на достаточно популярный язык ассемблера. А после этого уже разбираться, что да как эта программа делает. При желании ты можешь поменять что-нибудь внутри и получить уже другую, нужную тебе программу. Для этого просто надо будет ассемблировать программу заново. Но это только звучит грозно, а на самом деле, если у тебя мощный и современный дизассемблер (а именно такой я тебе посоветую), то ты просто нажмешь на кнопку Compile или Assemble и получишь, что хотел. Также дизассемблер является очень мощным инструментом отладки: сейчас почти каждый отладчик включает в себя встроенный дизассемблер.

"Поможите чем можите, мы сами не кодеры..."

Если ты не кодер, то тебе все равно нужна эта программа. К примеру, ты хочешь что-то поменять в command.com (ну заменить строку "Abort,Retry,Ignore" на "На фиг,Нефиг,Пофиг"), тут без дизассемблера никак не обойтись. Или нужно поменять стандартную надпись из файла format.com "При форматировании будет потеряна вся информация, вы уверены Да/Нет?" на "Нажмите Да для продолжения работы!" :). А потом, случайно, оставить этот файл у друга на винте. С помощью IDA, например, это делается за несколько минут.

Сейчас очень много программ, называющихся дизассемблерами, но различающихся набором предлагаемых функций, мощностью, скоростью и интерфейсом. Какой же из них выбрать? Это действительно непросто: не все из них одинаково хороши, а некоторые - откровенная лажа. Я расскажу тебе о всех последних дизассемблерах, посоветую, что лучше, что хуже, а ты уж выбирай. Итак, приступим.

Вот программы, представленные в обзоре (их последние версии можно найти на двух сайтах: www.dore.ru/files/disassemblers и http://hi-tech.ph.ru/download/disassemblers)

DeWin 1.9 - 171 кб

Досовская программа, работающая только с ехе-файлами. Запускается и настраивается в стандартной досовской командной строке. Запустив файл dewin.exe, ты увидишь список всех ключей (и описания к каждому из них), которые можно использовать при запуске программы. Также есть возможность указывать имя выходного файла. По умолчанию его расширение .def, а имя совпадает с именем exe-программы. К плюсам программы можно отнести возможность дизассемблирования многомегабайтных файлов (хотя это в принципе никому не нужно), так как DeWin подгружает файл небольшими частями и не обращает внимания на его размер. А также возможность работать с windows-приложениями, распознавание строчек посреди кода, малый размер программы и то, что ее не нужно инсталлировать. К минусам: работа только с exe-программами, отсутствие интерфейса как такового.

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

ttfb: 3.3318996429443 ms