蒸米ROP学习笔记
蒸米ROP教程:
1.一般先找溢出点:含有read等有输入不限长度参数到返回值的大小为填充大小。
2.构造shellcode:execve('/bin/sh')。
3.填上shellcode+padding+ret。
其中
1.ret2lib bypass DEP:通过write@plt把write()在内存的地址打印出来(即got.write)。
2.或用 read@plt把‘bin/sh’写进.bss,由于read有三个参数,所以需要构造gadget:pop pop pop ret来平衡栈。
3.ret相当于pop rip ,64位前六个参数先存取于rdi/rsi/rdx/rcx/r8/r9,为了调用system('bin/sh‘)需用gadget将rdi值指向bin/sh,其中gadget可用以下两种方式:

浙公网安备 33010602011771号