Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Dna — إطار عمل تحليل ثنائي ثابت قائم على LLVM | Kitploit
أدوات/GitHubGitHub/colton1skees/dna
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالالهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubcolton1skees/dna

Dna

إطار عمل تحليل ثنائي ثابت قائم على LLVM

عرض المستودع
365345منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Dna

Dna هو إطار عمل لتحليل الثنائيات الساكنة (static binary analysis) مبني على LLVM. ومن الجدير بالذكر أنه مكتوب بالكامل تقريبًا بلغة C#، بما في ذلك روابط مُدارة لـ LLVM وRemill وSouper.

الوظائف

يطبّق Dna إعادة بناء متكررة لمخطط تدفق التحكم (control flow graph) مستوحاة بشكل كبير من ورقة SATURN. يطبّق بشكل متكرر النزول العودي (recursive descent)، والرفع (lifting) باستخدام remill، وحل المسارات حتى يتم استعادة مخطط تدفق التحكم الكامل. في حالة جداول القفز (jump tables)، نستخدم خوارزمية تعاودية مبنية على Souper وz3 لحل مجموعة الأهداف الممكنة لجداول القفز. يمكنك العثور على خوارزمية الاستكشاف المتكرر هنا، وخوارزمية حل جداول القفز هنا.

بمجرد استكشاف مخطط تدفق التحكم بالكامل، يمكن إعادة ترجمته إلى x86 وإعادة إدراجه في الثنائي باستخدام الخوارزميات من هنا وهنا. على الرغم من أن الكود المُترجم ليس جميلًا بأي حال من الأحوال، إلا أنه يجب أن يعمل طالما أن مخطط تدفق التحكم المستعاد صحيح. ومع ذلك، فإنه لا يزال نموذجًا أوليًا بحثيًا - فمن المتوقع وجود أخطاء وحالات حافة. قد يفشل استكشاف مخطط تدفق التحكم في حالة جداول القفز غير المحدودة أو التعليمات غير القابلة للرفع.

بعض الميزات البارزة الأخرى:

  • يدعم معظم جداول القفز، بما في ذلك جداول القفز المتداخلة أو ما يسمى بجداول القفز المضغوطة الخاصة بـ MSVC.
  • يدعم رفع الكود مع SEH إلى LLVM IR. عند وجود SEH، يتم إدراج عبارات try/catch والدوال الجوهرية filter في مخطط تدفق التحكم. على الرغم من أن المُعاد الترجمة لا يدعم (حتى الآن) SEH (لا يتم إصلاح إدخالات SEH)، لذا فإن الاستثناءات ستؤدي إلى تعطل البرنامج.
  • يتضمن واجهة برمجة تطبيقات قوية لكتابة تمريرات LLVM (LLVM passes) بلغة C# بشكل أصلي. لدينا روابط لـ MemorySSA وLoopInfo وأشجار الهيمنة وإدارة خط أنابيب التمريرات وما إلى ذلك.
  • تصور رسومي لـ LLVM IR ومخططات تدفق التحكم الثنائية باستخدام graphviz أو بدلاً من ذلك مولد نصوص برمجية لـ binary ninja.

بعض التحفظات:

  • يتم دعم x86_64 فقط
  • الكود المُعاد ترجمته غير متوافق مع CET

التبعيات

  • LLVM/LLVMSharp
  • Remill
  • Souper
  • AsmResolver
  • Rivers

لاحظ أن Dna يعتمد حاليًا على LLVM 17.

VMProtect

يحتوي Dna على مكوّن إضافي لإلغاء الظاهرية (devirtualization) لـ VMProtect موجود في Dna.BinaryTranslator/VMProtect. راجع هذا الطلب لمزيد من المعلومات.

البناء

يستهدف Dna حاليًا LLVM 17 ومن المتوقع بناؤه على Windows x64 مع Visual Studio 2022. قم ببناء Dna.LLVMInterop في وضع Release؛ إن شجرة التبعيات الأصلية مبنية بوضع Release ولا تُدعم عمليات البناء البينية (interop) بوضع Debug.

المتطلبات الأساسية

  • Visual Studio 2022 مع أدوات C++/MSBuild
  • CMake
  • Ninja
  • أدوات clang-cl / LLVM المتاحة من سلسلة أدوات VS
  • Rust/Cargo، من أجل DLL مبسّط EqSat
  • .NET SDK 8+

شغّل الأوامر أدناه من موجه أوامر مطور VS x64، أو من موجه آخر تتوفر فيه أدوات C++ الخاصة بـ VS على PATH.

1. بناء التبعيات الأصلية

يقوم البناء الفائق للتبعيات بتثبيت LLVM 17 وRemill وZ3 وXED وgflags/glog والمكتبات الأصلية ذات الصلة في Dna.LLVMInterop/dependencies/install.

root@kitploit:~
cmake -S Dna.LLVMInterop/dependencies `
      -B Dna.LLVMInterop/dependencies/build `
      -G Ninja `
      -DCMAKE_BUILD_TYPE=Release `
      -DCMAKE_C_COMPILER=clang-cl `
      -DCMAKE_CXX_COMPILER=clang-cl

cmake --build Dna.LLVMInterop/dependencies/build

إذا غيّرت المترجم أو نوع البناء أو إعدادات CRT، فاحذف كلاً من Dna.LLVMInterop/dependencies/build وDna.LLVMInterop/dependencies/install قبل إعادة الضبط.

2. بناء DLL المبسّط بلغة Rust

تقوم مشاريع Dna.Example والمبسّطات بنسخ eq_sat.dll من مخرجات Cargo بوضع Release.

root@kitploit:~
cargo build --manifest-path Simplifier/EqSat/Cargo.toml --release

3. بناء الحل

root@kitploit:~
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" `
  Dna.sln `
  /restore `
  /p:Configuration=Release `
  /p:Platform=x64 `
  /m
تنزيل الأداة