
Plugin Binary Ninja qui analyse glibc libio à la recherche de chemins de code FSOP capables de détourner le flux de contrôle et le pointeur de pile, facilitant ainsi la recherche sur l'exploitation du tas.
Trouve un chemin de code FSOP capable de détourner le flux de contrôle et le pointeur de pile dans GLIBC Libio.
libc.so.6 dans Binary ninja, puis cliquez sur 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)
Un chemin de code FSOP qui peut être utilisé pour effectuer une migration de pile avec une seule attaque FSOP, disponible sur GLIBC 2.24+. Il est également connu sous le nom de house of apple2, découvert indépendamment par roderick01.
J'ai en fait trouvé ce chemin de code il y a quelques semaines mais j'étais occupé à travailler sur d'autres choses ces derniers temps, donc je n'ai pas remarqué que quelqu'un avait déjà publié ce chemin de code X(
Ce plugin est publié sous une licence MIT.