
Plugin do Binary Ninja que escaneia o libio da glibc em busca de caminhos de código FSOP capazes de sequestrar o fluxo de controle e o ponteiro de pilha, auxiliando na pesquisa de exploração de heap.
Encontre o caminho de código FSOP que pode sequestrar o fluxo de controle e o ponteiro de pilha na GLIBC Libio.
libc.so.6 no Binary ninja, depois clique em Tools -> Plugins -> Find FSOP code pathLog// GLIBC 2.34-0ubuntu3.2
3. _IO_wfile_underflow_mmap@0x86030 -> _IO_wdoallocbuf@0x83be0
0x8614d: call(0x83be0)
RIP/RDI DATAFLOW:
rbx = rdi -> rdi = rbx -> call(0x83be0)
RBP DATAFLOW:
rbp = [rdi + 0x98].q
CODE PATH:
eax = [rdi].d
=> [condition] (al & 4) == 0
rax = [rdi + 0xa0].q
rdx = [rax].q
=> [condition] rdx u>= [rax + 8].q
rdx = [rdi + 8].q
=> [condition] rdx u< [rdi + 0x10].q
rdi = [rax + 0x40].q
=> [condition] rdi == 0
0x83c0b: call([rax + 0x68].q)
RIP/RDI DATAFLOW:
rax = [rdi + 0xa0].q -> rax = [rax + 0xe0].q -> call([rax + 0x68].q)
RBP DATAFLOW:
(N/A)
CODE PATH:
rax = [rdi + 0xa0].q
=> [condition] [rax + 0x30].q == 0
=> [condition] ([rdi].b & 2) == 0
([0x216020] is the location of _IO_wfile_underflow_mmap in __libc_IO_vtables)
Um caminho de código FSOP que pode ser usado para realizar migração de pilha com um único ataque FSOP, disponível na GLIBC 2.24+. Também é conhecido como house of apple2, descoberto independentemente por roderick01.
Na verdade, encontrei este caminho de código algumas semanas atrás, mas estava lutando para trabalhar em outras coisas nesses dias, então não percebi que alguém já havia publicado este caminho de código X(
Este plugin é distribuído sob uma licença MIT.