
أداة تحليل ثنائي (binary) عابرة للمنصات، ذات طابع شقي، مكتوبة بلغة Rust.

يتطلب Goblin rustc 1.85.0 (إصدار Rust 2024).
أضف إلى ملف Cargo.toml الخاص بك:
[dependencies]
goblin = "0.10"
يهدف libgoblin إلى أن يكون محطتك الوحيدة لتحليل وتحميل وتحليل الثنائيات.
يدعم Goblin بشكل أساسي حالات الاستخدام الهامة التالية:
أساسي، خالٍ من std، بنيات #[repr(C)]، وقت ترجمة صغير، 32/64 (أو كليهما) كما تشاء.
التلاعب بالأنواع (Type punning). حدد دالة مرة واحدة على نوع، ولكنها تعمل على متغيرات 32 أو 64 بت - دون تغيير أي شيء حقًا، وبدون ماكرو! انظر examples/automagic.rs لمثال أساسي.
وضع std. يضيف هذا تطبيقات القراءة والكتابة عبر Pread و Pwrite، والقراءة من ملف، والتخصيصات المريحة، وطرق إضافية، إلخ. هذا للعملاء الذين يمكنهم التخصيص ويريدون قراءة الثنائيات من القرص.
Endian_fd. اسم فظيع حقًا 😆 هذا لتحليل الثنائيات كما في panopticon أو falcon الذي يحتاج إلى قراءة ثنائيات ذات ترتيب بايت أجنبي، أو كأساس لبناء أدوات ثنائية متعددة المنصات والهندسات المعمارية، على سبيل المثال cargo-sym و bingrep أمثلة بسيطة على ذلك، لكن الحدود هي السماء.
إليك بعض الأشياء التي يمكنك القيام بها باستخدام هذا الـ crate (أو المساعدة في تنفيذها لتتمكن من القيام بها):
Pwrite مشتق).no_std cfg. أي أنها في الأساس مجرد تعريفات بنية وثوابت (مثل رأس C) - لا fd، لا مخرجات، لا std.صمم libgoblin ليكون قابلاً للتكوين بشكل كبير. الأعلام الحالية هي:
repr(C)repr(C)repr(C) لـ mach-o ذات 64 بتrepr(C) لـ mach-o ذات 32 بتrepr(C) لـ PE ذات 32 بتrepr(C) لـ PE ذات 64 بتrepr(C) لـ Terse Executable (TE)no_stdالمشرفون هم المراجعون الأساسيون للنهاية الخلفية المعينة. يتم اختيارهم بناءً على المساهمات السابقة، النشاط، المعرفة الأساسية، والسلوك الودي والاجتماعي :D
حاليًا، أنا (@m4b) فقط لدي صلاحيات الدمج لجميع طلبات السحب (PRs). في المستقبل من المحتمل أن يكون للمشرف (أو المشرفين) على تلك النهاية الخلفية صلاحيات الدمج أيضًا.
أخيرًا، سأظل على الأرجح أقدم مراجعات سريعة لجميع طلبات السحب، لكن سأعتمد في الغالب/بالكامل على المشرف لتلك النهاية الخلفية.
وتذكر دائمًا حكمة بيل وتيد: "كونوا ممتازين مع بعضكم البعض!"
شكرًا لكم جميعًا ❤️ !
بترتيب معجمي:
ما لم يُنص صراحةً على خلاف ذلك، فإنك توافق على أن مساهماتك مرخصة كما هو موصوف في ملف LICENSE المرفق (MIT).