coke@ubuntu:~/桌面/CTFworkstation/Offensive_and_defensive_world/REcho$ ROPgadget --binary Recho --only "add|ret" Gadgets information ============================================================ 0x00000000004008af : add bl, dh ; ret 0x00000000004008ad : add byte ptr [rax], al ; add bl, dh ; ret 0x00000000004008ab : add byte ptr [rax], al ; add byte ptr [rax], al ; add bl, dh ; ret 0x00000000004008ac : add byte ptr [rax], al ; add byte ptr [rax], al ; ret 0x0000000000400830 : add byte ptr [rax], al ; add cl, cl ; ret 0x00000000004008ae : add byte ptr [rax], al ; ret 0x00000000004006f8 : add byte ptr [rcx], al ; ret 0x000000000040070d : add byte ptr [rdi], al ; ret 0x0000000000400832 : add cl, cl ; ret 0x00000000004006f4 : add eax, 0x20098e ; add ebx, esi ; ret 0x000000000040070a : add eax, 0x70093eb ; ret 0x00000000004006f9 : add ebx, esi ; ret 0x00000000004005b3 : add esp, 8 ; ret 0x00000000004005b2 : add rsp, 8 ; ret 0x00000000004005b6 : ret
Unique gadgets found: 15
用ROPgadget脚本可以看到这里存在add指令
1 2 3
0x00000000004008ae : add byte ptr [rax], al ; ret 0x00000000004006f8 : add byte ptr [rcx], al ; ret 0x000000000040070d : add byte ptr [rdi], al ; ret
可以修改指定的寄存器指向的地址的值,这里用的是al来加,所以肯定不能用rax寄存器来指向GOT表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
coke@ubuntu:~/桌面/CTFworkstation/Offensive_and_defensive_world/REcho$ ROPgadget --binary Recho --only "pop|ret" Gadgets information ============================================================ 0x000000000040089c : pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret 0x000000000040089e : pop r13 ; pop r14 ; pop r15 ; ret 0x00000000004008a0 : pop r14 ; pop r15 ; ret 0x00000000004008a2 : pop r15 ; ret 0x00000000004006fc : pop rax ; ret 0x000000000040089b : pop rbp ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret 0x000000000040089f : pop rbp ; pop r14 ; pop r15 ; ret 0x0000000000400690 : pop rbp ; ret 0x00000000004008a3 : pop rdi ; ret 0x00000000004006fe : pop rdx ; ret 0x00000000004008a1 : pop rsi ; pop r15 ; ret 0x000000000040089d : pop rsp ; pop r13 ; pop r14 ; pop r15 ; ret 0x00000000004005b6 : ret