Ручная троянизация

Крис Касперски ака мыщъх

Хакер, номер #080, стр. 080-120-1

(FreeBSD@smtp.ru)

Внедряем свой код в приложения под windows

Троянизация приложений - весьма перспективная для хакера штука. Она позволяет ему с невиданной скоростью распространять трояны под видом самых обычных программ. Причем не просто под видом. Программы продолжают работать и нормально функционировать, не выдавая его вредоносного кода, который спокойно и тихо гадит пользователю, снифая клаву, воруя пароли и т.п. Прочитав эту статью, ты поймешь как хакеры внедряют свой вирусный код в приложения, не портя работоспособности последних. Ты, конечно, сообразишь как этот код обнаружить и извлечь.

Наши эксперименты будут носить совершенно невинный характер. Мы возьмем стандартный notepad.exe и будем над ним издеваться - внедрять код, изучать всячески, мучать. Лицензионное соглашение от Microsoft нам придется разорвать. Причем на мелкие куски. Оно нам больше не понадобится. Модификация notepad'а аннулирует все льготы, обязательства и гарантии со стороны Microsoft. Свежую Windows со скидкой уже не получишь! Ну и больно надо! Поставим Linux! Но это потом, а пока…

[джентльменский набор]

Большинство хакерских статей, рассказывающих о троянизации приложений, предлагает напрямую править их в HIEW или любом другом HEX-редакторе. Но это порочная практика (живодерство сплошное)! Полноценную программу в HIEW не напишешь, а если и напишешь, то потом не изменишь, ведь чтобы добавить одну-единственную команду приходится перебивать весь код целиком.

Поступим умнее! Наберем программу в своем любимом редакторе, например, TASMED, WinAsm Studio или FAR'е и откомпилируем ее FASM'ом. Полученный двоичный файл будет легко вставляться HEX-редактором в любой экзешник. Ну, или почти в любой.

Еще нам потребуется IDA Pro или другой приличный дизассемблер, которым мы будем исследовать подопытный файл. Отладчик - SoftIСE, MS DBG или OllyDbg. Он поможет найти ошибки во внедряемом коде. Крайне маловероятно, что написанная нами программа заработает с первого раза, поэтому без отладчика далеко не уплывешь.

Остальные ингредиенты (пиво/квас/сигареты) по вкусу.

[куда податься?]

Проще всего внедряться в свободное место файла. Кстати, предупреждаю, что троянизируемый файл мы будем называть дрозофилой, а внедряемый код - бациллой. Если свободного места нет, можно раздвинуть последнюю секцию и внедриться в нее, но это намного сложнее, поэтому такой способ здесь рассматриваться не будет. Если тебе все-таки интересно, как подобное реализуется - топай на www.wasm.ru за статьей «пути воина - техника внедрения в PE-файлы».

Типичный PE-заголовок вместе с таблицей секций и MZ-заголовком занимает чуть больше 200h байт, а минимальное физическое выравнивание внутри файла (File Alignment), которое только поддерживает Windows, как раз и составляет 200h! Таким образом, в нашем распоряжении оказывается практически 200h незанятых байт или даже больше! Для ускорения загрузки файла большинство линкеров выравнивает адрес начала первой секции не по File Alignment, а по Section Alignment, который никак не меньше 1000h. Как следствие - наши владения увеличиваются до E00h байт. Для ассемблерных программ это целый материк, на котором и слона разместить можно. Ну, если не слона, то полноценную бациллу - точно! В упакованных файлах, заголовок прижат к первой секции практически вплотную, поэтому, перед началом внедрения их необходимо распаковать.

Содержание  Вперед на стр. 080-120-2
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001