
angr v9.3.0
منصة تحليل ثنائي قوية وسهلة الاستخدام!
angr
angr هو إطار عمل لتحليل الثنائيات مستقل عن المنصة. تم تطويره بواسطة مختبر أمان الحاسوب في جامعة كاليفورنيا سانتا باربرا، و SEFCOM في جامعة ولاية أريزونا، وفريق CTF المرتبط بهم، Shellphish، ومجتمع المصادر المفتوحة، و @rhelmot.
روابط المشروع
الصفحة الرئيسية: https://angr.io
مستودع المشروع: https://github.com/angr/angr
التوثيق: https://docs.angr.io
توثيق API: https://docs.angr.io/en/latest/api.html
ما هو angr؟
angr هو مجموعة من مكتبات بايثون 3 التي تتيح لك تحميل ملف ثنائي والقيام بالعديد من الأشياء الرائعة به:
- فك التجميع ورفع التمثيل الوسيط
- أدوات البرنامج
- التنفيذ الرمزي
- تحليل تدفق التحكم
- تحليل تبعية البيانات
- تحليل مجموعة القيم (VSA)
- إعادة الترجمة
أكثر عمليات angr شيوعًا هو تحميل ملف ثنائي: p = angr.Project('/bin/bash') إذا قمت بذلك في بيئة REPL محسّنة مثل IPython، يمكنك استخدام الإكمال التلقائي بالتبويب لتصفح الطرق القابلة للوصول من المستوى الأعلى و docstrings الخاصة بها.
النسخة المختصرة من "كيفية تثبيت angr" هي mkvirtualenv --python=$(which python3) angr && python -m pip install angr.
مثال
يقوم angr بالكثير من أعمال تحليل الثنائيات. لتبدأ، إليك مثال بسيط على استخدام التنفيذ الرمزي للحصول على علم في تحدي CTF.
import angr
project = angr.Project("angr-doc/examples/defcamp_r100/r100", auto_load_libs=False)
@project.hook(0x400844)
def print_flag(state):
print("FLAG SHOULD BE:", state.posix.dumps(0))
project.terminate_execution()
project.execute()
بداية سريعة
- تعليمات التثبيت
- التوثيق بصيغة HTML والمصادر في مستودع angr على Github
- اغوص مباشرة: الطرق القابلة للوصول من المستوى الأعلى
- أمثلة على استخدام angr لحل تحديات CTF.
- مرجع API
- مستودع awesome-angr