#include int debugger_detected() { char result; asm(" call 1f \n\t" "1: pop %%edi \n\t" " sub $5, %%edi \n\t" " mov $0x400,%%ecx \n\t" " mov $0xcc,%%eax \n\t" " repnz scasb \n\t" " setz %0 \n\t" :"=r"(result)); return result; } int main(int argc, char **argv) { if (argc > 1) printf("%s: ", argv[1]); if (debugger_detected()) puts("debbuger detected!!!"); else puts("debugger not detected!!!"); }