write4
Building write-what-where abilities to process new memory.
Attack Vector Inspiration
gef➤ disas pwnme
Dump of assembler code for function pwnme:
0x00000000000008aa <+0>: push rbp
0x00000000000008ab <+1>: mov rbp,rsp
0x00000000000008ae <+4>: sub rsp,0x20
0x00000000000008b2 <+8>: mov rax,QWORD PTR [rip+0x200727] # 0x200fe0
0x00000000000008b9 <+15>: mov rax,QWORD PTR [rax]
0x00000000000008bc <+18>: mov ecx,0x0
0x00000000000008c1 <+23>: mov edx,0x2
0x00000000000008c6 <+28>: mov esi,0x0
0x00000000000008cb <+33>: mov rdi,rax
0x00000000000008ce <+36>: call 0x790 <setvbuf@plt>
0x00000000000008d3 <+41>: lea rdi,[rip+0x106] # 0x9e0
0x00000000000008da <+48>: call 0x730 <puts@plt>
0x00000000000008df <+53>: lea rdi,[rip+0x111] # 0x9f7
0x00000000000008e6 <+60>: call 0x730 <puts@plt>
0x00000000000008eb <+65>: lea rax,[rbp-0x20]
0x00000000000008ef <+69>: mov edx,0x20
0x00000000000008f4 <+74>: mov esi,0x0
0x00000000000008f9 <+79>: mov rdi,rax
0x00000000000008fc <+82>: call 0x760 <memset@plt>
0x0000000000000901 <+87>: lea rdi,[rip+0xf8] # 0xa00
0x0000000000000908 <+94>: call 0x730 <puts@plt>
0x000000000000090d <+99>: lea rdi,[rip+0x115] # 0xa29
0x0000000000000914 <+106>: mov eax,0x0
0x0000000000000919 <+111>: call 0x750 <printf@plt>
0x000000000000091e <+116>: lea rax,[rbp-0x20]
0x0000000000000922 <+120>: mov edx,0x200
0x0000000000000927 <+125>: mov rsi,rax
0x000000000000092a <+128>: mov edi,0x0
0x000000000000092f <+133>: call 0x770 <read@plt>
0x0000000000000934 <+138>: lea rdi,[rip+0xf1] # 0xa2c
0x000000000000093b <+145>: call 0x730 <puts@plt>
0x0000000000000940 <+150>: nop
0x0000000000000941 <+151>: leave
0x0000000000000942 <+152>: ret
End of assembler dump.Building the ROP Chain
Deciding Where to Write
Writing the Exploit
Alternative Solution
Last updated