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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
REx-skill — REx@Skill - مهارة تنفيذ الهندسة العكسية الوكيلية لاكتشاف الثغرات في الملفات الثنائية | Kitploit
أدوات/GitHubGitHub/tihanyin/rex-skill
التحليل الثابتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالاختبار العشوائيتحليل البرمجيات الخبيثةالأدوات والمكوناتتحليل الملفات الثنائيةالهندسة العكسية بمساعدة الذكاء الاصطناعياستغلال الملفات الثنائية
44715منذ يوم واحدلم تتم المراجعة بعد
GitHubtihanyin/rex-skill

REx-skill

REx@Skill - مهارة تنفيذ الهندسة العكسية الوكيلية لاكتشاف الثغرات في الملفات الثنائية

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

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

REx@Skill

مهارة الهندسة العكسية للتنفيذ

اكتشف العيوب في ملف ثنائي مُجمَّع — وأثبتها.
سبعة وكلاء فرعيين، شجرة أدلة واحدة، وسلسلة أدوات مثبَّتة حتى تكون تشغيلتان قابلتين للمقارنة.


Release Claude Code Nix Linux Python License


Ghidra

radare2
rizin
QEMU
angr
z3
AFL++
Valgrind
capa
Unicorn
Triton
Frida
semgrep
LLVM
Python
Nix

Ghidra · radare2 · rizin · qemu-user · angr · z3 · AFL++ · valgrind · capa · Unicorn · Triton · Frida · semgrep · clang · Python · Nix
جميعها مثبَّتة، جميعها قابلة لإعادة الإنتاج


1. تثبيت مهارة Claude

1 · Claude Code — تخطَّ هذه الخطوة إذا كان لديك بالفعل.```bash curl -fsSL https://claude.ai/install.sh | bash

root@kitploit:~
**2 · REx@Skill** — مهارة واحدة، 12 مرجعًا، **7 وكلاء فرعيين**، **33 برنامجًا نصيًا**.```bash
curl -fsSL https://raw.githubusercontent.com/tihanyin/REx-skill/main/install.sh | sh

3 · تحليل ملف ثنائي.```bash claude

/re-analyze path/to/binary # one target /re-analyze path/to/directory/ # a whole corpus, evidence gathered in parallel

root@kitploit:~
<div align="center">
<sub><code>install.sh</code> يكتب فقط إلى <code>~/.claude/</code> — المهارة وسكربتات خط الأنابيب الـ 33 الخاصة بها، والوكلاء الـ 7، و<code>/re-analyze</code>.<br>لا يقوم أبدًا بتثبيت Claude Code نيابةً عنك؛ بل يُنشئ نسخة احتياطية من أي شيء قد يستبدله، و<code>--uninstall</code> يزيله بشكل نظيف.</sub>
</div>

<br>

<details>
<summary><b>تفضّل الاستنساخ؟</b> &nbsp;· &nbsp;<i>أو التثبيت في مكان آخر، أو إزالته</i></summary>```bash
git clone https://github.com/tihanyin/REx-skill && cd REx-skill
./install.sh                              # into ~/.claude
./install.sh --prefix ~/.config/claude    # somewhere else
./install.sh --uninstall                  # take it back out

2. الأدوات المستخدمة بواسطة هذه المهارة

Ghidra radare2 rizin QEMU angr z3 AFL++ Valgrind capa

Ghidra · radare2 · rizin · qemu-user · angr · z3 · AFL++ · valgrind · capa

Unicorn Triton Frida semgrep LLVM Python Nix Linux Anthropic

Unicorn · Triton · Frida · semgrep · clang · Python · Nix · Linux · Claude


REx@Skill يستخدم أدوات متطورة جمعها خبراء الهندسة العكسية. كل أداة موجودة في المجموعة لأنها تستحق مكانها بناءً على معايير معروفة وتحديات تحليل ثنائيات حقيقية — وليس لأن تثبيتها كان مريحًا. لا شيء هنا معاد تنفيذه؛ مهمة المهارة نفسها هي معرفة الأداة التي تجيب على السؤال المطروح أمامها، وما قيمة إجابتها.

الأداةما تفعله
Ghidraتحوّل ثنائيًا مُجمَّعًا مرة أخرى إلى لغة C قابلة للقراءة
radare2 / rizinمفكك تجميع ثانٍ، يُستخدم للتحقق المتقاطع من الأول
qemu-userيشغّل ثنائيات ARM وMIPS وPowerPC وRISC-V على جهاز x86 عادي
z3حلّال رياضيات — يثبت ما إذا كان يمكن لمؤشر أن يخرج من مخزنه، أو لمقسوم عليه أن يكون صفرًا
angrيحدد المدخل الذي سيصل إلى سطر معين من الكود
AFL++يرمي ملايين المدخلات المولّدة على البرنامج ليتسبب في انهياره
valgrindيلتقط أخطاء الذاكرة التي لا تسبب خطأً مرئيًا بخلاف ذلك
libdislocatorيجعل قراءة بايت واحد بعد المخزن تؤدي إلى انهيار فوري
capaيسرد ما يمكن للثنائي فعله: التشفير، فتح المنافذ، الحقن في العمليات
flossيجد النصوص المخفية التي تفوتها strings العادية
Unicornيشغّل دالة واحدة على مدخلات تختارها، دون تشغيل البرنامج
Tritonيتتبع أين تنتقل البيانات التي يتحكم بها المهاجم أثناء التشغيل
Fridaيراقب برنامجًا ويغيّره أثناء تشغيله
semgrep / cppcheckيفحصان لغة C المفككة بحثًا عن أنماط سيئة معروفة
pwntoolsمكتبة مساعدة للإزاحات وتحليل ELF وأعمال الاستغلال

هذه هي الإصدارات الدقيقة التي بُني وقيس بها:

Ghidra 12.1.2 · radare2 6.2.0 · rizin 0.9.1 · qemu-user 11.1.0 + 9 cross-sysroots · angr 9.2.154 · z3 4.16.0 · AFL++ 5.00c · valgrind 3.27.1 · capa 9.4.0 · Unicorn 2.1.4 · Triton 3.7.0 · Frida 17.17.0 · clang 21.1.8 · semgrep 1.172.0 · floss 3.1.1 · yara 4.5.7 · binwalk 3.1.0 · pwntools 4.15.0 · cppcheck 2.21.1

كل واحدة منها اختيارية. يبلّغ scripts/capabilities.sh عمّا تملكه هذه الآلة، ويسمّي كل سكربت الأداة التي لا يجدها، وتؤدي الأداة المفقودة إلى تضييق التحليل إلى limitations بدلًا من الفشل بصمت.

لا تملكها؟ DEVSHELL يثبّت كل ذلك، بإصدارات مثبّتة

ثلاثة أوامر وكل أداة أعلاه على PATH الخاص بك، بهذه الإصدارات بالضبط — لا شيء للبحث عنه، ولا شيء متروك نصف مُهيّأ.```bash git clone https://github.com/tihanyin/REx-skill 2>/dev/null || git -C REx-skill pull cd REx-skill curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install --no-confirm nix develop ./devshell scripts/capabilities.sh

root@kitploit:~
| | |
|---|---|
| **0** | يستنسخ المستودع، أو يحدّثه إذا كان لديك واحد بالفعل — مثبّت المهارة ذو السطر الواحد أعلاه **لا** يترك نسخة مستنسخة خلفه، فهو يعمل من نسخة مؤقتة ثم يحذفها، لذا تحتاج سلسلة الأدوات والسكربتات إلى نسخة خاصة بهما |
| **1** | يثبّت Nix، مدير الحزم الذي يقوم بالتثبيت — ثم **افتح طرفية جديدة**. *هل لديك Nix بالفعل؟ تخطَّ هذه الخطوة.* إعادة تشغيل المثبّت فوق تثبيت موجود تفشل مع `Found existing plan in /nix/receipt.json`، وهو رفضه للمس ما لديك بالفعل، وليس خطأً يحتاج إلى إصلاح |
| **2** | يدخل إلى الصدفة، من جذر المستودع حتى يبقى `scripts/` في متناول اليد. المرة الأولى تنزّل الكثير؛ وكل مرة بعدها تستغرق ثوانٍ |
| **3** | يؤكّده: `ghidra pyghidra r2 rizin`، `qemu-user architectures: 7`، `angr`، `z3`، `afl` — بدلاً من أسطر `MISS` التي يعطيها جهاز مجرّد |

`exit` يعيد `PATH` الخاص بك تماماً كما كان. *تم الاختبار على Ubuntu 22.04.5 LTS
(x86-64)، Determinate Nix 3.22.4.*

<details>
<summary><b>لماذا تثبيت سلسلة الأدوات أصلاً؟</b></summary>

- **تشغيلات قابلة للمقارنة.** مخرجات المفكّك *هي* مدخلات المحلّل. شخصان
  على إصدارين مختلفين من Ghidra لا يجريان التجربة نفسها، ولا يستطيع أيٌّ منهما
  التحقق من نتيجة الآخر.
- **لا شيء مثبّت على جهازك.** يحتفظ Nix بكل حزمة تحت تجزئة (hash) لما بنَاها،
  لذا فإن دخول الصدفة يغيّر `PATH` ولا شيء غيره. اخرج من الصدفة وسيعود نظامك
  تماماً كما كان.
- **لا يزال يعمل بعد خمس سنوات.** ثلاث مراجعات مثبّتة تعيد بناء سلسلة الأدوات
  بالكامل، وهذا ما يجعل رقماً منشوراً قابلاً لإعادة التحقق لاحقاً.

ثلاث مراجعات تعيد بناء سلسلة الأدوات بالكامل، على أي جهاز، وفي أي وقت في
المستقبل:```
nixpkgs        ffb3c9b700e759be2ef13237c9d8f953b32a1e46
nixpkgs-angr   ac62194c3917d5f474c1a844b6fd6da2db95077d
capa-rules     v9.4.0

devshell/flake.lock هو المرجع؛ devshell/DEVSHELL.md يسرد كل أداة مع إصدارها والغرض منها.


3. منهجية ومعمارية REx@Skill

REx@Skill هي طريقة لتحديد ما إذا كان الملف الثنائي يحتوي على عيب — وإثبات ذلك. سبعة وكلاء فرعيين ينفذونها، متشاركين دليل أدلة واحد.

وكيل واحد يحوّل الملف الثنائي إلى أدلة: كود C مفكوك، تفكيك، سلاسل نصية، خريطة لأي كود يصل إلى أي شيء، وما يحدث عند تشغيله فعليًا. ثم يقرأ خمسة وكلاء تلك الأدلة في الوقت نفسه، كل واحد يطارد نوعًا مختلفًا من العيوب، ولا يمكن لأي منهم رؤية ما وجده الآخرون — خمسة قراء يتشاركون مفككًا واحدًا يرتكبون الأخطاء نفسها، لذا فإن إبقاءهم منفصلين يمنح خمس قراءات مستقلة بدلًا من رأي واحد مكرر خمس مرات. ويقرأ السابع الكود أولًا، ثم نتائجهم، ويقرر أيها يصمد.

لا يُبلَّغ عن شيء كخطأ برمجي إلا إذا تم تسمية أربعة أشياء وتحديد موقعها في الملف الثنائي: أين تدخل البيانات التي يتحكم بها المهاجم (المصدر)، والعملية التي يمكن أن يكسرها (المصب)، والفحص الذي كان ينبغي أن يوقفه (الحارس المعطوب)، ومن يتضرر (الجهة المتأثرة). إذا فاتك واحد منها، يخرج كخيط غير مُثبت، وليس كاكتشاف.

كل تشغيل يقدّم الأشياء الثلاثة نفسها: الاكتشافات، وما تم استبعاده ولماذا، وما تعذّر تشغيله على المضيف.

تم اختبار مجموعة المهارات عبر عشر معماريات — x86-64، وi686، وARM، وAArch64، وMIPS وMIPS64 بترتيبي البايتات، وPowerPC 32-بت، وRISC-V، وApple arm64 — على ELF وPE وMach-O، والبرامج الثابتة والكتل الخام. لا شيء يحدّها عند هذا الحد: أي معمارية يستطيع مفككك رفعها هي ضمن النطاق.

the seven subagents
SVG
الوكيليعملفي سطر واحد
01re-reconأولًا، بمفردهيستخرج الأدلة. لا يطارد الأخطاء — اكتشاف واثق هنا هو نمط الفشل.
02re-bughuntدائمًايبني أقوى حجة صادقة على وجود عيب. يعدّد كل مصب.
03re-safetyدائمًايحاول إثبات سلامته، ويبلّغ عن كل التزام لا يستطيع الوفاء به.
04re-arithmeticإذا كان يفهرس أو يحدد أحجامًاالحجم والفهرس والعرض والإشارة عبر حدود الاستدعاء — يُنجَز بواسطة محلّل، لا في رأس أحدهم.
05re-lifecycleإذا كان يخصصالتخصيص، والتحرير، والملكية، والتهيئة، ومسارات الأخطاء. مسار الخطأ هو الذي لم يختبره أحد.
06re-logicإذا كان يصادقالتخويل، وآلات الحالة، والتشفير، والتحقق هنا والاستخدام هناك. لا توقيع للبحث عنه.
07re-reconcileأخيرًا، بمفردهيقرأ الكود قبل أن يقرأ استنتاجات أي أحد، ثم يحكم ويبلّغ.
ما تحصل عليه في المقابل

دليل واحد لكل ملف ثنائي، مسمّى <filename>-<first 8 hex of its SHA-256>:``` results/ ├── index.json every sha256 analysed -> its directory └── httpd-4f2a9c1e/ <- "httpd", sha256 4f2a9c1e... ├── decomp/ decompiled C ├── reach/ source -> sink paths ├── disasm/ disassembly, real VAs ├── bounds/ arithmetic to discharge ├── meta/ function map + base ├── sanitize/ hostile-allocator runs ├── strings/ inventory, by family ├── fuzz/ coverage-guided search ├── dynamic/ crafted-input battery ├── quarantine/ text aimed at YOU └── notes/ the threat model └── pipeline.json what ran, what did not

root@kitploit:~
**لماذا التجزئة في الاسم.** نسختان مبنيتان من برنامج تشتركان في اسم الملف لكن ليس في
SHA-256، لذا لا يمكن للدليل والملف الثنائي أن ينفصلا بصمت: أعد ترجمة الهدف وستحصل
على دليل جديد بدلاً من دليل ملوّث.

يقوم `pipeline_status.py` بتدقيق تلك الشجرة ويبلّغ عن المراحل التي لم تُنفَّذ قط — لأن
المرحلة التي لم تُنفَّذ لا تترك خلفها خطأً، بل دليلاً غائباً فقط، وهو ما يُقرأ تماماً
كما لو أنه "نُفِّذ، ولم يجد شيئاً".

</details>

---

## 4. جرد الأدوات — أي سكربت يستدعي ماذا

#### فك الترجمة والقراءة

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| **Ghidra** | 12.1.2 | `ghidra_export.py` `batch_decompile.sh` `decompile_addr.py` | المفكِّك — الأداة الأساسية |
| **pyghidra** | 3.1.0 | الثلاثة نفسها | تشغيله بلا واجهة |
| radare2 | 6.2.0 | `run_tools.sh` `strings_report.py` `brief.py` | مخرجات JSON من كل أمر |
| rizin | 0.9.1 | `capabilities.sh` `preflight.sh` | مفكِّك **ثانٍ** — للتحقق المتقاطع |
| binutils | 2.46 | `triage.py` `inventory.py` `run_tools.sh` | readelf، objdump، nm، strings، size |
| file | 5.48 | كل نقطة دخول | الأمر الأول، في كل مرة |

#### الفرز — ما هو، وما يمكنه فعله

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| **capa** | 9.4.0 | `run_tools.sh` `brief.py` | القدرات من القواعد، مع العناوين |
| **floss** | 3.1.1 | `strings_report.py` | السلاسل النصية التي لا يراها `strings` |
| yara | 4.5.7 | `run_tools.sh` `analyze.sh` | المُحزِّمات، ثوابت التشفير، إصدارات المكتبات |
| detect-it-easy | 3.21 | `run_tools.sh` | تحديد المُحزِّم والمترجم |
| checksec | pwntools | `triage.py` `brief.py` | NX / RELRO / canary / PIE |

#### التنفيذ — أكبر رافعة منفردة

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| **qemu-user** | 11.1.0 | `dynamic_probe.py` `quick_dynamic.sh` | تشغيل ملفات ثنائية بمعمارية أجنبية |
| **9 cross-sysroots** | glibc | `setup_sysroots.sh` | بدونها لا يستطيع qemu حتى تحميل ملف ثنائي ديناميكي أجنبي |
| gdb / ltrace / strace | 17.2 | `capabilities.sh` يبلّغ عنها | التتبعات؛ `ltrace` هي الأداة الأكثر إهمالاً هنا |

> في مقارنة مقيسة واحدة، سجّل النموذج نفسه نحو **3× من الاستدعاء** مع توفر
> التنفيذ مقارنةً بغيابه. هذا الصف هو سبب شحن الـ sysroots مع الـ flake.

#### اجعل الأخطاء الصامتة صاخبة

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| **valgrind** | 3.27.1 | `sanitize_run.sh` | أقرب شيء إلى ASan لملف ثنائي لا يمكنك إعادة بنائه |
| **AFL++** | 5.00c | `fuzz_target.sh` `quick_dynamic.sh` | التشويش الموجَّه بالتغطية، وضع QEMU |
| libdislocator | مع AFL++ | `sanitize_run.sh` `quick_dynamic.sh` | صفحة لكل تخصيص — يحوّل قراءة OOB صامتة إلى خطأ |
| clang | 21.1.8 | `triage.py` | `-fsanitize=...` على الكود المرفوع |

#### الحل والمحاكاة

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| **z3** | 4.16.0 | `check_bound.py` | يُبرئ ادعاء الحدود — 9 أنماط بالإضافة إلى مخرج عام |
| **angr** | 9.2.154 | `symfn.py` | حاضنة رمزية لكل دالة: اختطاف، كتابة OOB، قسمة على صفر |
| **unicorn** | 2.1.4 | `emulate.py` | تشغيل دالة واحدة بمعزل على مدخلات تختارها |
| triton | 3.7.0 | متاحة | التنفيذ الكونكوليكي والتلويث عبر تتبع ملموس |
| pwntools | 4.15.0 | `brief.py` `run_tools.sh` | إزاحات `cyclic()`، تحليل ELF/GOT |

#### التحليل الساكن على C المفكَّكة

| الأداة | الإصدار | تُستخدم بواسطة | لأجل |
|---|---|---|---|
| cppcheck | 2.21.1 | `run_tools.sh` `analyze.sh` | يتحمّل الكود الذي لا يُترجم — ومخرجات المفكِّك لا تُترجم |
| semgrep | 1.172.0 | `run_tools.sh` `analyze.sh` | قواعد أنماط، بلا حاجة للبناء |
| flawfinder | 2.0.20 | `capabilities.sh` | معجمي؛ grep له آراء |

<details>
<summary><b>أيضاً في الصدفة</b> — البرامج الثابتة، الصيغ، قابلية الاستغلال</summary>

`binwalk` 3.1.0 · `unsquashfs` · `sasquatch` · `jefferson` · `ubi_reader` ·
`kaitai-struct-compiler` 0.11 · `tshark` 4.6.8 · `hexyl` · `pev` 0.81 ·
`osslsigncode` · `diffoscope` 328 · `patchelf` 0.15.2 · `ROPgadget` 7.7 ·
`one_gadget` 1.9.0 · `honggfuzz` · `radamsa` 0.7 · `bitwuzla` 0.9.1 · `rr` 5.9.0 ·
`bpftrace` 0.26.0 · `upx` 5.2.0

الجرد الكامل مع كل إصدار: [`devshell/DEVSHELL.md`](https://github.com/tihanyin/rex-skill/blob/main/devshell/DEVSHELL.md)

</details>

---

## 5. استخدمه مع شيء غير Claude

`general-skill/SKILL-RE.md` هو **ملف واحد مكتفٍ بذاته** — 3 750 سطراً من
Markdown عادي مع frontmatter يحتوي `name`/`description`. كل ما تحتويه حزمة Claude،
في قطعة واحدة: نفس معيار الأدلة، نفس خط الأنابيب، نفس القواعد بشأن
تشويش معمارية أجنبية. استنسخ المستودع بحيث يجلس `scripts/` بجانبه، ثم:

| المشغِّل | الكيفية |
|---|---|
| **Codex** | وجّه `AGENTS.md` إليه، أو الصقه كموجّه النظام |
| **opencode** | `{"instructions": ["SKILL-RE.md"]}` في `opencode.json` |
| **Cursor / Windsurf** | أضفه كقاعدة مشروع |
| **حلقة API عادية** | إنه مجرد Markdown — ضعه في المقدمة |
| **إنسان** | يُقرأ ككتاب دراسي؛ كان ذلك هو المقصد |

> **لماذا شكلان؟** حزمة Claude هي نواة بحجم 16 KB بالإضافة إلى اثني عشر ملف مرجعي
> تُحمَّل عند الطلب — سياق صغير حتى يحتاج سؤال محدد إلى فصل محدد. Claude Code وحده
> يتبع تلك المؤشرات، لذا يحصل كل مشغِّل آخر على الملف الواحد بدلاً من ذلك.

---

---

## 6. ما بالداخل```
.
├── claude-skill/          the Claude Code form
│   ├── skills/reverse-engineering/
│   │   ├── SKILL.md           16 KB core, loaded on every trigger
│   │   └── references/        12 files, pulled in on demand
│   ├── agents/                7 subagents
│   └── commands/              /re-analyze — orchestrates all three phases
│
├── general-skill/         the portable form
│   ├── SKILL-RE.md            the whole methodology, one file, 32 sections
│   └── AGENTS.md              points any agent at it
│
├── scripts/               32 tools — the pipeline and its parts
├── devshell/              flake.nix + flake.lock + DEVSHELL.md
├── images/                logo and figures
└── install.sh             one command into ~/.claude

السكربتات المهمة


7. القيود

المهارة تعمل في أي مكان يعمل فيه Claude Code — Linux وmacOS وWSL. إنها markdown: النواة، و12 مرجعاً، و7 وكلاء فرعيين، و/re-analyze. لا شيء فيها مرتبط بمنصة معينة، والسكربتات هي Python وbash محمولة. ما يتغير هو الأدوات التي تحتها.

بيئة DEVSHELL مبنية ومختبرة على Linux — x86-64 (Ubuntu 22.04.5 LTS) و aarch64. macOS هو حيث تتراجع، لأن إحدى عشرة أداة غير موجودة على Darwin إطلاقاً:

qemu-user يترجم استدعاءات نظام Linux، لذا فهو Linux بحكم التعريف، ومعه تذهب جذور النظام التسعة متعددة المعماريات.

ما يتبقى على Mac. كل المراحل الساكنة: تفكيك Ghidra، وradare2 وrizin، وangr وz3، والمحللات الساكنة، والفرز، والسلاسل النصية وقابلية الوصول. ما تخسره هو التنفيذ — المسبار الديناميكي، وتشغيلات المُخصّصات، والتشويش، وأي ثنائي بمعمارية أجنبية. هذه خسارة حقيقية: الانهيار هو أقوى دليل تملكه هذه المنهجية، ولا شيء ساكن يعوّض عنه.

لا شيء يتظاهر بغير ذلك. scripts/capabilities.sh يبلّغ عمّا يمكن للمضيف فعله بالفعل، وscripts/pipeline_status.py يعلّم المرحلة كغائبة، والتكلفة تقع في limitations في التقرير. المرحلة التي لم تُنفّذ لا يُبلّغ عنها أبداً كمرحلة نُفّذت ولم تجد شيئاً — انظر §9.1 من المهارة.

باختصار: حلّل على Linux. اقرأ وخطط واكتب التقرير في أي مكان.


Norbert Tihanyi · x.com/@TihanyiNorbert

اكتشاف = مصدر · حوض · حارس مكسور · أصل متأثر.
أي شيء أقل من ذلك هو فرضية.

تنزيل الأداة
capabilities.shما يمكن لهذا المضيف فعله بالفعل — تحقق قبل التخطيط
analyze.shخط الأنابيب كاملاً بالترتيب، الخطوات 0-5، ثم يسلّم المهمة
batch_analyze.shنفس خط الأنابيب عبر دليل من الأهداف
pipeline_status.pyتدقيق شجرة الأدلة: أي المراحل نُفّذت، وما تكلفة كل غياب
overview.pyشكل البرنامج: الأعداد، شجرة الاستدعاء، الأحواض، المصادر
brief.pyمخرجات كل أداة لهدف واحد، موحّدة، والثغرات مُسمّاة
fn.pyاقرأ دالة واحدة بدلاً من كامل التفكيك
reach.pyمسارات المصدر → الحوض عبر رسم الاستدعاء البياني
bounds_worklist.pyالادعاءات الحسابية التي تحتاج إثباتاً، في ثلاث طبقات
check_bound.pyأثبت واحداً باستخدام z3 — 9 أنماط بالإضافة إلى مخرج عام
symfn.pyحزمة رمزية لدالة واحدة
emulate.pyشغّل دالة واحدة بمعزل على مدخلات تختارها
quick_dynamic.shشغّله فقط: بدون مدخلات، ثم مدخلات تكسر معظم الأشياء
fuzz_target.shاختبار تشويش موجّه نحو القناة التي يقرأها البرنامج فعلاً
sanitize_run.shمُخصّصات ذاكرة عدائية — اجعل خطأ كومة صامتاً يتحول إلى انهيار
sanitize.pyاعزل النص الموجّه من النموذج قبل أن يقرأه أي شيء
غائبة على macOSqemu-user · gdb · gef · ltrace · strace · valgrind · AFL++ · honggfuzz · frida · bpftrace · rr
أيضاًبناء capa المثبّت لا يجتاز مجموعة اختباراته الخاصة على Darwin
واختبار تشويش argv يعترض __libc_start_main، وهو glibc — لا يوجد مكافئ على macOS