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

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

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

Создано: 20 апреля 2007 09:24
· Личное сообщение · #1

Уважаемые господа специалисты !
При распаковке AsProt'ов господина Солодовникова
в табличке IAT очень часто встречаются адреса
на такого рода конструкции:

1).
00BF04A0 6A 1C push 1C
00BF04A2 68 0819917C push 7C911908
00BF04A7 68 9118917C push 7C911891
00BF04AC C3 ret

2).
00BF04D8 6A 14 push 14
00BF04DA 68 10CD807C push 7C80CD10
00BF04DF - E9 CCC7C17B jmp kernel32.7C80CCB0

3).
00BE13F4 55 push ebp
00BE13F5 8BEC mov ebp,esp
00BE13F7 5D pop ebp
00BE13F8 C2 0400 ret 4

4).
00BE13BC 55 push ebp
00BE13BD 8BEC mov ebp,esp
00BE13BF E8 AC3DFFFF call 00BD5170
00BE13C4 A1 F46CBE00 mov eax,dword ptr ds:[BE6CF4]
00BE13C9 5D pop ebp
00BE13CA C3 ret


5).
00BF0338 64:A1 18000000 mov eax,dword ptr fs:[18]
00BF033E - E9 FA93C17B jmp kernel32.7C80973D


6).
00BF0598 68 6910817C push kernel32.GetFileType
00BF059D C3 ret

7).
00BE1388 FF35 E86CBE00 push dword ptr ds:[BE6CE8]
00BE138E 58 pop eax
00BE138F C3 ret
00BE1390 C3 ret

8).
00BE13E4 55 push ebp
00BE13E5 8BEC mov ebp,esp
00BE13E7 8B05 F86CBE00 mov eax,dword ptr ds:[BE6CF8]
00BE13ED 8B45 08 mov eax,dword ptr ss:[ebp+8]
00BE13F0 5D pop ebp
00BE13F1 C2 0400 ret 4

Может кто-нибудь по-подробнее обьяснить все эти
ухищрения господина Солодовникова - что проставить
в IAT вместо адресов на эти конструкции???

С ув. matkin



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

Создано: 20 апреля 2007 11:13
· Личное сообщение · #2

matkin пишет:
6).
00BF0598 68 6910817C push kernel32.GetFileType
00BF059D C3 ret

Это шутка такая или господин matkin действительно не видит, что здесь вызывается?
С остальными примерами всё тоже довольно очевидно (особенно при отладке).

Читаем статьи, ищим по форуму.

-----
Всем привет, я вернулся




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 20 апреля 2007 11:23
· Личное сообщение · #3

простой редирект для которого нужен только дизасм длин...

-----
Shalom ebanats!




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

Создано: 20 апреля 2007 12:37
· Личное сообщение · #4

С примером 6), конечно, все просто
А вот с остальными, хотелось бы по-подробнее....

С ув. matkin



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

Создано: 20 апреля 2007 12:52
· Личное сообщение · #5

matkin пишет:
00BF04A7 68 9118917C push 7C911891
00BF04AC C3 ret
- jmp 7c911891
В остальных случаях с ret'ами тоже самое - смотрим кто и как положил адрес возврата,
А там где jmp, даже не знаю, чем подсказать




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 апреля 2007 13:06
· Личное сообщение · #6

matkin а ну быстро читать статьи как занопить плохой call в аспре!

-----
Yann Tiersen best and do not fuck




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

Создано: 23 апреля 2007 17:07
· Личное сообщение · #7

Я вижу, что меня немного не так поняли. Я хотел попросить по-подробнее обьяснить некоторые
примеры и, может быть, привести свои, с которыми сталкивались при работе с Aspr-ом.
У меня основная цель, это написать плагин к Imprec-у как можно более универсальнее. Я уже насобирал
более 50-ти подобных "ухищрений" не только к Aspr-у, но и к Armadill-е. Просмотренные мной плагины
к Imprec-у 100 процентной гарантии восстановления IAT-а не дают. Все равно приходится закатывать
рукава и ручками устанавливать соответствие с нужной API-функцией. А в некоторых плагинах так и записано - что это только пример для создания своих плагинов для других версий Aspr-ов. Это, по-моему,
лишняя трата времени. Выход есть. Насобирать статистику, и попытаться обработать семантику этих
"ухищрений". Такой анализ, скорее всего, вряд ли проводился. Хотя по приведенным примерам видно,
что Солодовников пытается оторвать начало и его выполнить до входа в API-функцию и это начало
бывает разной длины (если считать в байтах - результат разной длины константы в PUSH-е) - это и может
выявить семантический анализ.
Я вот и подумал, что помощь в сборе такой статистики могут мне оказать Специалисты.
С ув. matkin




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 23 апреля 2007 17:37
· Личное сообщение · #8

matkin
Так вид спертых байт зависит от того, откуда их сперли =) Некотоыре ф-и воруются до конца, и если они прополиморфлены, то простым бинарным поиском в библиотеке ты её уже не найдешь. Так что надо
PE_Kill пишет:
занопить плохой call в аспре!

а не писать плуг!



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

Создано: 23 апреля 2007 17:48
· Личное сообщение · #9

Вот такого рода функции и надо выловить. Их ведь ограниченное количество.
И полиморфление не поможет их скрыть - ведь кое-какие адреса должны быть явные !
С ув. matkin



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

Создано: 24 апреля 2007 15:11
· Личное сообщение · #10

Я думаю, что эту тему можно закрывать.

С ув. matkin


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


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