Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/lunixbochs/patchkit
الهندسة العكسيةتحليل الملفات الثنائيةاستغلال الملفات الثنائية
GitHublunixbochs/patchkit

patchkit

تصحيح ثنائي من بايثون

عرض المستودع
6388218منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

patchkit

يقوم بتطبيق رقع (Patches) على ملف ثنائي بصيغة ELF باستخدام سكريبت بايثون واحد أو أكثر.

الاستخدام:

patch <binary> <patchdir|file> [patchdir|file...]

patchdir

يحتوي على ملف أو أكثر من ملفات رقع بايثون، والتي سيتم تنفيذها بترتيب أبجدي ضد ملف ثنائي.

أمثلة على الرقع

إلغاء عنوان، حقن دالة تجميع، وربط نقطة الدخول:

def simple_patch(pt):
    # nop out a jump at the entry point
    pt.patch(pt.entry, hex='90' * 5)

    # inject assembly into the binary and return the address
    addr = pt.inject(asm='mov eax, 1; ret')

    # hook the entry point to make it call addr (ret will run the original entry point)
    pt.hook(pt.entry, addr)

استبدال دالة بلغة C:

def replace_free(pt):
    # pretend free() is at this address:
    old_free = 0x804fc4

    # inject a function to replace free()
    new_free = pt.inject(c=r'''
    void free_stub(void *addr) {
        printf("stubbed free(%p)\n", addr);
    }
    ''')

    # patch the beginning of free() with a jump to our new function
    pt.patch(old_free, jmp=new_free)

واجهة برمجية (API)

addr = search(data)
hook(addr, new_addr)
patch(addr, *compile arg*)
addr = inject(*compile arg*)

*compile arg* هو أي مما يلي:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (مدعوم فقط في inject، وليس في patch)

سكريبتات IDA

توجد بعض السكريبتات في المسار ida/. قم بتشغيلها هكذا:

/Applications/IDA\ Pro\ 6.8/idaq.app/Contents/MacOS/idaq64 -A -Sida/allfuncs.py a.out

عند التشغيل بهذه الطريقة، سينشئ allfuncs.py الملف a.out.funcs الذي تستخدمه سكريبتات التقوية (hardening scripts).

الأدوات

هذه الأدوات حالياً خاصة إلى حد ما بـ CGC و x86، لكن سيتم نقلها للاستخدام العام في المستقبل.

  • explore: يستخدم CFG بلغة بايثون ومحاكي تتبع خلفي تكرارية (recursive backtracking emulator) لإيجاد الكتل الأساسية في ملف قابل للتنفيذ
  • bindiff: يستخدم حدود الكتل من تشغيل explore، بالإضافة إلى تحليل إضافي لإيجاد وإخراج الفروقات في الكتل الأساسية بين ملفين ثنائيين

التبعيات

  • قم بتشغيل ./deps.sh لتثبيتها تلقائياً.
    • Capstone Engine - https://github.com/aquynh/capstone.git
    • Keystone Engine - https://github.com/keystone-engine/keystone.git
    • Unicorn Engine - https://github.com/unicorn-engine/unicorn.git
تنزيل الأداة