Underground InformatioN Center [&articles] | |
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive] | [home] |
Как исправлять байты в пакованных файлах: UPX |
"If it runs it can be defeated." Инструменты: IDA - я использовал версию, любезно предоставленную мне Гарри Колтоном :) HIEW - можно использовать любой редактор со встроенным дизассемблером Мозги - не советую пользоваться пиратскими версиями, лучше купите ;-)
Принцип работы
Начнем... ;----------- S U B R O U T I N E -------------- 0040CE30 public start 0040CE30 start proc near 0040CE30 pusha ;Начало распаковки ищем POPA 0040CE31 mov esi, 40B000h ;здесь начинаются инструкции, 0040CE36 lea edi, [esi-0A000h] ;распаковывающие программу в память. 0040CE3C push edi ;Если вам интересен принцип работы 0040CE3D or ebp, 0FFFFFFFFh ;- потрассируйте, на это уходит ;около часа. 0040CE40 jmp short loc_40CE52 ;----пропущено около несколько десятков строк т.к они нам не нужны---- 0040CF67 dword ptr [esi+0C118h] 0040CF6D or eax, eax 0040CF6F jz short loc_40CF78 0040CF71 mov [ebx], eax 0040CF73 add ebx, 4 0040CF76 jmp short loc_40CF59 0040CF78 ; ------------------------------------- 0040CF78 loc_40CF78: ;CODE XREF: start+13F.j 0040CF78 call dword ptr [esi+0C11Ch] 0040CF7E loc_40CF7E: ;CODE XREF: start+110.j 0040CF7E popa ;вот эта "попа" нам и была нужна :-) 0040CF7F jmp near ptr unk_403A68 ;JMP на начало распакованной ;программы!!! 0040CF7F start endpВот теперь мы знаем все что нам нужно. Посмотрим на нашу программу через HIEW. Две последние инструкции будут выглядеть так: 0000237E: 61 popad 0000237F: E9E46AFFFF jmp 0FFFF8E68Теперь нам надо найти пустое место , куда мы впишем наш патч. Примерно пятью инструкциями ниже мы обнаруживаем кучу ноликов (add [eax],al). Подойдет. Перенаправляем JMP: 0000237F: E90F000000 jmp 000002393 ;jmp на свободное место 00002393: C6053234450075 mov b,[000453432],075 ;заменяем байт по адресу ;453432 на 75 0000239A: E9E46AFFFF jmp 0FFFF8E68 ;возвращаем управление ;программеВот и все. P.S. Ну и конечно все написанное предназначено ТОЛЬКО для образовательных целей. Все замечания, благодарности, ругательства приветствуются. Удачи, Corbio corbio@mail.ru Genocide Crew member uinC Member [c]uinC
Все документы и программы на этом сайте собраны ТОЛЬКО для образовательных целей, мы
не отвечаем ни за какие последствия, которые имели место как следствие использования
этих материалов\программ. Вы используете все вышеперечисленное на свой страх и риск. |
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive] | [home] |
Underground InformatioN Center [&articles] |
2000-2015 © uinC Team |