Исследование и распаковка ПО, модифицированного UPX Protector 1.0

Перейти на главную страницу, индексную страницу.


Автор: FEUERRADER <feuerrader@nm.ru>


       Цель: исследование UPX Protector 1.0
Инструменты: ProcDump 1.6.2

Описание: что он могёт:
1) распознается PEiD
2) скрэмблит заголовок, что обеспечивает защиту от UPX -d
3) защиту от скрипта ProcDump
4) cloaking секций (что это?)
5) меняет точку входа и ОЕР (об этом читай ниже)

Исследование: основное отличие от других скрэмблеров - изменение точки входа и ОЕР, что влекет за собой защиту от скрипта по распаковке UPX у ProcDump. В чем же это заключается: у не модифицированного UPXPR файла точка входа 40CED0h, а у пакованного 40CEE2h. Смотрите:

.0040CED0:   pushad                             <- EP нетронутого UPXPR
.0040CED1:   mov       esi,00040B000 ;" @- "
.0040CED6:   lea       edi,[esi][0FFFF6000]
.0040CEDC:   push      edi
.0040CEDD:   or        ebp,-001 ;" "
.0040CEE0:   jmps     .00040CEF2   -------- (1)
.0040CEE2:   jmps     .00040CED0   -------- (2) <- EP модифицированного
.0040CEE4:   nop

Идет обычный джамп на ЕР. Точно такая же ситуация с ОЕР:

.0040D01E: 61              popad
.0040D01F: EB11            jmps  00040D032      <- джамп на джамп :)
.......тут HIEW напутал с опкодами.......
.0040D032: E9C16AFFFF      jmp   0FFFF8EF8      <- это уже на ОЕР

И какова же тут защита от ProcDump? Посмотрим скрипт по распаковке UPX:

L1=OBJR
L2=LOOK 61,E9
L3=BP
L4=STEP

Т.е. ищутся байты 61E9, ну а там "дело техники". А в модифицированном UPXPR файле этих байтов нет.
Там идет 61EB......E9????0000 (см.выше). А теперь создаем свой скрипт против UPX Protector 1.0 by Blind Angel!

Добавляем в script.ini в раздел [INDEX]:

P1F=Aspack 2.12       <- это было до нас
P20=UPX Protector 1.0 <- Pxx - заменяем на следующее после P1F!

Теперь добавим новую секцию:

[UPX Protector 1.0]
L1=OBJR
L2=LOOK E9,?,?,?,?,00,00
L3=BP
L4=STEP
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000

Будет теперь искаться джамп, ведущий на ОЕР. Теперь, если PEiD показывает UPX Protector 1.0, смело пользуйтесь этим скриптом. Кстати, в аннотации к UPXProtector написано, что "UPXPR защищает от скрипта ProcDump, но не защищает от ручной распаковки и изменений в скрипте".

Вывод: эта короткая статейка, думаю, показывает как легко создать свой скрипт для ProcDump.

Спасибо за интерес к этой статье!



Все права защищены ©  2003 

С ЭТОЙ СТРАНИЦЫ КОПИРОВАНИЕ ЗАПРЕЩЕНО АВТОРОМ!!!
Эту статью НЕЛЬЗЯ помещать на какие-либо сайты!!!


Материалы находятся на сайте http://cracklab.narod.ru/doc/






Hosted by uCoz