![]() |
![]() |
Абориген XXI века |
![]() |
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
Скачать Бесплатно | |||
Новое
|
|
Инфа для НОВИЧКОВ Инфа для НОВИЧКОВ Вспомогательные утилиты Итак, инструменты. Конечно, в первую очередь это программы, позволяющие определить, что именно перед тобой - картинка с длинными ногами и большими сиськами или запакованный ехе-файл. Некоторые детекторы позволяют определить тип файла, если он был запакован (отдельную статью о паковке exe-файлов смотри в следующих номерах журнала). И даже - попытаться снять защиту. Рекомендую ExeInfo by Adam Lojewski - весьма полезная вещь для анализа исполняемых файлов. Для удобства ее интерфейс пропатчили (спасибо STI) на предмет русских названий меню и надписей - от этого она только увеличила свою привлекательность для новичков и тех, кто ею пользовался до этого. Отвлекусь на пару слов, отхлебну пивка и скажу про Compare2Unlimited by Professor Nimnull. После того как дело сделано и в программу внесены изменения, неплохо бывает получить список измененных байтов. Выписывать вручную - слишком утомительно, и наверное, поэтому существует большое количество программ для автоматизации этой процедуры. Но C2U - одна из лучших. А для создания *.xck файлов хочется отметить XCKMaker 2.0 by Spider. Hex-редакторы Одним из основных инструментов кул хацкера (сразу после пива) является hex-редактор. Обычно, такая прога совмещает в себе возможности просмотра-редактирования файлов в шестнадцатиричном/текстовом (ASCII) формате и некоторые дополнительные фичи. Некоторые особо навороченные позволяют декодировать байты файла в инструкции ассемблера и даже писать на ассемблере и менять инструкции, что называется, не отходя от кассы. Здесь можно отметить, пожалуй, только две программы, сохраняющие популярность в течение уже ооочень большого периода времени. Программы хорошие и, что немаловажно в совдепии, бесплатные. Хотя, как говорится, для хакера из Багдада нет преграды... Но что-то же должно быть бесплатным! `Не все нужно ломать, надо же на чем-то и сидеть`, - как сказал один мой знакомый. Одна из программ называется Hacker`s View (HIEW) by SEИ. Отладчики Третий тип инструментов взлома - нет, не фомки и не лом. Отладчики. Наверняка все, кто хоть как-то знаком с хаком (хотя бы и понаслышке), знают об их существовании и о том, как сильно они помогают кракерам в их тяжелой работе. Они есть под все платформы и операционные системы. Изначально они были призваны облегчить жизнь обычным кодерам-программистам. Но потом стали появляться кодеры, которые использовали отладчики не только на своих программах, но и на программах коллег по работе/учебе. Ведь всегда интересно, что же там эти ламеры наваяли? А некоторые считают, что гораздо круче поковыряться в уже откомпиленном ехе-шнике и сделать такое у себя, подкрутив там и подправив здесь, чем корпеть над этим самому. Хотя я с ними не согласен. Ладно - вернемся к нашим баранам, то есть отладчикам. Самым известным `фирменным` отладчиком был и остается Soft-Ice by NuMega Corp. Его реализации есть как для DOS, так и для Windows 9x/NT. При этом он дружит практически со всеми extender`ами вроде EMM386 и QEMM. Установить его, научиться пользоваться им и всеми его крутыми фичами - немалый шаг к успеху в нашем скромном предприятии, как сказал бы AtH. Очень мощное средство. Собственно говоря, именно его я использую для взлома всех программ для Windows и почти всех для DOS. Однако кроме него есть еще довольно много очень приятных в использовании трасеров-дебагеров, как их называют некоторые кракеры. Например, очень даже неплох DeGlucker. Сделан он ручками Gorokhov и... после того, как они его бросили, им занялся CrazyMax. Правда, у него есть некоторые минусы (например, необходимо загружать операционку без extender`ов, потому что DG работает только в V86 режиме и ни в каком другом), да и свежую версию, свободную от глюков, мы не дождемся - авторы его бросили. Правда, перед окончательным `хэппи-эндом` проекта CrazyMax выставил на всеобщее обозрение его сорцы (исходники, стало быть). И есть надежда, что найдутся пиплы с большим количеством свободного времени, ума и пивы - довести это дело до ума. Говоря о дебагерах в приложении к хаку, я почти ничего не могу сказать о таких вещах, как Turbo Debugger фирмы Borland и CodeView от `Мелкомягких товарищей партии`. Эти отладчики помогут отладить базу данных для родного предприятия в случае, если имеются исходники к ней, но никак не помогут понять устройство какой-нибудь библиотеки хитрой программы с клевым предложением `REGISTER!` в меню. Хотя я, например, использую Turbo Debugger, чтобы отлаживать вирии. Еще не могу обойти вниманием такой отладчик, как AXE-Hack. В отличие от DG (обладая более расширенными свойствами и сервис-фичами), он позволяет работать прямо в окне DOS под Windows и эмулирует (то есть дает программе подумать, что он что-то делает, а на самом деле - филонит по страшному) часть команд процессора, что иногда становится серьезным подспорьем в борьбе с какой-нибудь супер-пупер заSHITой. Вообще, не фирменных дебагеров довольно много. Но рассказывать обо всех не имеет смысла. Для хака вполне хватит и тех, о которых я уже рассказал. В некоторых случаях одними отладчиками не обойтись. И тогда на арену выходят дизассемблеры. Но и здесь есть свои подводные камни. Такие дизассемблеры, как Sourcer, например, просто декодируют команды и выискивают ссылки на уже определенные участки кода. Немного изобретательности - и Sourcer выдаст на-гора километры ненужных file.lst, содержащих полностью перечисленные байты файла, но ни строчки по существу. И все - больше он практически ни на что не способен. Зато с его помощью можно получить вполне приятный дамп BIOS. А ещё компактом, на котором этот дизазм записан, можно в кого-нибудь кинуть. Иными словами, ему применение почти всегда найдется. Другое дело (в хорошем смысле этого слова) IDA - Interactive Disassembler by Ilfak Guilfanov. Автор этого чудесного дизассемблера сделал упор на работу, прежде всего на взаимодействие с пользователем (или, по-нашему, хакером). IDA не выдает текстовый файлик мегабайт этак на 20, в отличие от Sourcer`а. Нет - IDA есть приятное междумордие (interface) для юзверя и позволяет просматривать и помечать просмотренные участки кода именами/кличками, чтобы их потом можно было легко найти. Плюс возможность писать комментарии везде, где только это радует глаз! И возможность писать свои процедуры анализа на встроенном макроязыке! Такой подход позволяет исследователю восполнить все пробелы `тупой железячки`. И это далеко не все возможности. Дело в том, что IDA поставляется вместе с набором специальных плагинов - для автоматического распознавания. Например, есть программа, написанная на Borland C++ 5.0. Если IDA определит (а она определит, то есть не если - когда), что эта прога скомпилена именно на BC, он подгрузит соответствующий плагин и сможет распознать и обозначать стандартные функции (например, exit и biosdisk на экране будут не просто асмовым листингом, а именно exit и biosdisk), что уменьшает время, необходимое для поиска `лишнего` кода. В общем, IDA намного опередила всех своих коллег по жанру. Очень рекомендую. INT-Монитор - программа для отслеживания и записи всех (или только указанных) прерываний, вызываемых подопытной программой. Для DOS это - INTController и INTIndicator by Maxim Chirkov. Это небольшие резиденты, которые висят на нужных прерываниях и следят за частотой их вызова. А для win32 существует прекрасная вещь - APISPY32 by Yariv Kaplan. Правда, чтобы `шпиён` ловил вызовы какой-нибудь апишной функции, ему необходимо в специальном файле прописать имя этой функции и тип ее аргументов - несколько утомительно, и если используются функции из собственных библиотек, поставляемых вместе с программой, - ничего уже не сделаешь. Но это единственный известный мне вариант подобной утилиты под win32. Пригодится. Унпакеры-распаковщики (unpackers) Предназначены для снятия так называемых `навесных` защит. Например, есть уже готовая программа, и лень лезть и встраивать защиту. Или хочется, чтобы она занимала меньше места на диске. Тогда берется программа пакер-паковщик (packer), и `натравливается` на бедный ехе-шник. Паковщик упаковывает код проги и пишет свой распаковщик в начало, а потом дописывает все остальное в конец. Когда программа вызывается, то сначала отработает распаковщик, затем уже будет выполняться запакованная программа. В результате, такую программу невозможно пропатчить, не распаковывая, так как нужные байты, как правило, запакованы-шифрованы, и найти их не удается. Но можно распаковать весь файл и исследовать/патчить его отдельно. А потом при желании запаковать (тем же или другим паковщиком - для экономии availspace на hdd). Для тех, кто на бронепоезде - именно этим (распаковкой) и занимаются унпакеры. Существуют унпакеры как универсальные (CUP386[DOS], ProcDump[WIN] - лучшие из них, на мой взгляд), так и `заточенные` под конкретный паковщик. Из вторых могу посоветовать Universal Unpacker Package by Predator 666 - сборник унпакеров для самых популярных пакеров + универсальный унпакер. Из первых - все же лучше CUP386; единственное, что придется делать самому - так это мучительно вспоминать, `куда же он делся? после вчерашнего...`, а остальное он сделает сам (если найдешь, конечно). Для Win32 лидером пока что остается ProcDump. Это по совместительству унпакер и дампер. Есть хорошие фичи, вроде примитивных скриптов, на которых можно описать принцип действий унпакера для конкретного паковщика. |