4260 lines
No EOL
126 KiB
Text
4260 lines
No EOL
126 KiB
Text
NAME=rop search with maxhits
|
|
FILE=bins/elf/varsub
|
|
CMDS=<<EOF
|
|
e search.maxhits=1
|
|
/Rq pop r15
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x0040052c: pop r12; pop r13; pop r14; pop r15; ret;
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rop search without maxhits
|
|
FILE=bins/elf/varsub
|
|
CMDS=/Rq pop r15~?
|
|
EXPECT=<<EOF
|
|
7
|
|
EOF
|
|
RUN
|
|
|
|
NAME=rop search without maxhits
|
|
FILE=bins/elf/varsub
|
|
CMDS=<<EOF
|
|
e search.maxhits=2
|
|
/Rq pop r15~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
2
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search all rop gadgets
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.nbytes=8
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/R
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b5 80b801000000b9 cmp byte [eax+0x01], 0xb9
|
|
0x000000bc 0000 add byte [eax], al
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 14
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b7 0100 add dword [eax], eax
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 12
|
|
|
|
0x000000b8 0000 add byte [eax], al
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 11
|
|
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 10
|
|
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 9
|
|
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 8
|
|
|
|
0x000000bc 0000 add byte [eax], al
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 7
|
|
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 5
|
|
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 3
|
|
|
|
0x000000c2 c3 ret
|
|
Gadget size: 1
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with a regexp
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/R/ mov e[abcd]x
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b7 0100 add dword [eax], eax
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 12
|
|
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 10
|
|
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 8
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets and show them linearly
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/Rq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4: int 0x80; mov eax, 0x01; mov ecx, 0x00; int 0x80; ret;
|
|
0x000000b5: cmp byte [eax+0x01], 0xb9; add byte [eax], al; add byte [eax], al; int 0x80; ret;
|
|
0x000000b6: mov eax, 0x01; mov ecx, 0x00; int 0x80; ret;
|
|
0x000000b7: add dword [eax], eax; add byte [eax], al; mov ecx, 0x00; int 0x80; ret;
|
|
0x000000b8: add byte [eax], al; add byte [ecx], bh; int 0x80; ret;
|
|
0x000000b9: add byte [eax], al; mov ecx, 0x00; int 0x80; ret;
|
|
0x000000ba: add byte [ecx], bh; int 0x80; ret;
|
|
0x000000bb: mov ecx, 0x00; int 0x80; ret;
|
|
0x000000bc: add byte [eax], al; add byte [eax], al; int 0x80; ret;
|
|
0x000000be: add byte [eax], al; int 0x80; ret;
|
|
0x000000c0: int 0x80; ret;
|
|
0x000000c2: ret;
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with filter
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/R ecx
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b7 0100 add dword [eax], eax
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 12
|
|
|
|
0x000000b8 0000 add byte [eax], al
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 11
|
|
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 10
|
|
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 9
|
|
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 8
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with filter and output JSON
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/Rj ecx
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[{"opcodes":[{"offset":180,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":182,"size":5,"opcode":"mov eax, 0x01","type":"mov"},{"offset":187,"size":5,"opcode":"mov ecx, 0x00","type":"mov"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":15},{"opcodes":[{"offset":182,"size":5,"opcode":"mov eax, 0x01","type":"mov"},{"offset":187,"size":5,"opcode":"mov ecx, 0x00","type":"mov"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":13},{"opcodes":[{"offset":183,"size":2,"opcode":"add dword [eax], eax","type":"add"},{"offset":185,"size":2,"opcode":"add byte [eax], al","type":"add"},{"offset":187,"size":5,"opcode":"mov ecx, 0x00","type":"mov"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":12},{"opcodes":[{"offset":184,"size":2,"opcode":"add byte [eax], al","type":"add"},{"offset":186,"size":6,"opcode":"add byte [ecx], bh","type":"add"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":11},{"opcodes":[{"offset":185,"size":2,"opcode":"add byte [eax], al","type":"add"},{"offset":187,"size":5,"opcode":"mov ecx, 0x00","type":"mov"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":10},{"opcodes":[{"offset":186,"size":6,"opcode":"add byte [ecx], bh","type":"add"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":9},{"opcodes":[{"offset":187,"size":5,"opcode":"mov ecx, 0x00","type":"mov"},{"offset":192,"size":2,"opcode":"int 0x80","type":"swi"},{"offset":194,"size":1,"opcode":"ret","type":"ret"}],"retaddr":194,"size":8}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with a regex of the form (a|b)
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/R/ "(ecx|eax)"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b5 80b801000000b9 cmp byte [eax+0x01], 0xb9
|
|
0x000000bc 0000 add byte [eax], al
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 14
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b7 0100 add dword [eax], eax
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 12
|
|
|
|
0x000000b8 0000 add byte [eax], al
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 11
|
|
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 10
|
|
|
|
0x000000ba 00b900000000 add byte [ecx], bh
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 9
|
|
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 8
|
|
|
|
0x000000bc 0000 add byte [eax], al
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 7
|
|
|
|
0x000000be 0000 add byte [eax], al
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 5
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with another end gadget as part of it.
|
|
FILE=bins/elf/analysis/unoriginal
|
|
CMDS=<<EOF
|
|
e asm.bits=32
|
|
e gadget.len=15
|
|
e search.from=0x08048340
|
|
e search.to=0x08048400
|
|
/R push esp
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x08048350 fff4 push esp
|
|
0x08048352 6690 nop
|
|
0x08048354 6690 nop
|
|
0x08048356 6690 nop
|
|
0x08048358 6690 nop
|
|
0x0804835a 6690 nop
|
|
0x0804835c 6690 nop
|
|
0x0804835e 6690 nop
|
|
0x08048360 8b1c24 mov ebx, dword [esp]
|
|
0x08048363 c3 ret
|
|
Gadget size: 20
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop with sequence.
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=/R "pop esi;pop edi;pop ebp;ret"
|
|
EXPECT=<<EOF
|
|
0x0804847a c41c5b les ebx, fword [ebx+ebx*2]
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 7
|
|
|
|
0x0804847b 1c5b sbb al, 0x5b
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 6
|
|
|
|
0x0804847c 5b pop ebx
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 5
|
|
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 4
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop with regex sequence.
|
|
FILE=bins/elf/analysis/x86-helloworld-gcc
|
|
CMDS=<<EOF
|
|
e asm.bits=32
|
|
/R/ "pop esi;pop edi;pop ebp;ret"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x0804847a c41c5b les ebx, fword [ebx+ebx*2]
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 7
|
|
|
|
0x0804847b 1c5b sbb al, 0x5b
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 6
|
|
|
|
0x0804847c 5b pop ebx
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 5
|
|
|
|
0x0804847d 5e pop esi
|
|
0x0804847e 5f pop edi
|
|
0x0804847f 5d pop ebp
|
|
0x08048480 c3 ret
|
|
Gadget size: 4
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop for AVR
|
|
FILE=malloc://512
|
|
CMDS=<<EOF
|
|
e asm.arch=avr
|
|
e cfg.bigendian=false
|
|
e scr.color=false
|
|
wx 80e190e2089560e570e6089580e790e208958ae19be208950895a0e3b0e4c0e5d0e608956de071e00895
|
|
/R ldi
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 80e1 ldi r24, 0x10
|
|
0x00000002 90e2 ldi r25, 0x20
|
|
0x00000004 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000002 90e2 ldi r25, 0x20
|
|
0x00000004 0895 ret
|
|
Gadget size: 4
|
|
|
|
0x00000006 60e5 ldi r22, 0x50
|
|
0x00000008 70e6 ldi r23, 0x60
|
|
0x0000000a 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000008 70e6 ldi r23, 0x60
|
|
0x0000000a 0895 ret
|
|
Gadget size: 4
|
|
|
|
0x0000000c 80e7 ldi r24, 0x70
|
|
0x0000000e 90e2 ldi r25, 0x20
|
|
0x00000010 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000012 8ae1 ldi r24, 0x1a
|
|
0x00000014 9be2 ldi r25, 0x2b
|
|
0x00000016 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000014 9be2 ldi r25, 0x2b
|
|
0x00000016 0895 ret
|
|
Gadget size: 4
|
|
|
|
0x0000001a a0e3 ldi r26, 0x30
|
|
0x0000001c b0e4 ldi r27, 0x40
|
|
0x0000001e c0e5 ldi r28, 0x50
|
|
0x00000020 d0e6 ldi r29, 0x60
|
|
0x00000022 0895 ret
|
|
Gadget size: 10
|
|
|
|
0x0000001c b0e4 ldi r27, 0x40
|
|
0x0000001e c0e5 ldi r28, 0x50
|
|
0x00000020 d0e6 ldi r29, 0x60
|
|
0x00000022 0895 ret
|
|
Gadget size: 8
|
|
|
|
0x0000001e c0e5 ldi r28, 0x50
|
|
0x00000020 d0e6 ldi r29, 0x60
|
|
0x00000022 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000020 d0e6 ldi r29, 0x60
|
|
0x00000022 0895 ret
|
|
Gadget size: 4
|
|
|
|
0x00000024 6de0 ldi r22, 0x0d
|
|
0x00000026 71e0 ldi r23, 0x01
|
|
0x00000028 0895 ret
|
|
Gadget size: 6
|
|
|
|
0x00000026 71e0 ldi r23, 0x01
|
|
0x00000028 0895 ret
|
|
Gadget size: 4
|
|
|
|
EOF
|
|
EXPECT_ERR=
|
|
RUN
|
|
|
|
|
|
NAME=search rop gadgets given the detailed stack change (=0)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rs "=0"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc08
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc0c
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10cc
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d0
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d8
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1118
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x111c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1120
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x125c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1260
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1264
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1890
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1894
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ecc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed0
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed4
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed8
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed stack change (<0x2000)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rs "<0x2000"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc08
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc0c
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10cc
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d0
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d8
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1118
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x111c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1120
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x125c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1260
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1264
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1890
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1894
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ecc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed0
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed4
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed8
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed stack change (<=0x2000)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rs "<=0x2000"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc08
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc0c
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10cc
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d0
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d8
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1118
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x111c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1120
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x125c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1260
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1264
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1890
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1894
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ecc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed0
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed4
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed8
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed stack change (>0x1)
|
|
FILE=bins/arm/elf/hello-linux-arm64
|
|
CMDS=<<EOF
|
|
/Rs ">0x1"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x400ff4
|
|
Stack change: 0x651
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a1c
|
|
Stack change: 0x4b0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a20
|
|
Stack change: 0x4b0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a24
|
|
Stack change: 0x4b0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a28
|
|
Stack change: 0x4b0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402438
|
|
Stack change: 0x970
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x40243c
|
|
Stack change: 0x970
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402440
|
|
Stack change: 0x970
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402444
|
|
Stack change: 0x970
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d94
|
|
Stack change: 0x600
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d98
|
|
Stack change: 0x600
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d9c
|
|
Stack change: 0x600
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403da0
|
|
Stack change: 0x600
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x405c5c
|
|
Stack change: 0x2180
|
|
Changed registers: x19 x20 x12 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c60
|
|
Stack change: 0x2180
|
|
Changed registers: x12 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c64
|
|
Stack change: 0x2180
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c68
|
|
Stack change: 0x2180
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098e8
|
|
Stack change: 0x2180
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098ec
|
|
Stack change: 0x2180
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098f0
|
|
Stack change: 0x2180
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x412714
|
|
Stack change: 0x460
|
|
Changed registers: x0 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x20
|
|
|
|
Gadget 0x412718
|
|
Stack change: 0x460
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41271c
|
|
Stack change: 0x460
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412720
|
|
Stack change: 0x460
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128f4
|
|
Stack change: 0x470
|
|
Changed registers: x19 x20 x21 x22 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128f8
|
|
Stack change: 0x470
|
|
Changed registers: x21 x22 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128fc
|
|
Stack change: 0x470
|
|
Changed registers: x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412900
|
|
Stack change: 0x470
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4129a8
|
|
Stack change: 0x1030
|
|
Changed registers: x29 x30 x12 x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129ac
|
|
Stack change: 0x1030
|
|
Changed registers: x12 x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129b0
|
|
Stack change: 0x1030
|
|
Changed registers: x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129dc
|
|
Stack change: 0x1e861
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412a1c
|
|
Stack change: 0x1e8c1
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x413234
|
|
Stack change: 0x470
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x413238
|
|
Stack change: 0x470
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41323c
|
|
Stack change: 0x470
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41503c
|
|
Stack change: 0x20ac1
|
|
Changed registers: x0 x29 x30 sp
|
|
Register dependencies:
|
|
Var Read: x30
|
|
|
|
Gadget 0x415040
|
|
Stack change: 0x20ad1
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ecc
|
|
Stack change: 0xb0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed0
|
|
Stack change: 0xb0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed4
|
|
Stack change: 0xb0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed8
|
|
Stack change: 0xb0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236e8
|
|
Stack change: 0x250
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236ec
|
|
Stack change: 0x250
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236f0
|
|
Stack change: 0x250
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236f4
|
|
Stack change: 0x250
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee0
|
|
Stack change: 0xc0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee4
|
|
Stack change: 0xc0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee8
|
|
Stack change: 0xc0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423eec
|
|
Stack change: 0xc0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249c4
|
|
Stack change: 0x7c0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249c8
|
|
Stack change: 0x7c0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249cc
|
|
Stack change: 0x7c0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249d0
|
|
Stack change: 0x7c0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x425aa8
|
|
Stack change: 0x4b0
|
|
Changed registers: x29 x30 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x425aac
|
|
Stack change: 0x4b0
|
|
Changed registers: x29 x30 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x42f3a4
|
|
Stack change: 0x2c730
|
|
Changed registers: x2 x30 x29 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x42f538
|
|
Stack change: 0x2cd30
|
|
Changed registers: x3 x30 x29 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d0c
|
|
Stack change: 0x870
|
|
Changed registers: x23 x24 x25 x26 x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d10
|
|
Stack change: 0x870
|
|
Changed registers: x25 x26 x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d14
|
|
Stack change: 0x870
|
|
Changed registers: x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d18
|
|
Stack change: 0x870
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc0
|
|
Stack change: 0x8a0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc4
|
|
Stack change: 0x8a0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc8
|
|
Stack change: 0x8a0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dcc
|
|
Stack change: 0x8a0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfe4
|
|
Stack change: 0x420
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfe8
|
|
Stack change: 0x420
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfec
|
|
Stack change: 0x420
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bff0
|
|
Stack change: 0x420
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce34
|
|
Stack change: 0x110
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce38
|
|
Stack change: 0x110
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce3c
|
|
Stack change: 0x110
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce40
|
|
Stack change: 0x110
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d72c
|
|
Stack change: 0x110
|
|
Changed registers: x27 x28 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d730
|
|
Stack change: 0x110
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d734
|
|
Stack change: 0x110
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43e850
|
|
Stack change: 0x1030
|
|
Changed registers: x29 x30 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x43e854
|
|
Stack change: 0x1030
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x43e8f4
|
|
Stack change: 0x1030
|
|
Changed registers: x0 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x21
|
|
Var Read: x12
|
|
|
|
Gadget 0x43ea9c
|
|
Stack change: 0x490
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa0
|
|
Stack change: 0x490
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa4
|
|
Stack change: 0x490
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa8
|
|
Stack change: 0x490
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f618
|
|
Stack change: 0x2e0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f61c
|
|
Stack change: 0x2e0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f620
|
|
Stack change: 0x2e0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f624
|
|
Stack change: 0x2e0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43fe5c
|
|
Stack change: 0x3c631
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4422d0
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Memory Read: x0 Value: 0x7
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422d4
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422d8
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422dc
|
|
Stack change: 0x10
|
|
Changed registers: x1 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472f4
|
|
Stack change: 0x5f0
|
|
Changed registers: x21 x22 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472f8
|
|
Stack change: 0x5f0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472fc
|
|
Stack change: 0x5f0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x447300
|
|
Stack change: 0x5f0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4492dc
|
|
Stack change: 0x8280
|
|
Changed registers: x12 x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4492e0
|
|
Stack change: 0x8280
|
|
Changed registers: x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4492e4
|
|
Stack change: 0x8280
|
|
Changed registers: x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x44a0f8
|
|
Stack change: 0x1a411
|
|
Changed registers: x0 x29 x30
|
|
Register dependencies:
|
|
Var Read: x0
|
|
Var write: x0 Initial value: 0x16 New Value: 0xfffff5ca
|
|
|
|
Gadget 0x44bf40
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf44
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf48
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf4c
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450520
|
|
Stack change: 0x520
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450524
|
|
Stack change: 0x520
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450528
|
|
Stack change: 0x520
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45052c
|
|
Stack change: 0x520
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451974
|
|
Stack change: 0x1d9e1
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451a08
|
|
Stack change: 0x1da11
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ff4
|
|
Stack change: 0x260
|
|
Changed registers: x21 x22 x23 x24 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ff8
|
|
Stack change: 0x260
|
|
Changed registers: x23 x24 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ffc
|
|
Stack change: 0x260
|
|
Changed registers: x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x452000
|
|
Stack change: 0x260
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x452438
|
|
Stack change: 0x260
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x45243c
|
|
Stack change: 0x260
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x452440
|
|
Stack change: 0x260
|
|
Changed registers: x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x452848
|
|
Stack change: 0x450
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0xffffffffffffffff New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0xffffffffffffffff New Value: 0x0
|
|
|
|
Gadget 0x45284c
|
|
Stack change: 0x450
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0x0 New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0x0 New Value: 0x0
|
|
|
|
Gadget 0x452850
|
|
Stack change: 0x450
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0x0 New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0x0 New Value: 0x0
|
|
|
|
Gadget 0x452854
|
|
Stack change: 0x450
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538c0
|
|
Stack change: 0x6d0
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Memory Write: x21 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
Memory Write: x19 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4538c4
|
|
Stack change: 0x6d0
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538c8
|
|
Stack change: 0x6d0
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538cc
|
|
Stack change: 0x6d0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b0c
|
|
Stack change: 0x6c0
|
|
Changed registers: x19 x20 x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b10
|
|
Stack change: 0x6c0
|
|
Changed registers: x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b14
|
|
Stack change: 0x6c0
|
|
Changed registers: x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b18
|
|
Stack change: 0x6c0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c44
|
|
Stack change: 0x6d0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c48
|
|
Stack change: 0x6d0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c4c
|
|
Stack change: 0x6d0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453d48
|
|
Stack change: 0x247a1
|
|
Changed registers: sp x29 x30 x0
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0x453ce8
|
|
Memory Read: x0 Value: 0x318
|
|
|
|
Gadget 0x453ec0
|
|
Stack change: 0xa70
|
|
Changed registers: x29 x30 x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ec4
|
|
Stack change: 0xa70
|
|
Changed registers: x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ec8
|
|
Stack change: 0xa70
|
|
Changed registers: x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ecc
|
|
Stack change: 0xa70
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ef4
|
|
Stack change: 0xa70
|
|
Changed registers: x0 x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45400c
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454010
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454014
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454148
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x45414c
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454150
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454450
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x454454
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x454458
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45445c
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4570d4
|
|
Stack change: 0x2fd5a
|
|
Changed registers: sp x29 x30
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4570d8
|
|
Stack change: 0x2fd5a
|
|
Changed registers: sp x29 x30
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4570dc
|
|
Stack change: 0x2fd7a
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed stack change (>=0x1)
|
|
FILE=bins/arm/elf/hello-linux-arm64
|
|
CMDS=<<EOF
|
|
/Rs ">=0x1"
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x400ff4
|
|
Stack change: 0x651
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a1c
|
|
Stack change: 0x4b0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a20
|
|
Stack change: 0x4b0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a24
|
|
Stack change: 0x4b0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x401a28
|
|
Stack change: 0x4b0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402438
|
|
Stack change: 0x970
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x40243c
|
|
Stack change: 0x970
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402440
|
|
Stack change: 0x970
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x402444
|
|
Stack change: 0x970
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d94
|
|
Stack change: 0x600
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d98
|
|
Stack change: 0x600
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403d9c
|
|
Stack change: 0x600
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x403da0
|
|
Stack change: 0x600
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x405c5c
|
|
Stack change: 0x2180
|
|
Changed registers: x19 x20 x12 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c60
|
|
Stack change: 0x2180
|
|
Changed registers: x12 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c64
|
|
Stack change: 0x2180
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x405c68
|
|
Stack change: 0x2180
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098e8
|
|
Stack change: 0x2180
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098ec
|
|
Stack change: 0x2180
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4098f0
|
|
Stack change: 0x2180
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x412714
|
|
Stack change: 0x460
|
|
Changed registers: x0 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x20
|
|
|
|
Gadget 0x412718
|
|
Stack change: 0x460
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41271c
|
|
Stack change: 0x460
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412720
|
|
Stack change: 0x460
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128f4
|
|
Stack change: 0x470
|
|
Changed registers: x19 x20 x21 x22 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128f8
|
|
Stack change: 0x470
|
|
Changed registers: x21 x22 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4128fc
|
|
Stack change: 0x470
|
|
Changed registers: x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412900
|
|
Stack change: 0x470
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4129a8
|
|
Stack change: 0x1030
|
|
Changed registers: x29 x30 x12 x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129ac
|
|
Stack change: 0x1030
|
|
Changed registers: x12 x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129b0
|
|
Stack change: 0x1030
|
|
Changed registers: x19 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4129dc
|
|
Stack change: 0x1e861
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x412a1c
|
|
Stack change: 0x1e8c1
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x413234
|
|
Stack change: 0x470
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x413238
|
|
Stack change: 0x470
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41323c
|
|
Stack change: 0x470
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x41503c
|
|
Stack change: 0x20ac1
|
|
Changed registers: x0 x29 x30 sp
|
|
Register dependencies:
|
|
Var Read: x30
|
|
|
|
Gadget 0x415040
|
|
Stack change: 0x20ad1
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ecc
|
|
Stack change: 0xb0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed0
|
|
Stack change: 0xb0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed4
|
|
Stack change: 0xb0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x421ed8
|
|
Stack change: 0xb0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236e8
|
|
Stack change: 0x250
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236ec
|
|
Stack change: 0x250
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236f0
|
|
Stack change: 0x250
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4236f4
|
|
Stack change: 0x250
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee0
|
|
Stack change: 0xc0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee4
|
|
Stack change: 0xc0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423ee8
|
|
Stack change: 0xc0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x423eec
|
|
Stack change: 0xc0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249c4
|
|
Stack change: 0x7c0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249c8
|
|
Stack change: 0x7c0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249cc
|
|
Stack change: 0x7c0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4249d0
|
|
Stack change: 0x7c0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x425aa8
|
|
Stack change: 0x4b0
|
|
Changed registers: x29 x30 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x425aac
|
|
Stack change: 0x4b0
|
|
Changed registers: x29 x30 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x42f3a4
|
|
Stack change: 0x2c730
|
|
Changed registers: x2 x30 x29 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x42f538
|
|
Stack change: 0x2cd30
|
|
Changed registers: x3 x30 x29 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d0c
|
|
Stack change: 0x870
|
|
Changed registers: x23 x24 x25 x26 x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d10
|
|
Stack change: 0x870
|
|
Changed registers: x25 x26 x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d14
|
|
Stack change: 0x870
|
|
Changed registers: x27 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x434d18
|
|
Stack change: 0x870
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc0
|
|
Stack change: 0x8a0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc4
|
|
Stack change: 0x8a0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dc8
|
|
Stack change: 0x8a0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x435dcc
|
|
Stack change: 0x8a0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfe4
|
|
Stack change: 0x420
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfe8
|
|
Stack change: 0x420
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bfec
|
|
Stack change: 0x420
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43bff0
|
|
Stack change: 0x420
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce34
|
|
Stack change: 0x110
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce38
|
|
Stack change: 0x110
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce3c
|
|
Stack change: 0x110
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43ce40
|
|
Stack change: 0x110
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d72c
|
|
Stack change: 0x110
|
|
Changed registers: x27 x28 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d730
|
|
Stack change: 0x110
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43d734
|
|
Stack change: 0x110
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43e850
|
|
Stack change: 0x1030
|
|
Changed registers: x29 x30 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x43e854
|
|
Stack change: 0x1030
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x43e8f4
|
|
Stack change: 0x1030
|
|
Changed registers: x0 x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Var Read: x21
|
|
Var Read: x12
|
|
|
|
Gadget 0x43ea9c
|
|
Stack change: 0x490
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa0
|
|
Stack change: 0x490
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa4
|
|
Stack change: 0x490
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43eaa8
|
|
Stack change: 0x490
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f618
|
|
Stack change: 0x2e0
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f61c
|
|
Stack change: 0x2e0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f620
|
|
Stack change: 0x2e0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43f624
|
|
Stack change: 0x2e0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x43fe5c
|
|
Stack change: 0x3c631
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4422d0
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Memory Read: x0 Value: 0x7
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422d4
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422d8
|
|
Stack change: 0x10
|
|
Changed registers: x0 x1 sp
|
|
Register dependencies:
|
|
Var Read: x1
|
|
Var Read: x0
|
|
|
|
Gadget 0x4422dc
|
|
Stack change: 0x10
|
|
Changed registers: x1 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472f4
|
|
Stack change: 0x5f0
|
|
Changed registers: x21 x22 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472f8
|
|
Stack change: 0x5f0
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4472fc
|
|
Stack change: 0x5f0
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x447300
|
|
Stack change: 0x5f0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4492dc
|
|
Stack change: 0x8280
|
|
Changed registers: x12 x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4492e0
|
|
Stack change: 0x8280
|
|
Changed registers: x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x4492e4
|
|
Stack change: 0x8280
|
|
Changed registers: x23 x24 sp
|
|
Register dependencies:
|
|
Var Read: x12
|
|
|
|
Gadget 0x44a0f8
|
|
Stack change: 0x1a411
|
|
Changed registers: x0 x29 x30
|
|
Register dependencies:
|
|
Var Read: x0
|
|
Var write: x0 Initial value: 0x16 New Value: 0xfffff5ca
|
|
|
|
Gadget 0x44bf40
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf44
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf48
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x44bf4c
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450520
|
|
Stack change: 0x520
|
|
Changed registers: x23 x24 x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450524
|
|
Stack change: 0x520
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x450528
|
|
Stack change: 0x520
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45052c
|
|
Stack change: 0x520
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451974
|
|
Stack change: 0x1d9e1
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451a08
|
|
Stack change: 0x1da11
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ff4
|
|
Stack change: 0x260
|
|
Changed registers: x21 x22 x23 x24 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ff8
|
|
Stack change: 0x260
|
|
Changed registers: x23 x24 x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x451ffc
|
|
Stack change: 0x260
|
|
Changed registers: x25 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x452000
|
|
Stack change: 0x260
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x452438
|
|
Stack change: 0x260
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x45243c
|
|
Stack change: 0x260
|
|
Changed registers: x29 x30 x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x452440
|
|
Stack change: 0x260
|
|
Changed registers: x0 sp
|
|
Register dependencies:
|
|
Var Read: x3
|
|
|
|
Gadget 0x452848
|
|
Stack change: 0x450
|
|
Changed registers: x25 x26 x27 x28 sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0xffffffffffffffff New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0xffffffffffffffff New Value: 0x0
|
|
|
|
Gadget 0x45284c
|
|
Stack change: 0x450
|
|
Changed registers: x27 x28 sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0x0 New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0x0 New Value: 0x0
|
|
|
|
Gadget 0x452850
|
|
Stack change: 0x450
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Memory Write: x0 Initial Value: 0x0 New Value: 0x0
|
|
Memory Write: x1 Initial Value: 0x0 New Value: 0x0
|
|
|
|
Gadget 0x452854
|
|
Stack change: 0x450
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538c0
|
|
Stack change: 0x6d0
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
Memory Write: x21 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
Memory Write: x19 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4538c4
|
|
Stack change: 0x6d0
|
|
Changed registers: x19 x20 x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538c8
|
|
Stack change: 0x6d0
|
|
Changed registers: x21 x22 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4538cc
|
|
Stack change: 0x6d0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b0c
|
|
Stack change: 0x6c0
|
|
Changed registers: x19 x20 x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b10
|
|
Stack change: 0x6c0
|
|
Changed registers: x21 x22 x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b14
|
|
Stack change: 0x6c0
|
|
Changed registers: x23 x24 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453b18
|
|
Stack change: 0x6c0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c44
|
|
Stack change: 0x6d0
|
|
Changed registers: x21 x22 x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c48
|
|
Stack change: 0x6d0
|
|
Changed registers: x23 x24 x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453c4c
|
|
Stack change: 0x6d0
|
|
Changed registers: x25 x26 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453d48
|
|
Stack change: 0x247a1
|
|
Changed registers: sp x29 x30 x0
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0x453ce8
|
|
Memory Read: x0 Value: 0x318
|
|
|
|
Gadget 0x453ec0
|
|
Stack change: 0xa70
|
|
Changed registers: x29 x30 x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ec4
|
|
Stack change: 0xa70
|
|
Changed registers: x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ec8
|
|
Stack change: 0xa70
|
|
Changed registers: x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ecc
|
|
Stack change: 0xa70
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x453ef4
|
|
Stack change: 0xa70
|
|
Changed registers: x0 x19 x20 x21 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45400c
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454010
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454014
|
|
Stack change: 0xebf
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454148
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x45414c
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454150
|
|
Stack change: 0x84f
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
Var Read: x4
|
|
|
|
Gadget 0x454450
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x454454
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x454458
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x45445c
|
|
Stack change: 0xae0
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4570d4
|
|
Stack change: 0x2fd5a
|
|
Changed registers: sp x29 x30
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4570d8
|
|
Stack change: 0x2fd5a
|
|
Changed registers: sp x29 x30
|
|
Register dependencies:
|
|
Memory Write: x30 Initial Value: 0xffffffffffffffff New Value: 0xffffffffffffffff
|
|
|
|
Gadget 0x4570dc
|
|
Stack change: 0x2fd7a
|
|
Changed registers: x29 x30 sp
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed gadget size (=4)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rl "=4"
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000900
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000934
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000c10
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
================================
|
|
0x00000900 4bbbd1e9 ldmib r1, {r0, r1, r3, r6, r8, sb, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000934 7bb9d1e9 ldmib r1, {r0, r1, r3, r4, r5, r6, r8, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000c08 0830002b blhs 0xcc30
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
================================
|
|
0x00000934 7bb9d1e9 ldmib r1, {r0, r1, r3, r4, r5, r6, r8, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000c08 0830002b blhs 0xcc30
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
================================
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 4
|
|
|
|
0x000010cc 204603b0 andlt r4, r3, r0, lsr 12
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed gadget size (<10)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rl "<10"
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000900
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000934
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000c0c
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc0c
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d8
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1120
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1894
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed8
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
================================
|
|
0x00000900 4bbbd1e9 ldmib r1, {r0, r1, r3, r6, r8, sb, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000934 7bb9d1e9 ldmib r1, {r0, r1, r3, r4, r5, r6, r8, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000c08 0830002b blhs 0xcc30
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
================================
|
|
0x00000934 7bb9d1e9 ldmib r1, {r0, r1, r3, r4, r5, r6, r8, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000c08 0830002b blhs 0xcc30
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
================================
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 4
|
|
|
|
0x000010cc 204603b0 andlt r4, r3, r0, lsr 12
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed gadget size (<=10)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rl "<=10"
|
|
echo "================================"
|
|
/R | grep -A 8 0x00000900
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010d8
|
|
echo "================================"
|
|
/R | grep -A 8 0x00001edc
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x900
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r6 r8 r9 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x4
|
|
|
|
Gadget 0x934
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r3 r4 r5 r6 r8 r11 r12 sp
|
|
Register dependencies:
|
|
Memory Read: r1 Value: 0x80007ab
|
|
|
|
Gadget 0xc0c
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0xc10
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d8
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1120
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1894
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed8
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1edc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
================================
|
|
0x00000900 4bbbd1e9 ldmib r1, {r0, r1, r3, r6, r8, sb, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000934 7bb9d1e9 ldmib r1, {r0, r1, r3, r4, r5, r6, r8, fp, ip, sp, pc} ^
|
|
Gadget size: 4
|
|
|
|
0x00000c08 0830002b blhs 0xcc30
|
|
0x00000c0c e7d10020 andhs sp, r0, r7, ror 3
|
|
0x00000c10 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
================================
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
0x00001118 01025a60 subsvs r0, sl, r1, lsl 4
|
|
0x0000111c 00f05efb blx 0x17bd126
|
|
0x00001120 08342046 strtmi r3, [r0], -r8, lsl 8
|
|
0x00001124 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
================================
|
|
0x00001edc 02b0bde8 pop {r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x00001ed0 b1f90c00 strheq pc, [ip], -r1
|
|
0x00001ed4 08b902b0 andlt fp, r2, r8, lsl 18
|
|
0x00001ed8 10bd2046 qadd16mi fp, r0, r0
|
|
0x00001edc 02b0bde8 pop {r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x00001ed4 08b902b0 andlt fp, r2, r8, lsl 18
|
|
0x00001ed8 10bd2046 qadd16mi fp, r0, r0
|
|
0x00001edc 02b0bde8 pop {r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x00001ed8 10bd2046 qadd16mi fp, r0, r0
|
|
0x00001edc 02b0bde8 pop {r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
0x00001edc 02b0bde8 pop {r1, ip, sp, pc}
|
|
Gadget size: 4
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed gadget size (>10)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rl ">10"
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010cc
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010d0
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010d4
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0xc08
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10cc
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d0
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1118
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x111c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x125c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1260
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1264
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1890
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ecc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed0
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed4
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
================================
|
|
0x000010cc 204603b0 andlt r4, r3, r0, lsr 12
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
================================
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
================================
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets given the detailed gadget size (>=10)
|
|
FILE=bins/arm/crackme.arm32.bin
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
/Rl ">=10"
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010cc
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010d0
|
|
echo "================================"
|
|
/R | grep -A 8 0x000010d4
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0xc08
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10cc
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d0
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x10d4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1118
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x111c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x125c
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1260
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1264
|
|
Stack change: 0x0
|
|
Changed registers: lr r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1890
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ecc
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed0
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x1ed4
|
|
Stack change: 0x0
|
|
Changed registers: r1 r12 sp
|
|
Register dependencies:
|
|
|
|
================================
|
|
0x000010cc 204603b0 andlt r4, r3, r0, lsr 12
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
================================
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
================================
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 20
|
|
|
|
0x000010d0 bde8f08f svchi 0xf0e8bd
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 16
|
|
|
|
0x000010d4 00240c23 movwhs r2, 0xc400
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 12
|
|
|
|
0x000010d8 20462b60 eorvs r4, fp, r0, lsr 12
|
|
0x000010dc 03b0bde8 pop {r0, r1, ip, sp, pc}
|
|
Gadget size: 8
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=/Rk constraint filtering
|
|
FILE=bins/elf/analysis/x86-helloworld-phdr
|
|
ARGS=-n
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=32
|
|
/Rk eax=1
|
|
/Rk ecx=0
|
|
/Rk eax=1,ecx=0
|
|
echo "Expected no results for eax=0"
|
|
/Rk eax=0
|
|
echo "Testing MOV_OP_CONST"
|
|
/Rk eax+=1
|
|
echo "Testing MOV_OP_REG"
|
|
/Rk eax=ebx+ecx
|
|
/Rk invalidconstraint
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
0x000000b7 0100 add dword [eax], eax
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 12
|
|
|
|
0x000000b9 0000 add byte [eax], al
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 10
|
|
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 8
|
|
|
|
0x000000b4 cd80 int 0x80
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 15
|
|
|
|
0x000000b6 b801000000 mov eax, 0x01
|
|
0x000000bb b900000000 mov ecx, 0x00
|
|
0x000000c0 cd80 int 0x80
|
|
0x000000c2 c3 ret
|
|
Gadget size: 13
|
|
|
|
Expected no results for eax=0
|
|
Testing MOV_OP_CONST
|
|
Testing MOV_OP_REG
|
|
EOF
|
|
RUN
|
|
|
|
NAME=/Rgl test
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
aaa
|
|
/Rgl
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Gadget 0x8048275 (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048275 6f outsd | Stack change: 0x4
|
|
0x08048276 6e outsb | Modified regs: edi esp
|
|
0x08048277 5f pop edi | Dependencies: esp esp
|
|
0x08048278 7374 jnb 0x80482ee |
|
|
0x0804827a 61 popad |
|
|
|
|
Gadget 0x8048276 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048276 6e outsb | Stack change: 0x4
|
|
0x08048277 5f pop edi | Modified regs: edi esp
|
|
0x08048278 7374 jnb 0x80482ee | Dependencies: esp esp
|
|
0x0804827a 61 popad |
|
|
|
|
Gadget 0x8048277 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048277 5f pop edi | Stack change: 0x4
|
|
0x08048278 7374 jnb 0x80482ee | Modified regs: edi esp
|
|
0x0804827a 61 popad | Dependencies: esp esp
|
|
|
|
Gadget 0x8048278 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048278 7374 jnb 0x80482ee | Stack change: 0x0
|
|
0x0804827a 61 popad | Modified regs:
|
|
|
|
Gadget 0x804827a (size 1 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804827a 61 popad | Stack change: 0x0
|
|
|
|
Gadget 0x8048292 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048292 7363 jnb 0x80482f7 | Stack change: 0x0
|
|
0x08048294 61 popad | Modified regs:
|
|
|
|
Gadget 0x80482b0 (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b0 62635f bound esp, qword [ebx+0x5f] | Stack change: 0x0
|
|
0x080482b3 7374 jnb 0x8048329 | Modified regs:
|
|
0x080482b5 61 popad | Dependencies: ebx esp ebx
|
|
|
|
Gadget 0x80482af (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482af 6962635f737461 imul esp, dword [edx+0x63], 0x6174735f | Stack change: 0x4
|
|
0x080482b6 7274 jb 0x804832c | Modified regs: esp edi
|
|
0x080482b8 5f pop edi | Dependencies: edx edx esp esp
|
|
0x080482b9 6d insd |
|
|
0x080482ba 61 popad |
|
|
|
|
Gadget 0x80482b4 (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b4 7461 jz 0x8048317 | Stack change: 0x4
|
|
0x080482b6 7274 jb 0x804832c | Modified regs: edi esp
|
|
0x080482b8 5f pop edi | Dependencies: esp esp
|
|
0x080482b9 6d insd |
|
|
0x080482ba 61 popad |
|
|
|
|
Gadget 0x80482b6 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b6 7274 jb 0x804832c | Stack change: 0x4
|
|
0x080482b8 5f pop edi | Modified regs: edi esp
|
|
0x080482b9 6d insd | Dependencies: esp esp
|
|
0x080482ba 61 popad |
|
|
|
|
Gadget 0x80482b7 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b7 745f jz 0x8048318 | Stack change: 0x0
|
|
0x080482b9 6d insd | Modified regs:
|
|
0x080482ba 61 popad | Dependencies:
|
|
|
|
Gadget 0x80482b8 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b8 5f pop edi | Stack change: 0x4
|
|
0x080482b9 6d insd | Modified regs: edi esp
|
|
0x080482ba 61 popad | Dependencies: esp esp
|
|
|
|
Gadget 0x80482b9 (size 2 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080482b9 6d insd | Stack change: 0x0
|
|
0x080482ba 61 popad | Modified regs:
|
|
|
|
Gadget 0x8048349 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048349 0100 add dword [eax], eax | Stack change: 0x0
|
|
0x0804834b 00e8 add al, ch | Modified regs: eax
|
|
0x0804834d cf iretd | Dependencies: eax eax eax eax ecx
|
|
|
|
Gadget 0x804834b (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804834b 00e8 add al, ch | Stack change: 0x0
|
|
0x0804834d cf iretd | Modified regs: eax
|
|
|
|
Gadget 0x804834d (size 1 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804834d cf iretd | Stack change: 0x0
|
|
|
|
Gadget 0x8048342 (size 17 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048342 e8ad000000 call 0x80483f4 | Stack change: 0x8
|
|
0x08048347 e804010000 call 0x8048450 | Modified regs: esp ebp
|
|
0x0804834c e8cf020000 call 0x8048620 | Dependencies: esp esp esp ebp esp esp esp esp
|
|
0x08048351 c9 leave |
|
|
0x08048352 c3 ret |
|
|
|
|
Gadget 0x8048345 (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048345 0000 add byte [eax], al | Stack change: 0x8
|
|
0x08048347 e804010000 call 0x8048450 | Modified regs: esp ebp
|
|
0x0804834c e8cf020000 call 0x8048620 | Dependencies: eax eax eax esp esp ebp esp esp esp esp
|
|
0x08048351 c9 leave |
|
|
0x08048352 c3 ret |
|
|
|
|
Gadget 0x8048347 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048347 e804010000 call 0x8048450 | Stack change: 0x8
|
|
0x0804834c e8cf020000 call 0x8048620 | Modified regs: esp ebp
|
|
0x08048351 c9 leave | Dependencies: esp esp ebp esp esp esp esp
|
|
0x08048352 c3 ret |
|
|
|
|
Gadget 0x8048348 (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048348 0401 add al, 0x01 | Stack change: 0x8
|
|
0x0804834a 0000 add byte [eax], al | Modified regs: eax esp ebp
|
|
0x0804834c e8cf020000 call 0x8048620 | Dependencies: eax eax eax eax esp ebp esp esp esp esp
|
|
0x08048351 c9 leave |
|
|
0x08048352 c3 ret |
|
|
|
|
Gadget 0x804834a (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804834a 0000 add byte [eax], al | Stack change: 0x8
|
|
0x0804834c e8cf020000 call 0x8048620 | Modified regs: esp ebp
|
|
0x08048351 c9 leave | Dependencies: eax eax eax esp ebp esp esp esp esp
|
|
0x08048352 c3 ret |
|
|
|
|
Gadget 0x804834c (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804834c e8cf020051 call 0x59048620 | Stack change: 0x0
|
|
0x08048351 83 invalid | Modified regs: esp eax
|
|
0x08048352 04 invalid | Dependencies: esp ecx eax ecx eax eax
|
|
|
|
Gadget 0x80483fa (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080483fa 0000 add byte [eax], al | Stack change: 0x4
|
|
0x080483fc 005b81 add byte [ebx-0x7f], bl | Modified regs: esp
|
|
0x080483ff c3 ret | Dependencies: eax eax eax ebx ebx ebx esp esp
|
|
|
|
Gadget 0x80483fc (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080483fc 005b81 add byte [ebx-0x7f], bl | Stack change: 0x4
|
|
0x080483ff c3 ret | Modified regs: esp
|
|
|
|
Gadget 0x804840a (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804840a ff85c07402ff inc dword [ebp-0xfd8b40] | Stack change: 0x8
|
|
0x08048410 d0585b rcr byte [eax+0x5b], 0x01 | Modified regs: esp ebp
|
|
0x08048413 c9 leave | Dependencies: ebp ebp eax eax ebp esp esp esp esp
|
|
0x08048414 c3 ret |
|
|
|
|
Gadget 0x804840c (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804840c c07402ffd0 shl byte [edx+eax*1-0x01], 0xd0 | Stack change: 0x10
|
|
0x08048411 58 pop eax | Modified regs: eax esp ebx ebp
|
|
0x08048412 5b pop ebx | Dependencies: eax edx eax edx esp esp esp esp ebp esp esp esp esp
|
|
0x08048413 c9 leave |
|
|
0x08048414 c3 ret |
|
|
|
|
Gadget 0x804840e (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804840e 02ff add bh, bh | Stack change: 0x8
|
|
0x08048410 d0585b rcr byte [eax+0x5b], 0x01 | Modified regs: ebx esp ebp
|
|
0x08048413 c9 leave | Dependencies: ebx eax eax ebp esp esp esp esp
|
|
0x08048414 c3 ret |
|
|
|
|
Gadget 0x804840f (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804840f ffd0 call eax | Stack change: 0x10
|
|
0x08048411 58 pop eax | Modified regs: esp eax ebx ebp
|
|
0x08048412 5b pop ebx | Dependencies: esp esp esp esp esp ebp esp esp esp esp
|
|
0x08048413 c9 leave |
|
|
0x08048414 c3 ret |
|
|
|
|
Gadget 0x8048410 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048410 d0585b rcr byte [eax+0x5b], 0x01 | Stack change: 0x8
|
|
0x08048413 c9 leave | Modified regs: esp ebp
|
|
0x08048414 c3 ret | Dependencies: eax eax ebp esp esp esp esp
|
|
|
|
Gadget 0x8048411 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048411 58 pop eax | Stack change: 0x10
|
|
0x08048412 5b pop ebx | Modified regs: eax esp ebx ebp
|
|
0x08048413 c9 leave | Dependencies: esp esp esp esp ebp esp esp esp esp
|
|
0x08048414 c3 ret |
|
|
|
|
Gadget 0x8048412 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048412 5b pop ebx | Stack change: 0xc
|
|
0x08048413 c9 leave | Modified regs: ebx esp ebp
|
|
0x08048414 c3 ret | Dependencies: esp esp ebp esp esp esp esp
|
|
|
|
Gadget 0x804843f (size 16 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804843f 088b1085d275 or byte [ebx+0x75d28510], cl | Stack change: 0x4
|
|
0x08048445 ebc6 jmp 0x804840d | Modified regs: eax ecx esp
|
|
0x08048447 0524a00408 add eax, 0x804a024 | Dependencies: ebx ebx ecx eax ecx esp esp
|
|
0x0804844c 01c9 add ecx, ecx |
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048441 (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048441 1085d275ebc6 adc byte [ebp-0x39148a2e], al | Stack change: 0x4
|
|
0x08048447 0524a00408 add eax, 0x804a024 | Modified regs: eax ecx esp
|
|
0x0804844c 01c9 add ecx, ecx | Dependencies: ebp ebp eax eax ecx esp esp
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048442 (size 13 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048442 85d2 test edx, edx | Stack change: 0x8
|
|
0x08048444 75eb jnz 0x8048431 | Modified regs: esp ebp
|
|
0x08048446 c60524a0040801 mov byte [0x804a024], 0x01 | Dependencies: ebp esp esp esp esp
|
|
0x0804844d c9 leave |
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048443 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048443 d275eb shl byte [ebp-0x15], cl | Stack change: 0x8
|
|
0x08048446 c60524a0040801 mov byte [0x804a024], 0x01 | Modified regs: esp ebp
|
|
0x0804844d c9 leave | Dependencies: ebp ebp ecx ebp esp esp esp esp
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048444 (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048444 75eb jnz 0x8048431 | Stack change: 0x8
|
|
0x08048446 c60524a0040801 mov byte [0x804a024], 0x01 | Modified regs: esp ebp
|
|
0x0804844d c9 leave | Dependencies: ebp esp esp esp esp
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048445 (size 10 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048445 ebc6 jmp 0x804840d | Stack change: 0x4
|
|
0x08048447 0524a00408 add eax, 0x804a024 | Modified regs: eax ecx esp
|
|
0x0804844c 01c9 add ecx, ecx | Dependencies: eax ecx esp esp
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048446 (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048446 c60524a0040801 mov byte [0x804a024], 0x01 | Stack change: 0x8
|
|
0x0804844d c9 leave | Modified regs: esp ebp
|
|
0x0804844e c3 ret | Dependencies: ebp esp esp esp esp
|
|
|
|
Gadget 0x8048447 (size 8 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048447 0524a00408 add eax, 0x804a024 | Stack change: 0x4
|
|
0x0804844c 01c9 add ecx, ecx | Modified regs: eax ecx esp
|
|
0x0804844e c3 ret | Dependencies: eax ecx esp esp
|
|
|
|
Gadget 0x8048448 (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048448 24a0 and al, 0xa0 | Stack change: 0x4
|
|
0x0804844a 0408 add al, 0x08 | Modified regs: eax ecx esp
|
|
0x0804844c 01c9 add ecx, ecx | Dependencies: eax eax eax ecx esp esp
|
|
0x0804844e c3 ret |
|
|
|
|
Gadget 0x8048449 (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048449 a0040801c9 mov al, byte [0xc9010804] | Stack change: 0x4
|
|
0x0804844e c3 ret | Modified regs: eax esp
|
|
|
|
Gadget 0x804844a (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804844a 0408 add al, 0x08 | Stack change: 0x4
|
|
0x0804844c 01c9 add ecx, ecx | Modified regs: eax ecx esp
|
|
0x0804844e c3 ret | Dependencies: eax ecx esp esp
|
|
|
|
Gadget 0x804844b (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804844b 0801 or byte [ecx], al | Stack change: 0x8
|
|
0x0804844d c9 leave | Modified regs: esp ebp
|
|
0x0804844e c3 ret | Dependencies: ecx ecx eax ebp esp esp esp esp
|
|
|
|
Gadget 0x804844c (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804844c 01c9 add ecx, ecx | Stack change: 0x4
|
|
0x0804844e c3 ret | Modified regs: ecx esp
|
|
|
|
Gadget 0x804846f (size 19 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804846f e88c7bfbf7 call 0x0 | Stack change: 0x8
|
|
0x08048474 8db600000000 lea esi, dword [esi] | Modified regs: esp esi edi ebp
|
|
0x0804847a 8dbf00000000 lea edi, dword [edi] | Dependencies: esp esi edi ebp esp esp esp esp
|
|
0x08048480 c9 leave |
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048471 (size 17 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048471 7bfb jnp 0x804846e | Stack change: 0x4
|
|
0x08048473 f78db6000000008dbf00 test dword [ebp+0xb6], 0xbf8d00 | Modified regs: ecx esp
|
|
0x0804847d 0000 add byte [eax], al | Dependencies: ebp eax eax eax ecx esp esp
|
|
0x0804847f 00c9 add cl, cl |
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048472 (size 16 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048472 fb sti | Stack change: 0x4
|
|
0x08048473 f78db6000000008dbf00 test dword [ebp+0xb6], 0xbf8d00 | Modified regs: ecx esp
|
|
0x0804847d 0000 add byte [eax], al | Dependencies: ebp eax eax eax ecx esp esp
|
|
0x0804847f 00c9 add cl, cl |
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048473 (size 15 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048473 f78db6000000008dbf00 test dword [ebp+0xb6], 0xbf8d00 | Stack change: 0x4
|
|
0x0804847d 0000 add byte [eax], al | Modified regs: ecx esp
|
|
0x0804847f 00c9 add cl, cl | Dependencies: ebp eax eax eax ecx esp esp
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048474 (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048474 8db600000000 lea esi, dword [esi] | Stack change: 0x8
|
|
0x0804847a 8dbf00000000 lea edi, dword [edi] | Modified regs: esi edi esp ebp
|
|
0x08048480 c9 leave | Dependencies: esi edi ebp esp esp esp esp
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048475 (size 13 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048475 b600 mov dh, 0x00 | Stack change: 0x4
|
|
0x08048477 0000 add byte [eax], al | Modified regs: edx ecx esp
|
|
0x08048479 008dbf000000 add byte [ebp+0xbf], cl | Dependencies: edx eax eax eax ebp ebp ecx ecx esp esp
|
|
0x0804847f 00c9 add cl, cl |
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048476 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048476 0000 add byte [eax], al | Stack change: 0x8
|
|
0x08048478 0000 add byte [eax], al | Modified regs: edi esp ebp
|
|
0x0804847a 8dbf00000000 lea edi, dword [edi] | Dependencies: eax eax eax eax eax eax edi ebp esp esp esp esp
|
|
0x08048480 c9 leave |
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048477 (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048477 0000 add byte [eax], al | Stack change: 0x4
|
|
0x08048479 008dbf000000 add byte [ebp+0xbf], cl | Modified regs: ecx esp
|
|
0x0804847f 00c9 add cl, cl | Dependencies: eax eax eax ebp ebp ecx ecx esp esp
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048478 (size 10 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048478 0000 add byte [eax], al | Stack change: 0x8
|
|
0x0804847a 8dbf00000000 lea edi, dword [edi] | Modified regs: edi esp ebp
|
|
0x08048480 c9 leave | Dependencies: eax eax eax edi ebp esp esp esp esp
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x8048479 (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048479 008dbf000000 add byte [ebp+0xbf], cl | Stack change: 0x4
|
|
0x0804847f 00c9 add cl, cl | Modified regs: ecx esp
|
|
0x08048481 c3 ret | Dependencies: ebp ebp ecx ecx esp esp
|
|
|
|
Gadget 0x804847a (size 8 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804847a 8dbf00000000 lea edi, dword [edi] | Stack change: 0x8
|
|
0x08048480 c9 leave | Modified regs: edi esp ebp
|
|
0x08048481 c3 ret | Dependencies: edi ebp esp esp esp esp
|
|
|
|
Gadget 0x804847b (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804847b bf00000000 mov edi, 0x00 | Stack change: 0x8
|
|
0x08048480 c9 leave | Modified regs: edi esp ebp
|
|
0x08048481 c3 ret | Dependencies: ebp esp esp esp esp
|
|
|
|
Gadget 0x804847c (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804847c 0000 add byte [eax], al | Stack change: 0x8
|
|
0x0804847e 0000 add byte [eax], al | Modified regs: esp ebp
|
|
0x08048480 c9 leave | Dependencies: eax eax eax eax eax eax ebp esp esp esp esp
|
|
0x08048481 c3 ret |
|
|
|
|
Gadget 0x804847d (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804847d 0000 add byte [eax], al | Stack change: 0x4
|
|
0x0804847f 00c9 add cl, cl | Modified regs: ecx esp
|
|
0x08048481 c3 ret | Dependencies: eax eax eax ecx esp esp
|
|
|
|
Gadget 0x80484b5 (size 19 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484b5 e8dafeffff call 0x8048394 | Stack change: 0x8
|
|
0x080484ba c7042400000000 mov dword [esp], 0x00 | Modified regs: esp ebp
|
|
0x080484c1 e8eefeffff call 0x80483b4 | Dependencies: esp esp esp ebp esp esp esp esp
|
|
0x080484c6 c9 leave |
|
|
0x080484c7 c3 ret |
|
|
|
|
Gadget 0x80484ba (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484ba c7042400000000 mov dword [esp], 0x00 | Stack change: 0x8
|
|
0x080484c1 e8eefeffff call 0x80483b4 | Modified regs: esp ebp
|
|
0x080484c6 c9 leave | Dependencies: esp esp ebp esp esp esp esp
|
|
0x080484c7 c3 ret |
|
|
|
|
Gadget 0x80484bd (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484bd 0000 add byte [eax], al | Stack change: 0x8
|
|
0x080484bf 0000 add byte [eax], al | Modified regs: esp ebp
|
|
0x080484c1 e8eefeffff call 0x80483b4 | Dependencies: eax eax eax eax eax eax esp ebp esp esp esp esp
|
|
0x080484c6 c9 leave |
|
|
0x080484c7 c3 ret |
|
|
|
|
Gadget 0x80484bf (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484bf 0000 add byte [eax], al | Stack change: 0x8
|
|
0x080484c1 e8eefeffff call 0x80483b4 | Modified regs: esp ebp
|
|
0x080484c6 c9 leave | Dependencies: eax eax eax esp ebp esp esp esp esp
|
|
0x080484c7 c3 ret |
|
|
|
|
Gadget 0x80484c1 (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484c1 e8eefeffff call 0x80483b4 | Stack change: 0x8
|
|
0x080484c6 c9 leave | Modified regs: esp ebp
|
|
0x080484c7 c3 ret | Dependencies: esp ebp esp esp esp esp
|
|
|
|
Gadget 0x80484c5 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080484c5 ffc9 dec ecx | Stack change: 0x4
|
|
0x080484c7 c3 ret | Modified regs: ecx esp
|
|
|
|
Gadget 0x8048530 (size 16 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048530 ebaa jmp 0x80484dc | Stack change: 0x8
|
|
0x08048532 c7042479860408 mov dword [esp], 0x8048679 | Modified regs: esp ebp
|
|
0x08048539 e856feffff call 0x8048394 | Dependencies: esp esp ebp esp esp esp esp
|
|
0x0804853e c9 leave |
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048531 (size 15 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048531 aa stosb | Stack change: 0x8
|
|
0x08048532 c7042479860408 mov dword [esp], 0x8048679 | Modified regs: edi esp ebp
|
|
0x08048539 e856feffff call 0x8048394 | Dependencies: eax edi edi esp esp ebp esp esp esp esp
|
|
0x0804853e c9 leave |
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048532 (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048532 c7042479860408 mov dword [esp], 0x8048679 | Stack change: 0x8
|
|
0x08048539 e856feffff call 0x8048394 | Modified regs: esp ebp
|
|
0x0804853e c9 leave | Dependencies: esp esp ebp esp esp esp esp
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048534 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048534 2479 and al, 0x79 | Stack change: 0x8
|
|
0x08048536 860408 xchg byte [eax+ecx*1], al | Modified regs: eax esp ebp
|
|
0x08048539 e856feffff call 0x8048394 | Dependencies: eax ecx eax eax ecx eax eax esp ebp esp esp esp esp
|
|
0x0804853e c9 leave |
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048535 (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048535 7986 jns 0x80484bd | Stack change: 0x8
|
|
0x08048537 0408 add al, 0x08 | Modified regs: eax esp ebp
|
|
0x08048539 e856feffff call 0x8048394 | Dependencies: eax esp ebp esp esp esp esp
|
|
0x0804853e c9 leave |
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048536 (size 10 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048536 860408 xchg byte [eax+ecx*1], al | Stack change: 0x8
|
|
0x08048539 e856feffff call 0x8048394 | Modified regs: eax esp ebp
|
|
0x0804853e c9 leave | Dependencies: ecx eax eax ecx eax eax esp ebp esp esp esp esp
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048537 (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048537 0408 add al, 0x08 | Stack change: 0x8
|
|
0x08048539 e856feffff call 0x8048394 | Modified regs: eax esp ebp
|
|
0x0804853e c9 leave | Dependencies: eax esp ebp esp esp esp esp
|
|
0x0804853f c3 ret |
|
|
|
|
Gadget 0x8048539 (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048539 e856feffff call 0x8048394 | Stack change: 0x8
|
|
0x0804853e c9 leave | Modified regs: esp ebp
|
|
0x0804853f c3 ret | Dependencies: esp ebp esp esp esp esp
|
|
|
|
Gadget 0x804858d (size 15 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804858d 890424 mov dword [esp], eax | Stack change: 0x8
|
|
0x08048590 e833ffffff call 0x80484c8 | Modified regs: esp eax ebp
|
|
0x08048595 b800000000 mov eax, 0x00 | Dependencies: eax esp esp ebp esp esp esp esp
|
|
0x0804859a c9 leave |
|
|
0x0804859b c3 ret |
|
|
|
|
Gadget 0x804858e (size 14 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804858e 0424 add al, 0x24 | Stack change: 0x8
|
|
0x08048590 e833ffffff call 0x80484c8 | Modified regs: eax esp ebp
|
|
0x08048595 b800000000 mov eax, 0x00 | Dependencies: eax esp ebp esp esp esp esp
|
|
0x0804859a c9 leave |
|
|
0x0804859b c3 ret |
|
|
|
|
Gadget 0x8048590 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048590 e833ffffff call 0x80484c8 | Stack change: 0x0
|
|
0x08048595 b800000095 mov eax, 0x95000000 | Modified regs: esp eax
|
|
0x0804859a 85 invalid | Dependencies: esp ecx eax eax eax
|
|
0x0804859b 04 invalid |
|
|
|
|
Gadget 0x80485a6 (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485a6 f653e8 not byte [ebx-0x18] | Stack change: 0x4
|
|
0x080485a9 6800000081 push 0x81000000 | Modified regs: esp
|
|
0x080485ae c3 ret | Dependencies: ebx ebx esp esp esp
|
|
|
|
Gadget 0x80485a9 (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485a9 6800000081 push 0x81000000 | Stack change: 0x4
|
|
0x080485ae c3 ret | Modified regs: esp
|
|
|
|
Gadget 0x80485fa (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485fa da83c41c5b5e fiadd dword [ebx+0x5e5b1cc4] | Stack change: 0xc
|
|
0x08048600 5f pop edi | Modified regs: edi esp ebp
|
|
0x08048601 c9 leave | Dependencies: esp esp ebp esp esp esp esp
|
|
0x08048602 c3 ret |
|
|
|
|
Gadget 0x80485fc (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485fc c41c5b les ebx, fword [ebx+ebx*2] | Stack change: 0x10
|
|
0x080485ff 5e pop esi | Modified regs: ebx esi esp edi ebp
|
|
0x08048600 5f pop edi | Dependencies: ebx esp esp esp esp ebp esp esp esp esp
|
|
0x08048601 c9 leave |
|
|
0x08048602 c3 ret |
|
|
|
|
Gadget 0x80485fd (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485fd 1c5b sbb al, 0x5b | Stack change: 0x10
|
|
0x080485ff 5e pop esi | Modified regs: eax esi esp edi ebp
|
|
0x08048600 5f pop edi | Dependencies: eax esp esp esp esp ebp esp esp esp esp
|
|
0x08048601 c9 leave |
|
|
0x08048602 c3 ret |
|
|
|
|
Gadget 0x80485fe (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485fe 5b pop ebx | Stack change: 0x14
|
|
0x080485ff 5e pop esi | Modified regs: ebx esp esi edi ebp
|
|
0x08048600 5f pop edi | Dependencies: esp esp esp esp esp esp ebp esp esp esp esp
|
|
0x08048601 c9 leave |
|
|
0x08048602 c3 ret |
|
|
|
|
Gadget 0x80485ff (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x080485ff 5e pop esi | Stack change: 0x10
|
|
0x08048600 5f pop edi | Modified regs: esi esp edi ebp
|
|
0x08048601 c9 leave | Dependencies: esp esp esp esp ebp esp esp esp esp
|
|
0x08048602 c3 ret |
|
|
|
|
Gadget 0x8048600 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048600 5f pop edi | Stack change: 0xc
|
|
0x08048601 c9 leave | Modified regs: edi esp ebp
|
|
0x08048602 c3 ret | Dependencies: esp esp ebp esp esp esp esp
|
|
|
|
Gadget 0x8048609 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048609 8dbc2700000000 lea edi, dword [edi] | Stack change: 0xc
|
|
0x08048610 55 push ebp | Modified regs: edi esp ebp
|
|
0x08048611 89e5 mov ebp, esp | Dependencies: edi ebp esp esp ebp esp esp esp esp
|
|
0x08048613 c9 leave |
|
|
0x08048614 c3 ret |
|
|
|
|
Gadget 0x804860a (size 11 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804860a bc27000000 mov esp, 0x27 | Stack change: 0x4
|
|
0x0804860f 005589 add byte [ebp-0x77], dl | Modified regs: esp
|
|
0x08048612 e5c9 in eax, 0xc9 | Dependencies: ebp ebp edx esp esp
|
|
0x08048614 c3 ret |
|
|
|
|
Gadget 0x804860d (size 8 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804860d 0000 add byte [eax], al | Stack change: 0x4
|
|
0x0804860f 005589 add byte [ebp-0x77], dl | Modified regs: esp
|
|
0x08048612 e5c9 in eax, 0xc9 | Dependencies: eax eax eax ebp ebp edx esp esp
|
|
0x08048614 c3 ret |
|
|
|
|
Gadget 0x804860e (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804860e 0000 add byte [eax], al | Stack change: 0xaa6f6fa3
|
|
0x08048610 55 push ebp | Modified regs: esp ebp
|
|
0x08048611 89e5 mov ebp, esp | Dependencies: eax eax eax ebp esp esp ebp esp esp esp esp
|
|
0x08048613 c9 leave |
|
|
0x08048614 c3 ret |
|
|
|
|
Gadget 0x804860f (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804860f 005589 add byte [ebp-0x77], dl | Stack change: 0x4
|
|
0x08048612 e5c9 in eax, 0xc9 | Modified regs: esp
|
|
0x08048614 c3 ret | Dependencies: ebp ebp edx esp esp
|
|
|
|
Gadget 0x8048610 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048610 55 push ebp | Stack change: 0x3c
|
|
0x08048611 89e5 mov ebp, esp | Modified regs: esp ebp
|
|
0x08048613 c9 leave | Dependencies: ebp esp esp ebp esp esp esp esp
|
|
0x08048614 c3 ret |
|
|
|
|
Gadget 0x8048611 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048611 89e5 mov ebp, esp | Stack change: 0x44
|
|
0x08048613 c9 leave | Modified regs: ebp esp
|
|
0x08048614 c3 ret | Dependencies: esp ebp esp esp esp esp
|
|
|
|
Gadget 0x8048612 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048612 e5c9 in eax, 0xc9 | Stack change: 0x4
|
|
0x08048614 c3 ret | Modified regs: esp
|
|
|
|
Gadget 0x8048615 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048615 8b1c24 mov ebx, dword [esp] | Stack change: 0x4
|
|
0x08048618 c3 ret | Modified regs: ebx esp
|
|
|
|
Gadget 0x8048616 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048616 1c24 sbb al, 0x24 | Stack change: 0x4
|
|
0x08048618 c3 ret | Modified regs: eax esp
|
|
|
|
Gadget 0x8048639 (size 10 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048639 0383f8ff75f4 add eax, dword [ebx-0xb8a0008] | Stack change: 0x10
|
|
0x0804863f 58 pop eax | Modified regs: eax esp ebx ebp
|
|
0x08048640 5b pop ebx | Dependencies: ebx eax esp esp esp esp esp esp esp esp
|
|
0x08048641 5d pop ebp |
|
|
0x08048642 c3 ret |
|
|
|
|
Gadget 0x804863c (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804863c ff75f4 push dword [ebp-0x0c] | Stack change: 0x10
|
|
0x0804863f 58 pop eax | Modified regs: esp eax ebx ebp
|
|
0x08048640 5b pop ebx | Dependencies: ebp esp esp esp esp esp esp esp esp esp
|
|
0x08048641 5d pop ebp |
|
|
0x08048642 c3 ret |
|
|
|
|
Gadget 0x804863d (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804863d 75f4 jnz 0x8048633 | Stack change: 0x10
|
|
0x0804863f 58 pop eax | Modified regs: eax esp ebx ebp
|
|
0x08048640 5b pop ebx | Dependencies: esp esp esp esp esp esp esp esp
|
|
0x08048641 5d pop ebp |
|
|
0x08048642 c3 ret |
|
|
|
|
Gadget 0x804863e (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804863e f4 hlt | Stack change: 0x10
|
|
0x0804863f 58 pop eax | Modified regs: eax esp ebx ebp
|
|
0x08048640 5b pop ebx | Dependencies: esp esp esp esp esp esp esp esp
|
|
0x08048641 5d pop ebp |
|
|
0x08048642 c3 ret |
|
|
|
|
Gadget 0x804863f (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804863f 58 pop eax | Stack change: 0x10
|
|
0x08048640 5b pop ebx | Modified regs: eax esp ebx ebp
|
|
0x08048641 5d pop ebp | Dependencies: esp esp esp esp esp esp esp esp
|
|
0x08048642 c3 ret |
|
|
|
|
Gadget 0x8048640 (size 3 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048640 5b pop ebx | Stack change: 0xc
|
|
0x08048641 5d pop ebp | Modified regs: ebx esp ebp
|
|
0x08048642 c3 ret | Dependencies: esp esp esp esp esp esp
|
|
|
|
Gadget 0x8048641 (size 2 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048641 5d pop ebp | Stack change: 0x8
|
|
0x08048642 c3 ret | Modified regs: ebp esp
|
|
|
|
Gadget 0x8048655 (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048655 e8c6fdffff call 0x8048420 | Stack change: 0x10
|
|
0x0804865a 59 pop ecx | Modified regs: esp ecx ebx ebp
|
|
0x0804865b 5b pop ebx | Dependencies: esp esp esp esp esp ebp esp esp esp esp
|
|
0x0804865c c9 leave |
|
|
0x0804865d c3 ret |
|
|
|
|
Gadget 0x8048659 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048659 ff595b call far fword [ecx+0x5b] | Stack change: 0x8
|
|
0x0804865c c9 leave | Modified regs: esp ebp
|
|
0x0804865d c3 ret | Dependencies: esp ecx ebp esp esp esp esp
|
|
|
|
Gadget 0x804865a (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804865a 59 pop ecx | Stack change: 0x10
|
|
0x0804865b 5b pop ebx | Modified regs: ecx esp ebx ebp
|
|
0x0804865c c9 leave | Dependencies: esp esp esp esp ebp esp esp esp esp
|
|
0x0804865d c3 ret |
|
|
|
|
Gadget 0x804866b (size 2 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804866b 50 push eax | Stack change: 0x0
|
|
0x0804866c 61 popad | Modified regs: esp
|
|
|
|
Gadget 0x8048677 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048677 0a00 or al, byte [eax] | Stack change: 0x0
|
|
0x08048679 50 push eax | Modified regs: eax esp
|
|
0x0804867a 61 popad | Dependencies: eax eax eax eax esp
|
|
|
|
Gadget 0x804868d (size 9 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804868d 00494f add byte [ecx+0x4f], cl | Stack change: 0xffffffff
|
|
0x08048690 4c dec esp | Modified regs: esp ecx
|
|
0x08048691 49 dec ecx | Dependencies: ecx ecx ecx esp ecx ebx ebx eax
|
|
0x08048692 204372 and byte [ebx+0x72], al |
|
|
0x08048695 61 popad |
|
|
|
|
Gadget 0x804868f (size 7 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0804868f 4f dec edi | Stack change: 0xffffffff
|
|
0x08048690 4c dec esp | Modified regs: edi esp ecx
|
|
0x08048691 49 dec ecx | Dependencies: edi esp ecx ebx ebx eax
|
|
0x08048692 204372 and byte [ebx+0x72], al |
|
|
0x08048695 61 popad |
|
|
|
|
Gadget 0x8048690 (size 6 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048690 4c dec esp | Stack change: 0xffffffff
|
|
0x08048691 49 dec ecx | Modified regs: esp ecx
|
|
0x08048692 204372 and byte [ebx+0x72], al | Dependencies: esp ecx ebx ebx eax
|
|
0x08048695 61 popad |
|
|
|
|
Gadget 0x8048691 (size 5 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048691 49 dec ecx | Stack change: 0x0
|
|
0x08048692 204372 and byte [ebx+0x72], al | Modified regs: ecx
|
|
0x08048695 61 popad | Dependencies: ecx ebx ebx eax
|
|
|
|
Gadget 0x8048692 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x08048692 204372 and byte [ebx+0x72], al | Stack change: 0x0
|
|
0x08048695 61 popad | Modified regs:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=subchains test
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=64
|
|
wa "pop r12; pop r13; pop r14; pop r15; ret"
|
|
e gadget.subchains=false
|
|
/Rq
|
|
echo "===================================================="
|
|
e gadget.subchains=true
|
|
/Rq
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000: pop r12; pop r13; pop r14; pop r15; ret;
|
|
0x00000001: pop rsp; pop r13; pop r14; pop r15; ret;
|
|
0x00000002: pop r13; pop r14; pop r15; ret;
|
|
0x00000003: pop rbp; pop r14; pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000005: pop rsi; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000007: pop rdi; ret;
|
|
0x00000008: ret;
|
|
====================================================
|
|
0x00000000: pop r12; pop r13; pop r14; pop r15; ret;
|
|
0x00000002: pop r13; pop r14; pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000001: pop rsp; pop r13; pop r14; pop r15; ret;
|
|
0x00000002: pop r13; pop r14; pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000002: pop r13; pop r14; pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000003: pop rbp; pop r14; pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000004: pop r14; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000005: pop rsi; pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000006: pop r15; ret;
|
|
0x00000007: pop rdi; ret;
|
|
0x00000008: ret;
|
|
EOF
|
|
RUN
|
|
|
|
NAME=search rop gadgets with comments
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.arch=x86
|
|
e asm.bits=64
|
|
wa "pop r12; ret"
|
|
CC Rizin is Cool! @ 0
|
|
CC Its elegant! @ 2
|
|
/R
|
|
echo "========================================================="
|
|
e gadget.comments=true
|
|
/R
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000000 415c pop r12
|
|
0x00000002 c3 ret
|
|
Gadget size: 3
|
|
|
|
0x00000001 5c pop rsp
|
|
0x00000002 c3 ret
|
|
Gadget size: 2
|
|
|
|
0x00000002 c3 ret
|
|
Gadget size: 1
|
|
|
|
=========================================================
|
|
0x00000000 415c pop r12 ; Rizin is Cool!
|
|
0x00000002 c3 ret ; Its elegant!
|
|
Gadget size: 3
|
|
|
|
0x00000001 5c pop rsp
|
|
0x00000002 c3 ret ; Its elegant!
|
|
Gadget size: 2
|
|
|
|
0x00000002 c3 ret ; Its elegant!
|
|
Gadget size: 1
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME= search rop with conditional terminator
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.arch=arm
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wx 04e02de50000a0e10110a0e10080bd081eff2fe10220a0e100f020e3
|
|
pi 1
|
|
echo =========Without allow_conditional==============
|
|
/R
|
|
echo ===========With allow_conditional===============
|
|
e gadget.conditional=true
|
|
echo ======================/R========================
|
|
/R
|
|
echo ======================/Rq=======================
|
|
/Rq
|
|
echo ======================/Rg=======================
|
|
/Rg
|
|
echo ======================/Rt=======================
|
|
/Rt
|
|
echo ======================/Rj=======================
|
|
/Rj
|
|
echo ======================/Rgl======================
|
|
/Rgl
|
|
EOF
|
|
EXPECT=<<EOF
|
|
str lr, [sp, -4]!
|
|
=========Without allow_conditional==============
|
|
0x00000000 04e02de5 str lr, [sp, -4]!
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 20
|
|
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 16
|
|
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 12
|
|
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 8
|
|
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 4
|
|
|
|
===========With allow_conditional===============
|
|
======================/R========================
|
|
0x00000000 04e02de5 str lr, [sp, -4]!
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
Gadget size: 16 [Conditional]
|
|
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
Gadget size: 12 [Conditional]
|
|
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
Gadget size: 8 [Conditional]
|
|
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
Gadget size: 4 [Conditional]
|
|
|
|
0x00000000 04e02de5 str lr, [sp, -4]!
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 20
|
|
|
|
0x00000004 0000a0e1 mov r0, r0
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 16
|
|
|
|
0x00000008 0110a0e1 mov r1, r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 12
|
|
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc}
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 8
|
|
|
|
0x00000010 1eff2fe1 bx lr
|
|
Gadget size: 4
|
|
|
|
======================/Rq=======================
|
|
0x00000000: str lr, [sp, -4]!; mov r0, r0; mov r1, r1; ldmeq sp!, {pc}; [Conditional]
|
|
0x00000004: mov r0, r0; mov r1, r1; ldmeq sp!, {pc}; [Conditional]
|
|
0x00000008: mov r1, r1; ldmeq sp!, {pc}; [Conditional]
|
|
0x0000000c: ldmeq sp!, {pc}; [Conditional]
|
|
0x00000000: str lr, [sp, -4]!; mov r0, r0; mov r1, r1; ldmeq sp!, {pc}; bx lr;
|
|
0x00000004: mov r0, r0; mov r1, r1; ldmeq sp!, {pc}; bx lr;
|
|
0x00000008: mov r1, r1; ldmeq sp!, {pc}; bx lr;
|
|
0x0000000c: ldmeq sp!, {pc}; bx lr;
|
|
0x00000010: bx lr;
|
|
======================/Rg=======================
|
|
Gadget 0x0 [Conditional]
|
|
Stack change: 0xfffffffc
|
|
Changed registers: sp r0 r1
|
|
Register dependencies:
|
|
Memory Write: lr Initial Value: 0xffffffff New Value: 0x0
|
|
Var Read: r0
|
|
Var Read: r1
|
|
|
|
Gadget 0x4 [Conditional]
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1
|
|
Register dependencies:
|
|
Var Read: r0
|
|
Var Read: r1
|
|
|
|
Gadget 0x8 [Conditional]
|
|
Stack change: 0x0
|
|
Changed registers: r1
|
|
Register dependencies:
|
|
Var Read: r1
|
|
|
|
Gadget 0xc [Conditional]
|
|
Stack change: 0x0
|
|
Changed registers:
|
|
Register dependencies:
|
|
|
|
Gadget 0x0
|
|
Stack change: 0xfffffffc
|
|
Changed registers: sp r0 r1
|
|
Register dependencies:
|
|
Memory Write: lr Initial Value: 0xffffffff New Value: 0x0
|
|
Var Read: r0
|
|
Var Read: r1
|
|
|
|
Gadget 0x4
|
|
Stack change: 0x0
|
|
Changed registers: r0 r1
|
|
Register dependencies:
|
|
Var Read: r0
|
|
Var Read: r1
|
|
|
|
Gadget 0x8
|
|
Stack change: 0x0
|
|
Changed registers: r1
|
|
Register dependencies:
|
|
Var Read: r1
|
|
|
|
Gadget 0xc
|
|
Stack change: 0x0
|
|
Changed registers:
|
|
Register dependencies:
|
|
|
|
Gadget 0x10
|
|
Stack change: 0x0
|
|
Changed registers:
|
|
Register dependencies:
|
|
|
|
======================/Rt=======================
|
|
addr bytes disasm
|
|
-------------------------------------------------------------------------------------------------------------------------------------
|
|
0x00000000 04e02de50000a0e10110a0e10080bd08 [Conditional] str lr, [sp, -4]!; ; mov r0, r0; ; mov r1, r1; ; ldmeq sp!, {pc};
|
|
0x00000004 0000a0e10110a0e10080bd08 [Conditional] mov r0, r0; ; mov r1, r1; ; ldmeq sp!, {pc};
|
|
0x00000008 0110a0e10080bd08 [Conditional] mov r1, r1; ; ldmeq sp!, {pc};
|
|
0x0000000c 0080bd08 [Conditional] ldmeq sp!, {pc};
|
|
0x00000000 04e02de50000a0e10110a0e10080bd081eff2fe1 str lr, [sp, -4]!; ; mov r0, r0; ; mov r1, r1; ; ldmeq sp!, {pc}; ; bx lr;
|
|
0x00000004 0000a0e10110a0e10080bd081eff2fe1 mov r0, r0; ; mov r1, r1; ; ldmeq sp!, {pc}; ; bx lr;
|
|
0x00000008 0110a0e10080bd081eff2fe1 mov r1, r1; ; ldmeq sp!, {pc}; ; bx lr;
|
|
0x0000000c 0080bd081eff2fe1 ldmeq sp!, {pc}; ; bx lr;
|
|
0x00000010 1eff2fe1 bx lr;
|
|
======================/Rj=======================
|
|
[{"opcodes":[{"offset":0,"size":4,"opcode":"str lr, [sp, -4]!","type":"store"},{"offset":4,"size":4,"opcode":"mov r0, r0","type":"mov"},{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"}],"retaddr":12,"size":16,"is_conditional":true},{"opcodes":[{"offset":4,"size":4,"opcode":"mov r0, r0","type":"mov"},{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"}],"retaddr":12,"size":12,"is_conditional":true},{"opcodes":[{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"}],"retaddr":12,"size":8,"is_conditional":true},{"opcodes":[{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"}],"retaddr":12,"size":4,"is_conditional":true},{"opcodes":[{"offset":0,"size":4,"opcode":"str lr, [sp, -4]!","type":"store"},{"offset":4,"size":4,"opcode":"mov r0, r0","type":"mov"},{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"},{"offset":16,"size":4,"opcode":"bx lr","type":"ret"}],"retaddr":16,"size":20},{"opcodes":[{"offset":4,"size":4,"opcode":"mov r0, r0","type":"mov"},{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"},{"offset":16,"size":4,"opcode":"bx lr","type":"ret"}],"retaddr":16,"size":16},{"opcodes":[{"offset":8,"size":4,"opcode":"mov r1, r1","type":"mov"},{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"},{"offset":16,"size":4,"opcode":"bx lr","type":"ret"}],"retaddr":16,"size":12},{"opcodes":[{"offset":12,"size":4,"opcode":"ldmeq sp!, {pc}","type":"cret"},{"offset":16,"size":4,"opcode":"bx lr","type":"ret"}],"retaddr":16,"size":8},{"opcodes":[{"offset":16,"size":4,"opcode":"bx lr","type":"ret"}],"retaddr":16,"size":4}]
|
|
======================/Rgl======================
|
|
Gadget 0x0 (size 16 bytes) [Conditional]
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000000 04e02de5 str lr, [sp, -4]! | Stack change: 0xfffffffc
|
|
0x00000004 0000a0e1 mov r0, r0 | Modified regs: sp r0 r1
|
|
0x00000008 0110a0e1 mov r1, r1 | Dependencies: sp lr sp r0 r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} |
|
|
|
|
Gadget 0x4 (size 12 bytes) [Conditional]
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000004 0000a0e1 mov r0, r0 | Stack change: 0x0
|
|
0x00000008 0110a0e1 mov r1, r1 | Modified regs: r0 r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Dependencies: r0 r1
|
|
|
|
Gadget 0x8 (size 8 bytes) [Conditional]
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000008 0110a0e1 mov r1, r1 | Stack change: 0x0
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Modified regs: r1
|
|
|
|
Gadget 0xc (size 4 bytes) [Conditional]
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Stack change: 0x0
|
|
|
|
Gadget 0x0 (size 16 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000000 04e02de5 str lr, [sp, -4]! | Stack change: 0xfffffffc
|
|
0x00000004 0000a0e1 mov r0, r0 | Modified regs: sp r0 r1
|
|
0x00000008 0110a0e1 mov r1, r1 | Dependencies: sp lr sp r0 r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} |
|
|
|
|
Gadget 0x4 (size 12 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000004 0000a0e1 mov r0, r0 | Stack change: 0x0
|
|
0x00000008 0110a0e1 mov r1, r1 | Modified regs: r0 r1
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Dependencies: r0 r1
|
|
|
|
Gadget 0x8 (size 8 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000008 0110a0e1 mov r1, r1 | Stack change: 0x0
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Modified regs: r1
|
|
|
|
Gadget 0xc (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x0000000c 0080bd08 ldmeq sp!, {pc} | Stack change: 0x0
|
|
|
|
Gadget 0x10 (size 4 bytes)
|
|
------------------------------------------------------------------------------------------------------
|
|
0x00000010 1eff2fe1 bx lr | Stack change: 0x0
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME= detail rop search (/Rg) on mips (1 delay slot)
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.arch=mips
|
|
e asm.bits=32
|
|
e cfg.bigendian=false
|
|
wa "addiu sp, sp, 0x20; jr ra; nop"
|
|
pi 3
|
|
echo "================================================"
|
|
/R
|
|
echo "================================================"
|
|
/Rg
|
|
EOF
|
|
EXPECT=<<EOF
|
|
addiu sp, sp, 0x20
|
|
jr ra
|
|
nop
|
|
================================================
|
|
0x00000000 2000bd27 addiu sp, sp, 0x20
|
|
0x00000004 0800e003 jr ra
|
|
0x00000008 00000000 nop
|
|
Gadget size: 12
|
|
|
|
0x00000004 0800e003 jr ra
|
|
0x00000008 00000000 nop
|
|
Gadget size: 8
|
|
|
|
================================================
|
|
Gadget 0x0
|
|
Stack change: 0x20
|
|
Changed registers: sp
|
|
Register dependencies:
|
|
|
|
Gadget 0x4
|
|
Stack change: 0x0
|
|
Changed registers:
|
|
Register dependencies:
|
|
|
|
EOF
|
|
RUN
|
|
|
|
NAME=consistency check between /R and /Rg
|
|
FILE=bins/elf/analysis/mips64r2-busybox
|
|
CMDS=<<EOF
|
|
/R~Gadget~?
|
|
/Rg~Gadget~?
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1951
|
|
1951
|
|
EOF
|
|
RUN |