Показать сообщение отдельно

  #3  
Старый 11.11.2008, 14:26
StopFreeLife
Участник форума
Регистрация: 30.12.2007
Сообщений: 280
Провел на форуме:
1257515

Репутация: 557
Отправить сообщение для StopFreeLife с помощью ICQ Отправить сообщение для StopFreeLife с помощью AIM Отправить сообщение для StopFreeLife с помощью Yahoo
По умолчанию

Видим, что есть вызовы 3-х DLL, две из них – те, которые мы нашли, и другая – это Ntdll. Смотрим.

Если, например, перейдём к вызовам этой DLL.



Видим, что соответствующий элемент находится в 401200, то есть это смешение (mezclada – чего-то я не совсем понял, о чём он толкует, кто понял – отпишитесь – прим. пер.) с kernel32.dll.



То же самое относится и к другой из указанных DLL, которая смешана с kernel32.dll. Мы не заметили, что эти две секции кода находятся рядом друг с другом, но это так.





Ок, посмотрим какие проблемы могут быть из-за подобного начала IAT. Вот все эти элементы:



Начала IAT находится в 40119C, которое совпадает с меньшим значением, найденным в таблице переходов.



Видим, что оно самое маленькое из всех этих значений, так что у нас получается:

Код:
OEP=4000 RVA или НАЧАЛО IAT=119C   РАЗМЕР = КОНЕЦ МИНУС НАЧАЛО = 401218-40119c = 7C


Задаём эти значения в IMP REC, чтобы посмотреть, что получится, видим, что оба смешанных элемента относятся к ntdll и kernel32.



Видим, что указанная часть не та, которая соответствует мусорным элементам, и внизу видим, что у нас есть только элементы для kernel32, и если посмотрим редко встречающиеся элементы, соответствующие 401200 b 401210, то увидим, что:



Заменяем его на похожие элементы, соответствующие kernel32.dll, и что это будет означать?


Видим, что теперь в логе нам говорят, что эти элемент похожи на элементы из kernel32.dll, и пакер может свободно менять их, что всё запутать и усложнить.

Хорошо, теперь нам осталось убрать мусор из середины. Проверяем эти элементы и смотрим, если написано NO, то это мусор. Чтобы убедиться в этом, идём к одному из них.
 
Ответить с цитированием