Сейчас на форуме: YDS, _MBK_, user99 (+10 невидимых)

 eXeL@B —› Основной форум —› Нахождение IAT
Посл.ответ Сообщение

Ранг: 5.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 января 2006 02:54
· Личное сообщение · #1

Вопрос чайника.
Читая мануалы по распаковке ASPR'а в Rar-статьях очень часто затыкался на словах "Прокрутим вверх увидим начало IAT, а потом вниз увидим конец IAT".
Затычка состояла в том, что при прокрутке вверх начало IAT, как я так понимаю это то, что лежит после 16 нулей. Типа:
00D4B16C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D4B17C F1 57 F6 6E 8A 18 91 7C ED 10 90 7C 05 10 90 7C сWцnЉ‘|нђ|ђ|
А вот как найти конец я так и не понял.
Может быть кто-нибудь подскажет, а то дюже хочется научиться распаковывать ASPR ручками, а не Stripper'ом.



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

Создано: 15 января 2006 06:58
· Личное сообщение · #2

KrasivayaSvo пишет:
начало IAT, как я так понимаю это то, что лежит после 16 нулей

IAT - Import Adress Table. Таблица адресов импорта.

Вместо нулей вбивай спертые байты. После нулей "лежит" код программы.

-----
TBR




Ранг: 120.2 (ветеран), 8thx
Активность: 0.120
Статус: Участник

Создано: 15 января 2006 17:08
· Личное сообщение · #3

KrasivayaSvo
Можно по 77 и 7с это начало адресов функции или просмотреть все обращения к IAT.



Ранг: 19.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 16 января 2006 09:25
· Личное сообщение · #4

я тоже поначалу задался таким вопросом, вот как я ищу IAT (ollyDBG)
находясь на OEP нажимаю Ctrl+B и пишу ff25
ставлю галку Entire block и смотрю когда я окажусь на коде типа
004011F4 $- FF25 A4914500 JMP NEAR [DWORD DS:<&KERNEL32.GetStd>; kernel32.GetStdHandle
далее давлю на этой строке правый батон мыши и выбираю follow in Dump->Memory address. в окне дампа и будет твои IAT. Пролистай его вверх до

004590F4 00 00 00 00 00 00 00 00 C9 97 05 00 00 93 05 00 ........Й—..“.
00459104 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00459114 00 00 00 00 34 0D 81 7C C1 C9 80 7C 8A 18 91 7C ....4.Ѓ|БЙЂ|Љ‘|
<&KERNEL3>ED 10 90 7C 05 10 90 7C A1 9F 80 7C 14 9B 80 7C нђ|ђ|ЎџЂ|›Ђ|
<&KERNEL3>81 9A 80 7C 5D 99 80 7C BD 99 80 7C AB 14 81 7C ЃљЂ|]™Ђ|Ѕ™Ђ|«Ѓ|
<&KERNEL3>37 97 80 7C 94 97 80 7C 7B 97 80 7C 59 B8 80 7C 7—Ђ|”—Ђ|{—Ђ|YёЂ|
<&KERNEL3>C7 A0 80 7C AD 9C 80 7C E0 C6 80 7C 11 03 81 7C З Ђ|­њЂ|аЖЂ|Ѓ|
<&KERNEL3>C4 2F 88 7C 05 A4 80 7C EE 1E 80 7C F1 2F 88 7C Д/€|¤Ђ|оЂ|с/€|
<&KERNEL3>29 B5 80 7C 57 B3 80 7C 7E D4 80 7C 8D 2C 81 7C )µЂ|WіЂ|~ФЂ|Ќ,Ѓ|
<&KERNEL3>66 AA 80 7C 59 35 81 7C D7 EF 80 7C A2 CA 81 7C fЄЂ|Y5Ѓ|ЧпЂ|ўКЃ|
<&KERNEL3>9F 0F 81 7C 8A 2B 86 7C 40 7A 93 7C E1 EA 81 7C џЃ|Љ+†|@z“|бкЃ|
<&KERNEL3>A9 2C 81 7C 00 00 00 00 46 FA D5 77 98 EC D5 77 ©,Ѓ|....FъХw?мХw
<&user32.>0B 05 D7 77 40 EC D5 77 00 00 00 00 83 78 DC 77 Чw@мХw....ѓxЬw
<&advapi3>1B 76 DC 77 F0 6B DC 77 00 00 00 00 50 48 11 77 vЬwрkЬw....PHw
<&oleaut3>9D C9 13 77 59 4B 11 77 00 00 00 00 F5 9B 80 7C ќЙwYKw....х›Ђ|
<&KERNEL3>50 97 80 7C BD 99 80 7C 29 B5 80 7C 00 00 00 00 P—Ђ|Ѕ™Ђ|)µЂ|....
<&advapi3>83 78 DC 77 1B 76 DC 77 F0 6B DC 77 00 00 00 00 ѓxЬwvЬwрkЬw....
<&KERNEL3>29 C7 80 7C 9F 0F 81 7C 30 25 80 7C 59 B8 80 7C )ЗЂ|џЃ|0%Ђ|YёЂ|


тут можно увидеть что началом таблицы прыжков можно считать 00459114.

конец IAT можно определить чисто визуально. листаешь вниз и смотришь когда код превратиться в мусор. отмахиваешь еще пару pagedown примерно это и есть конец.

почему примерно, да потому что в начале мусорного кода я иногда встречал оригинальный прыжок. т.е.
мусор.. мусор. прыжок в kernel. мусор
потому чтобы не пропустить нужный адрес я отматывал вниз. после imprec мусор все равно отсекал.



Ранг: 5.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 января 2006 20:11
· Личное сообщение · #5

tIce пишет:
конец IAT можно определить чисто визуально. листаешь вниз и смотришь когда код превратиться в мусор. отмахиваешь еще пару pagedown примерно это и есть конец.

Я вот так понимаю мусор это когда закончатся функции начинающиеся с адресов 77 и 7С. Я тоже так подумал, а вот про то, что пару раз давануть PageDown чет не допер.
Спасибо всем кто помог.



Ранг: 19.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 января 2006 08:53
· Личное сообщение · #6

а вообще как посоветовал Mario555 создавай новую IAT (на пустом месте) потом обе обработаешь imprec-ом.


 eXeL@B —› Основной форум —› Нахождение IAT
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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