/* original, prints WTF to stdout and exits: 8049074: b8 04 00 00 00 mov $0x4,%eax 8049079: bb 01 00 00 00 mov $0x1,%ebx 804907e: 68 57 54 46 0a push $0xa465457 8049083: 89 e1 mov %esp,%ecx 8049085: 89 c2 mov %eax,%edx 8049087: cd 80 int $0x80 8049089: 31 c0 xor %eax,%eax 804908b: 40 inc %eax 804908c: cd 80 int $0x80 */ /* cursion 0: */ .section .text .globl _start _start: pushl $0x000080cd pushl $0x40c03180 pushl $0xcdc289e1 pushl $0x890a4654 pushl $0x57680000 pushl $0x0001bb00 pushl $0x000004b8 jmp *%esp /* recursion 1: */ .section .text .globl _start _start: pushl $0x000000e4 pushl $0xff000004 pushl $0xb8680001 pushl $0xbb006857 pushl $0x68000068 pushl $0x890a4654 pushl $0x68cdc289 pushl $0xe16840c0 pushl $0x31806800 pushl $0x0080cd68 jmp *%esp "Original", "cursion 0" and "recursion 1" are different looking, but equivalents in net code. this will eventually segfault due excessive stack use! Until so, This is a good obscurator.