Сейчас на форуме: _MBK_, ut2004, vsv1 (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Упаковщики и таблица импорта (пример для UPX)
Посл.ответ Сообщение

Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 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.060
Статус: Участник

Создано: 28 октября 2006 03:48
· Личное сообщение · #2

Ссылку на статью дай или приатач.



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 28 октября 2006 03:57
· Личное сообщение · #3

http://www.exelab.ru/art/?action=view&id=325
Вот статья, где PE_Kill распаковывает PeCompact подобным образом. С ПеКомпактом я попробовал проделать то же самое. У меня получилось. А вот столкнувшись с несколько иной ситуацией впал с ступор.



Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

Создано: 28 октября 2006 05:50
· Личное сообщение · #4

Статьи там нету приатач в архиве.



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 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.060
Статус: Участник

Создано: 28 октября 2006 13:15
· Личное сообщение · #6

Незаморачивайся!. Если я тебя правильно понял то нет их в Upx там на OEP и без ImpReck можно дампить одной Olly. К тому же нафиг это надо гемору только и ImpReck и быстрее и удобнее.
Ты б лучше че по солиднее взялся распаковывать.



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 29 октября 2006 01:51
· Личное сообщение · #7

Dark Star пишет:
Ты б лучше че по солиднее взялся распаковывать.

Чтобы браться за что-то посолиднее, надо сначала научиться на чем попроще и понять что делаешь.
Ничего против ImpRecа не имею, удобная штука. Но эта фишка с импортом очень меня зацепила. Я тоже так хочу научиться.



Ранг: 33.6 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 29 октября 2006 04:48
· Личное сообщение · #8

Sturgeon

Посмотрел UPX. Честно говоря сложилось такое чуство что простым фиксом IAT тут дело не сделать, как там pecompact не знаю не смотрел, но здесь походу надо еще IDT(там ведь все адреса First Thunk левые, а некоторых вобще не хватает ) руками переписывать, а не только IAT.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 29 октября 2006 08:14
· Личное сообщение · #9

насколько я помню - упх переводит импортв свои формат. напиши код, который сделает нормальную иат. сорсы упх тебе в помощь..

-----
Тут не могла быть ваша реклама




Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 01 ноября 2006 05:49
· Личное сообщение · #10

lord_Phoenix пишет:
напиши код, который сделает нормальную иат

Ну для меня это пока крутовато...
Может быть вернусь к этой теме попозже.


 eXeL@B —› Вопросы новичков —› Упаковщики и таблица импорта (пример для UPX)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати