
Binary Ninja प्लगइन जो नियंत्रण प्रवाह और स्टैक पॉइंटर को हाइजैक करने में सक्षम FSOP कोड पथों के लिए glibc libio को स्कैन करता है, जो हीप एक्सप्लॉइटेशन अनुसंधान में सहायता करता है।
GLIBC Libio में नियंत्रण प्रवाह और स्टैक पॉइंटर को हाईजैक कर सकने वाले FSOP कोड पथ खोजें।
libc.so.6 खोलें, फिर Tools -> Plugins -> Find FSOP code path पर क्लिक करेंLog विंडो में दिखाई देना चाहिए// 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 लाइसेंस के अंतर्गत जारी किया गया है।