Антиотладочный трюк через trapflag

автор | 21 Декабрь, 2008
рубрики RCE программирование, Антиотладка Комментарии к записи Антиотладочный трюк через trapflag отключены

 

;------------------------------------------------------------------------------;
__int1_s:
        pusha                ;
once_morex:
        call    setup_seh        ;
        mov    ecx,[esp+0ch]        ; ecx = структура контекста
        mov    ebx,[esp+04h]        ; ebx = exception_record

        mov    edx,[ebx]        ;
        cmp    edx,80000004h        ;
        je    reset_drs               ;

        mov    eax,[ecx+0b8h]        ;
        dec    eax            ;

        or    4 ptr [ecx+0c0h],100h    ;
        jmp    seh_exit        ;
reset_drs:
        xor    eax,eax            ;
        mov    esp,[esp+8]        ;
        jmp    seh_restore2        ;
seh_exit:
        dec    4 ptr [ecx+0b8h]    ;
        xor    eax,eax            ;
        ret
setup_seh:
        xor    edx,edx         ; Установка SEH обработчика
        push    4 ptr fs:[edx]        ;
        mov    fs:[edx],esp        ;
        nop                ;
        int    3            ; Вызываем исключение
        jmp    once_morex        ;
seh_restore:
        or    eax, -1            ;
seh_restore2:
        pop    4 ptr fs:[eax]        ;
        pop    eax            ;
        popa                ;
__int1_e:
;------------------------------------------------------------------------------;

Оценить эту тему:
1 звезда2 звезды3 звезды4 звезды5 звезд (1 голосов, средний: 5,00 из 5)
Loading...Loading...
Популярность: 3 167 просмотров
Вы можете следить за любыми ответами на эту запись через RSS 2.0 feed. Комментарии в настоящее время закрыты.