الهندسة العكسية
Reverse Engineering - تفكيك البرمجيات، تحليل الثنائيات، وكشف الأسرار الخفية
دورة حياة الهندسة العكسية
التفكيك (Disassembly)
تحويل الكود الثنائي إلى لغة التجميع باستخدام Ghidra, Radare2, IDA Pro
التحليل الثابت (Static Analysis)
فهم المنطق والدوال والتبعيات بدون تنفيذ البرنامج
التحليل الديناميكي (Dynamic Analysis)
تنفيذ البرنامج في بيئة معزولة لمراقبة السلوك باستخدام GDB, strace
التصحيح والتعديل (Debugging & Patching)
تعديل السلوك، إزالة القيود، وإصلاح الثغرات
إعادة التجميع والاختبار
التحقق من التعديلات واختبار الوظائف الجديدة
مفككات ومحللات برمجية
أدوات تحويل الكود الثنائي إلى لغة التجميع وتحليل البرامجGhidra
🔐 NSAإطار عمل متكامل للهندسة العكسية من وكالة الأمن القومي الأمريكية (NSA). يدعم التفكيك، فك التجميع، والتحليل المتقدم لمختلف المعماريات [citation:3][citation:8].
ghidraRun
تشغيل الواجهة
analyzeHeadless project_dir/ project_name -import binary.exe
تحليل بدون واجهة
📌 الاستخدامات الرئيسية:
- تحليل البرمجيات الخبيثة
- هندسة ELF/PE عكسية
- اكتشاف الثغرات الأمنية
Radare2
⚡ سطر أوامرإطار عمل مفتوح المصدر للهندسة العكسية وتحليل الثنائيات. يدعم 50+ معمارية و10+ تنسيقات ملفات، بواجهة أوامر مرنة وقوية [citation:8][citation:9].
r2 -e bin.cache=true binary.exe
تحميل ملف مع كاش
aaa
تحليل كل الدوال
afl
عرض الدوال
pdf @main
تفكيك الدالة main
VV
رسم بياني تفاعلي
IDA Pro
👑 المعيار الذهبيالمفكك التجاري الأقوى في العالم. يستخدم على نطاق واسع في تحليل البرمجيات الخبيثة والهندسة العكسية الاحترافية. يدعم عشرات المعماريات مع واجهة رسومية متقدمة [citation:8].
ida64
تشغيل نسخة 64-bit
idat64 -B binary.exe
تحليل خلفي
Cutter
🖥️ واجهة Radare2الواجهة الرسومية الرسمية لـ Radare2. تجمع بين قوة Radare2 وسهولة الاستخدام مع دعم Python وقابلية التوسع.
cutter
تشغيل الأداة
Rizin
🔄 شوكة Radare2شوكة مجتمعية من Radare2 مع تحسينات في الأداء والاستقرار، وتوافق مع واجهة rz-ghidra لفك التجميع [citation:10].
rizin binary.exe
تحميل الملف
rz-ghidra
تفعيل decompiler
Objdump
📟 GNU Binutilsأداة سطر أوامر كلاسيكية من GNU Binutils لعرض المعلومات من الملفات الثنائية وتفكيك الكود [citation:8].
objdump -d binary
تفكيك
objdump -t binary
جداول الرموز
objdump -s -j .data binary
عرض قسم البيانات
مصححات الأخطاء (Debuggers)
أدوات التنفيذ خطوة بخطوة وتحليل وقت التشغيلGDB
🐧 GNU Debuggerمصحح الأخطاء القياسي في نظام GNU. يدعم تحليل البرامج أثناء التنفيذ، تحديد نقاط التوقف، فحص الذاكرة، وعكس تدفق التنفيذ [citation:8].
gdb binary
تشغيل المصحح
break main
نقطة توقف
run
تنفيذ
x/10x $rsp
عرض الذاكرة
info registers
عرض المسجلات
LLDB
🍏 LLVMمصحح الأخطاء من مشروع LLVM. يوفر واجهة حديثة وأداء عالي مع دعم ممتاز للغات Swift, C, C++ [citation:8].
lldb binary
تشغيل المصحح
breakpoint set -n main
نقطة توقف
EDB
🖱️ واجهة رسوميةEvan's Debugger - مصحح أخطاء بواجهة رسومية مشابه لـ OllyDbg على لينكس. يدعم هندسة x86/x64 مع مكونات إضافية متعددة [citation:6].
edb
تشغيل
strace / ltrace
📊 تتبع النظامأدوات تتبع استدعاءات النظام والمكتبات الديناميكية. strace يراقب استدعاءات النواة، ltrace يراقب استدعاءات المكتبات [citation:8].
strace -f -o log.txt ./binary
تتبع مع fork
ltrace -c ./binary
إحصائيات المكتبات
strace -e trace=open,read ./binary
فلترة استدعاءات
هندسة تطبيقات أندرويد
أدوات تفكيك وتحليل وإعادة تجميع APKApktool
📦 تفكيك APKأداة أساسية للهندسة العكسية لتطبيقات أندرويد. تفكيك ملفات APK إلى موارد و Smali، وإعادة تجميعها بعد التعديل [citation:8].
apktool d app.apk
تفكيك
apktool b app_dir/
إعادة بناء
dex2jar
🔄 DEX → JARأداة تحويل ملفات Dalvik Executable (DEX) إلى ملفات JAR قابلة للتحليل باستخدام Java decompilers [citation:6][citation:8].
d2j-dex2jar classes.dex
تحويل
d2j-dex2jar -d app.apk
من APK مباشر
JD-GUI
☕ فك تجميع جافاواجهة رسومية لعرض كود Java المصدر من ملفات JAR. يستخدم مع dex2jar لرؤية كود تطبيقات أندرويد بصيغة Java [citation:8].
jd-gui
تشغيل
Frida
💉 Dynamic Instrumentationمنصة ديناميكية لحقن الكود واختبار التطبيقات أثناء التشغيل. يدعم Android, iOS, Windows, macOS [citation:8].
frida-ps -U
عرض العمليات
frida -U com.example.app -l script.js
حقن سكريبت
objection -g com.example.app explore
واجهة تفاعلية
Androguard
🐍 تحليل بايثونمكتبة بايثون شاملة لتحليل تطبيقات أندرويد - فحص DEX, أندرويد مانيفست, تحليل أمني, وكشف البرمجيات الخبيثة.
androguard analyze app.apk
تحليل
محررات ومحللات سداسية عشرية
أدوات تحرير وعرض البايتات مباشرةHexWalk
🆕 إصدار 2024.4أداة جديدة في Kali 2024.4 - محلل ومحرر ومشاهد هكس متقدم بواجهة مستخدم رسومية. مثالي للتحليل السريع للملفات الثنائية [citation:4].
hexwalk
تشغيل
hexwalk binary.exe
فتح ملف
ImHex
🎨 Hex Editor متطورمحرر هكس متطور بواجهة رسومية جميلة، يدعم أنماط الألوان، تحليل الهياكل، ولغة بايثون. أضيف في Kali 2023.3 [citation:10].
imhex
تشغيل
Bless Hex Editor
📝 محرر كلاسيكيمحرر هكس سريع وموثوق بواجهة GTK. يدعم تحرير الملفات الكبيرة، البحث المتقدم، والإضافات.
bless
تشغيل
تحليل الثنائيات والمكتبات
أدوات فحص الملفات الثنائية والسلاسل النصيةStrings
🔤 استخراج النصوصأداة أساسية لاستخراج السلاسل النصية من الملفات الثنائية. تكشف عن URLs, مسارات, رسائل خطأ, وأسماء دوال [citation:8].
strings binary.exe
كل السلاسل
strings -n 8 binary
طول 8+
strings -e l binary
سلاسل UTF-16
readelf
📋 ELF Analyzerأداة لعرض معلومات مفصلة عن ملفات ELF (Executable and Linkable Format) في أنظمة لينكس [citation:6].
readelf -h binary
رأس ELF
readelf -s binary
جداول الرموز
readelf -S binary
الأقسام
file
🔍 تحديد نوع الملفأداة سريعة لتحديد نوع الملف باستخدام توقيعات البايت (magic numbers). تعرف على ELF, PE, Mach-O, PDF, وغيرها.
file unknown_file
نوع الملف
file -b binary
بدون اسم ملف
ltrace
📚 استدعاءات المكتباتتتبع استدعاءات المكتبات الديناميكية. يكشف دوال libc, malloc, printf, strcpy وغيرها أثناء تنفيذ البرنامج [citation:8].
ltrace ./binary
تتبع المكتبات
ltrace -e malloc,free ./binary
فلترة دوال
المترجمات العكسية (Decompilers)
تحويل الكود الثنائي إلى كود عالي المستوىGhidra Decompiler
🔬 مترجم NSAمترجم عكسي متقدم من NSA. يحول لغة التجميع إلى كود C شبيه بالمصدر الأصلي. يدعم X86, ARM, PowerPC, MIPS وغيرها [citation:3][citation:8].
rz-ghidra
🧩 Ghidra + Rizinدمج محرك فك التجميع من Ghidra داخل إطار عمل Rizin. يضيف قدرات decompiler متقدمة إلى واجهة Rizin [citation:10].
rz-ghidra
تشغيل الوحدة
JADX
📱 DEX → Javaأداة قوية لفك تجميع تطبيقات أندرويد إلى كود Java قابل للقراءة. يدعم APK, DEX, JAR, وواجهة رسومية.
jadx-gui app.apk
فتح APK
jadx -d out/ app.apk
تصدير المصادر
مصادر تعلم الهندسة العكسية
CTF Platforms
كتب مرجعية
- Practical Binary Analysis
- The IDA Pro Book
- Reverse Engineering for Beginners
مجتمعات
⚠️ أخلاقيات الهندسة العكسية
الهندسة العكسية أداة قوية لتحليل البرمجيات واكتشاف الثغرات، ولكن يجب استخدامها بمسؤولية:
- تحليل البرمجيات الخاصة بك أو بإذن كتابي
- الإبلاغ عن الثغرات للمطورين بشكل مسؤول
- عدم كسر حماية البرامج التجارية (DRM/Cracks)
- احترام تراخيص البرمجيات وحقوق الملكية الفكرية
استخدم هذه الأدوات للتعلم، البحث الأمني، واكتشاف الثغرات - وليس للقرصنة أو السرقة.