
إضافة Binary Ninja تفحص glibc libio بحثًا عن مسارات تعليمات FSOP القادرة على اختطاف تدفق التحكم ومؤشر المكدس، مما يساعد في أبحاث استغلال الكومة.
ابحث عن مسار كود FSOP الذي يمكنه اختطاف تدفق التحكم ومؤشر المكدس في GLIBC Libio.
libc.so.6 في Binary ninja، ثم انقر على 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)
مسار كود FSOP الذي يمكن استخدامه لتنفيذ ترحيل المكدس بهجوم FSOP واحد، متاح على GLIBC 2.24+. يُعرف أيضًا باسم house of apple2 الذي اكتشفه بشكل مستقل roderick01.
لقد وجدت هذا المسار البرمجي فعليًا قبل بضعة أسابيع لكنني كنت أكافح للعمل على أشياء أخرى هذه الأيام، لذلك لم ألاحظ أن شخصًا ما قد نشر هذا المسار البرمجي بالفعل X(
تُصدر هذه الإضافة بموجب ترخيص MIT.