
محلل بواجهة رسومية للتعمق في ملفات PDF. اكتشف الحمولات الخبيثة، وافهم علاقات الكائنات، واستخرج المعلومات الأساسية لتحليل التهديدات.
يتيح تحليل PDF التفاعلي (المعروف أيضًا باسم IPA) لأي باحث استكشاف التفاصيل الداخلية لأي ملف PDF. قد تُستخدم ملفات PDF لحمل حمولات خبيثة تستغل الثغرات الأمنية، ومشكلات برامج عرض PDF، أو قد تُستخدم في حملات التصيّد الاحتيالي كأدوات هندسة اجتماعية. الهدف من هذا البرنامج هو تمكين أي محلل من التعمق بنفسه في ملف PDF. عبر IPA، يمكنك استخراج الحمولات المهمة من ملفات PDF، وفهم العلاقات بين الكائنات، واستنتاج العناصر التي قد تكون مفيدة لفرز الحمولات الخبيثة أو غير الموثوقة.
الإلهام الرئيسي يعود إلى الأشخاص الرائعين وراء Zynamics، ومنتجهم الممتاز المسمى PDF dissector.
عندما بدأت في الهندسة العكسية للبرمجيات الخبيثة، كانت الأداة الرئيسية المتاحة لتحليل الحمولات الخبيثة تتكون من أدوات Didier Stevens الممتازة. بعد أن أصبحت معيارًا فعليًا، كان أحد المشاكل الرئيسية في هذه الأدوات هو أنها تُستخدم من سطر الأوامر، مما يتطلب تذكر مجموعة كبيرة جدًا من الأعلام، والإبلاغ عن أرقام الكائنات المختلفة. على الرغم من أن المحللين والمطورين يتعاملون مع جميع أنواع أدوات سطر الأوامر يوميًا، إلا أن هذا لا يعني أننا لا نستطيع إنشاء أداة رسومية جديدة لفحص الملفات.
في الواقع، يركز جزء من مجالات التحليل الساكن والهندسة العكسية أيضًا على كيفية عرض المعلومات الأكثر أهمية للمحلل من وجهة نظر تجربة المستخدم. أدوات Didier Stevens، وكذلك peepdf، مستخدمة بالفعل ومجربة جيدًا. ومع ذلك، يمكن للمحلل استخدام شيء رسومي ليتمكن من فهم العلاقة بين الكائنات المختلفة، وفهم الصفحات التي تشير إليها وأنواع الكائنات (الصور، الخطوط، الألوان، البيانات الوصفية)، وتصدير محتوى التدفقات بطريقة بسيطة، ورؤية محتوى القواميس في شكل جدول.
المصدر الرئيسي للإلهام يأتي من الأداة التي طورتها Zynamics المسماة PDF-dissector: الملاحظات الممتازة من بعض المستخدمين السابقين والطلبات المستمرة لإصدارها مفتوحة المصدر حفزتني لقضاء بضعة أيام في إنشاء هذه الأداة.
يمكن تجميع الأداة باستخدام Rust وcargo. لا توجد تبعيات مطلوبة بخلاف Rust والحزم المسحوبة.
git clone https://github.com/seekbytes/IPA
cd IPA
## compile with debug symbols, the binary is inside ./target/debug/IPA
cargo b
## compile in release mode, the binary is inside ./target/release IPA
cargo b --release
لدى IPA القيود التالية في الوقت الحالي:
في النهاية، يمكن تحسين الأداة حقًا وأراهن أن بعض الأشخاص سيلاحظون مدى سوء الكود الخاص بي. إذا كنت أحد هؤلاء، يرجى إخباري بالتحسينات المحتملة والأنماط الأفضل وأي اقتراح.
إذا واجهت أي مشاكل أو تحسينات، أو أردت فقط مراسلتي، راسلني على [email protected].