/*
tested on asprotect 1.23 RC4 only - arz

*/

var j
var k

eoe main

main:
/* 
check for signature bytes
*/
mov j,eip
add j,47
mov k,[j]
mov j,[k]
cmp j,746F7250 
je reset


/*
last exception? 
*/
mov j,esp //based on britedreams lastex
add j,1C
mov k,[j]
cmp k,400000
je exit
cmp k,1000000 //did some testing on notepad :P
je exit
jmp continue


reset:
/* 
zero the debugger check flags for no debugger checks 
*/
mov j,eip
add j,41
mov k,[j] // get ptr to debug check array
sub k,4 // k Ptr do IsDebuggerPresent check flag
mov [k],0 // kill it (api won\'t be called)
add k,8 // k Ptr do anti-debug checks flag 
mov [k],0 // kill the internal FS[?],TRW and system debugger checks
jmp continue


continue:
esto
jmp main

exit:
ret
