.586p .Model Flat extrn ExitProcess : PROC ;procedure to shut down a process extrn MessageBoxA : PROC ;procedure to show a MessageBox .Data shit db "you traced via single step or run it normal",0 shit2 db "you traced me via access to debug registers!!!",0 caption db "",0 .Code Main: push edx sidt [esp-2] ; Interrupt table to stack pop edx add edx,4*8+4 ; Get interrupt vector mov ebx,[edx] mov bx,word ptr [edx-4] lea edi,InterruptHandler1 mov [edx-4],di ror edi,16 mov [edx+2],di mov eax,dr3 pushfd or dword ptr [esp],800h popfd into mov [edx-4],bx ror ebx,16 mov [edx+2],bx push 0 push offset caption and eax,000000F0h cmp ax,00C0h je f10 push offset shit jmp msg f10: push offset shit2 msg: push 0 call MessageBoxA exit_me:call ExitProcess InterruptHandler1: mov eax,dr7 iretd End Main ;End of code, Main is the entrypoint