Посл.ответ |
Сообщение |
Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 28 октября 2006 03:37 · Личное сообщение · #1
Вот я тут начитался статей. Решил попробовать самостоятельно UPX таким образом распаковать, чтобы не заморачиваться с ImpRecом. И как обычно облом.
По аналогии со статьей PE_Kill`а дошел до такого места (это в самом конце кода распаковщика):
00462AEC . 95 XCHG EAX,EBP ; kernel32.7C800000
00462AED > 8A07 MOV AL,BYTE PTR DS:[EDI]
00462AEF . 47 INC EDI ; Cross.0046125E
00462AF0 . 08C0 OR AL,AL
00462AF2 .^ 74 DC JE SHORT Cross.00462AD0
00462AF4 . 89F9 MOV ECX,EDI ; Cross.0046125E
00462AF6 . 79 07 JNS SHORT Cross.00462AFF
00462AF8 . 0FB707 MOVZX EAX,WORD PTR DS:[EDI]
00462AFB . 47 INC EDI ; Cross.0046125E
00462AFC . 50 PUSH EAX ; kernel32.CloseHandle
00462AFD . 47 INC EDI ; Cross.0046125E
00462AFE B9 DB B9
00462AFF . 57 PUSH EDI ; Cross.0046125E
00462B00 . 48 DEC EAX ; kernel32.CloseHandle
00462B01 . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00462B03 . 55 PUSH EBP ; kernel32.7C800000
00462B04 . FF96 602B0600 CALL DWORD PTR DS:[ESI+62B60] ; kernel32.GetProcAddress
00462B0A . 09C0 OR EAX,EAX ; kernel32.CloseHandle
00462B0C . 74 07 JE SHORT Cross.00462B15
00462B0E . 8903 MOV DWORD PTR DS:[EBX],EAX <-стоим здесь ; kernel32.CloseHandle
00462B10 . 83C3 04 ADD EBX,4
00462B13 .^ EB D8 JMP SHORT Cross.00462AED
00462B15 > FF96 642B0600 CALL DWORD PTR DS:[ESI+62B64] ; kernel32.ExitProcess
00462B1B > 61 POPAD
00462B1C .- E9 D804FAFF JMP Cross.00402FF9
в EBX адрес, куда записывается новый адрес импорта, в EDI указатель на имена фунуций (скорее всего), в ЕАХ адрес функции в библиотеке.
А как пропатчить этот код я не додумаю никак. Как я понял из статьи, смысл в том, чтобы адрес из указателя скопировался в новое место без изменений. Но как поправить код я не соображу.
| Сообщение посчитали полезным: |
|
Ранг: 28.9 (посетитель) Активность: 0.06↘0 Статус: Участник
|
Создано: 28 октября 2006 03:48 · Личное сообщение · #2
Ссылку на статью дай или приатач.
| Сообщение посчитали полезным: |
Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 28 октября 2006 03:57 · Личное сообщение · #3
http://www.exelab.ru/art/?action=view&id=325
Вот статья, где PE_Kill распаковывает PeCompact подобным образом. С ПеКомпактом я попробовал проделать то же самое. У меня получилось. А вот столкнувшись с несколько иной ситуацией впал с ступор  .
| Сообщение посчитали полезным: |
Ранг: 28.9 (посетитель) Активность: 0.06↘0 Статус: Участник
|
Создано: 28 октября 2006 05:50 · Личное сообщение · #4
Статьи там нету приатач в архиве.
| Сообщение посчитали полезным: |
Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 28 октября 2006 06:35 · Личное сообщение · #5
Странно... Я конечно, приаттачил статью, но она на ссылке ЕСТЬ!
Попробуй поискать еще "Распаковка PECompact 2.xx без использования ImpREC" в статьях. a5ce_28.10.2006_CRACKLAB.rU.tgz - Распаковка PECompact 2.xx без использования ImpREC.doc.zip
| Сообщение посчитали полезным: |
Ранг: 28.9 (посетитель) Активность: 0.06↘0 Статус: Участник
|
Создано: 28 октября 2006 13:15 · Личное сообщение · #6
Незаморачивайся!. Если я тебя правильно понял то нет их в Upx там на OEP и без ImpReck можно дампить одной Olly. К тому же нафиг это надо гемору только и ImpReck и быстрее и удобнее.
Ты б лучше че по солиднее взялся распаковывать.
| Сообщение посчитали полезным: |
Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 29 октября 2006 01:51 · Личное сообщение · #7
Dark Star пишет:
Ты б лучше че по солиднее взялся распаковывать.
Чтобы браться за что-то посолиднее, надо сначала научиться на чем попроще и понять что делаешь.
Ничего против ImpRecа не имею, удобная штука. Но эта фишка с импортом очень меня зацепила. Я тоже так хочу научиться.
| Сообщение посчитали полезным: |
Ранг: 33.6 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 29 октября 2006 04:48 · Личное сообщение · #8
Sturgeon
Посмотрел UPX. Честно говоря сложилось такое чуство что простым фиксом IAT тут дело не сделать, как там pecompact не знаю не смотрел, но здесь походу надо еще IDT(там ведь все адреса First Thunk левые, а некоторых вобще не хватает ) руками переписывать, а не только IAT.
| Сообщение посчитали полезным: |
 Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 29 октября 2006 08:14 · Личное сообщение · #9
насколько я помню - упх переводит импортв свои формат. напиши код, который сделает нормальную иат. сорсы упх тебе в помощь..
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0 Статус: Участник
|
Создано: 01 ноября 2006 05:49 · Личное сообщение · #10
lord_Phoenix пишет:
напиши код, который сделает нормальную иат
Ну для меня это пока крутовато...
Может быть вернусь к этой теме попозже.
| Сообщение посчитали полезным: |