Чемоданчик хакера Крис Касперски, ака мыщъх Хакер, номер #094, стр. 094-036-4 Распаковщики Все больше и больше программ распространяются в упакованном виде (или защищаются протекторами, что еще хуже), в результате чего их непосредственное дизассемблирование становится невозможным, а поскольку многие упаковщики/проекторы содержат анти-отладочные приемы, то страдает и отладка. Попытки создать универсальный распаковщик многократно предпринимались еще со времен MS-DOS и всякий раз проваливались, так как разработчики защит придумывали новую гадость. Тем не менее, в состав большинства хакерских инструментов (IDA Pro, OllyDbg) входят генетические распаковщики, справляющие с несложными защитами. Сложные же приходится распаковывать руками (тому, как это сделать, посвящено множество статей, которые легко найти в сети). Когда же один и тот же упаковщик встречается хакеру десятый раз кряду, он матерится и пишет автоматический/полуавтоматический распаковщик, чтобы облегчить себе работу. Коллекции таких распаковщиков собраны на www.exetools.com/unpackers.htm, programmerstools.org/taxonomy/term/16, www.woodmann.com/crackz/Packers.htm и других сайтах. Проблема состоит в том, что каждый такой распаковщик рассчитан на строго определенную версию упаковщика/протектора и с другими работать просто не может! Чем чаще обновляется упаковщик/протектор, тем сложнее найти подходящий распаковщик, поэтому лучше полагаться только на самого себя, распаковывая программу руками (и мы уже писали как). Кстати, прежде чем искать распаковщик, неплохо бы для начала выяснить, чем же вообще защищена ломаемая программа? В этом поможет бесплатная утилита PEiD (peid.has.it), содержащая огромную базу сигнатур, хотя довольно часто ошибающаяся или дающая расплывчатый результат, но, тем не менее, это все-таки лучше, чем совсем ничего. Дамперы Снятие дампа с работающей программы — универсальный способ распаковки, убивающий практически все упаковщики и большую часть протекторов, правда, над полученным дампом еще предстоит как следует поработать, и я рекомендую использовать дамп лишь для дизассемблирования. Сдампленная программа может работать неустойчиво, периодически падая в самый ответственный момент. Но это ладно, это все лирика. Забьем на лирику и обратимся к практике. Самым первым (и самым неумелым) был ProcDump, затем появился Lord PE, учитывающий горький опыт своего предшественника и способный сохранять дамп даже в тех случаях, когда PE-заголовок умышленно искажен защитой, а доступ к некоторым страницам памяти отсутствует (атрибут PAGE_NOACCESS). Венцом эволюции стал PE-TOOLS, базовый комплект поставки которого можно найти практически на любом хакерском сервере, например, на WASM'е (www.wasm.ru/baixado.php?mode=tool&id=124) или на CrackLab'е (www.cracklab.ru/download.php?action=get&n=MTU1), а свежие обновления лежат на «родном» сайте проекта neox.iatp.by, кстати говоря, уже несколько раз поменявшим свой адрес (по непонятым причинам, базовый пакет на нем отсутствует). |