Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
drltrace — Drltrace هو متتبع لاستدعاءات المكتبات لتطبيقات ويندوز ولينكس. | Kitploit
أدوات/GitHubGitHub/mxmssh/drltrace
التحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubmxmssh/drltrace

drltrace

Drltrace هو متتبع لاستدعاءات المكتبات لتطبيقات ويندوز ولينكس.

عرض المستودع
4197180منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Drltrace

Windows test build build status

Linux test build Build Status

Drltrace هي أداة تتبع ديناميكي لاستدعاءات واجهة برمجة التطبيقات (API) لتطبيقات ويندوز ولينكس. تم بناء Drltrace فوق إطار العمل الديناميكي للتعليمات الثنائية DynamoRIO. تم تنفيذ Drltrace في البداية بواسطة Derek Bruening وتم توزيعه مع أطر عمل DynamoRIO وDrMemory. يحتوي هذا المستودع على إصدار مستقل من drltrace مع نصوص إضافية ومواد حول كيفية استخدامه لتحليل البرامج الضارة. يمكن تنزيل الإصدار الجاهز هنا.

الاستخدام

استخدام drltrace بسيط جدًا. يحتاج المستخدم إلى تحديد دليل سجل واسم عملية مستهدفة بالطريقة التالية:

drltrace -logdir . -- calc.exe

هذا كل شيء، ستقوم الأداة بحقن ملفات DLL المطلوبة في العملية المستهدفة، وتبدأ التجهيز، وبالتوازي ستسجل معلومات حول جميع استدعاءات المكتبات التي يتم تنفيذها في العملية المستهدفة:

~~43600~~ msvcrt.dll!__wgetmainargs
    arg 0: 0x010d2364
    arg 1: 0x010d2368
    and return to module id:0, offset:0x193a
~~43600~~ ntdll.dll!EtwEventRegister
    arg 0: 0x002ff994
    arg 1: 0x010d1490
    and return to module id:0, offset:0x157e
~~43600~~ ntdll.dll!EtwEventSetInformation
    arg 0: 0x007b4b40
    arg 1: 0x00000033
    and return to module id:0, offset:0x15a1
~~43600~~ SHELL32.dll!ShellExecuteW
    arg 0: <null> (type=<unknown>, size=0x0)
    arg 1: <null> (type=wchar_t*, size=0x0)
    arg 2: calculator:// (type=wchar_t*, size=0x0)
    arg 3: <null> (type=wchar_t*, size=0x0)
    arg 4: <null> (type=wchar_t*, size=0x0)
    arg 5: 0x1 (type=int, size=0x4)
    and return to module id:0, offset:0x167d

تنسيق المخرجات بسيط ويمكن تحليله بسهولة بواسطة سكريبت خارجي:

~~[thread id]~~ [dll name]![api call name]
arg [arg #]: [value] (type=[Windows type name], size=[size of arg])
and return to module id:[module unique id], offset:[offset in memory]

يمكن إجراء التحليل باستخدام grep عند استخدام الوسيط -grepable؛ حيث يقوم بطباعة أسماء الدوال والوسائط كلها في سطر واحد:

~~4824~~ KERNELBASE.dll!CreateFileW {0: C:\Windows\Fonts\staticcache.dat (type=wchar_t*, size=0x0)} {1: 0x80000000 (type=DWORD, size=0x4)} {2: 0x3 (type=DWORD, size=0x4)} {3: 0x005cde8c (type=<unknown>*, size=0x0)} {4: 0x3 (type=DWORD, size=0x4)} {5: 0x80 (type=DWORD, size=0x4)}

يتم طباعة جدول المعرفات الفريدة للوحدات في نهاية ملف السجل:

Module Table: version 3, count 70
Columns: id, containing_id, start, end, entry, checksum, timestamp, path
  0,   0, 0x010d0000, 0x010da000, 0x010d1b80, 0x0000f752, 0xb5fe3575,  C:\Windows\SysWOW64\calc.exe
  1,   1, 0x6d4c0000, 0x6d621000, 0x6d563940, 0x00136d65, 0x59ce1b0b,  C:\Users\Max\Downloads\drltrace\drltrace\dynamorio\lib32\release\dynamorio.dll
  2,   2, 0x73800000, 0x73975000, 0x7380dbf7, 0x00000000, 0x59ce1b0f,  C:\Users\Max\Downloads\drltrace\drltrace\bin\release/drltracelib.dll
  3,   3, 0x742f0000, 0x742fa000, 0x742f2a00, 0x0000c877, 0x0adc52c1,  C:\Windows\System32\CRYPTBASE.dll
  4,   4, 0x74300000, 0x74320000, 0x7430c9b0, 0x0002c617, 0x245970b4,  C:\Windows\System32\SspiCli.dll
  5,   5, 0x74410000, 0x74431000, 0x74416900, 0x0002a940, 0x88a53c1d,  C:\Windows\System32\GDI32.dll
  6,   6, 0x74440000, 0x74500000, 0x7446fb20, 0x000cc410, 0xd343d532,  C:\Windows\System32\RPCRT4.dll
  7,   7, 0x74500000, 0x74525000, 0x745047d0, 0x00026737, 0xa39c8991,  C:\Windows\System32\IMM32.DLL
  8,   8, 0x74550000, 0x745c7000, 0x7456e8a0, 0x00081857, 0x73b971e1,  C:\Windows\System32\advapi32.dll
  9,   9, 0x748f0000, 0x74929000, 0x748febd0, 0x00045303, 0xa58be652,  C:\Windows\System32\cfgmgr32.dll
 10,  10, 0x74930000, 0x75c78000, 0x74aa09d0, 0x01377aa6, 0x4b39926b,  C:\Windows\System32\SHELL32.dll

يمكن لـ Drltrace تصفية استدعاءات المكتبات البينية بسهولة وطباعة استدعاءات API التي تتم من الوحدة الرئيسية (أو من الكومة) للتطبيق المستهدف فقط عن طريق تحديد الخيار -only_from_app، وهو مفيد جدًا في حالة التطبيقات التي تولد سجلات ضخمة. للتحكم الدقيق، يسمح الخيار -filter للمستخدم بتحديد ملف تكوين للتصفية بهدف تضمين دوال معينة في القائمة البيضاء، أو تجاهل دوال في القائمة السوداء (انظر ملف filter.config للأمثلة). يحتوي Drltrace أيضًا على عدة نصوص خارجية مفيدة لتصفية استدعاءات API لمكتبة معينة، وطباعة استدعاءات API والسلاسل التي قد تكون مثيرة للاهتمام فقط.

الترخيص

الوحدات الرئيسية لـ Drltrace موزعة تحت رخصة BSD.

بعض الملفات المطلوبة لـ drltrace موزعة تحت رخصة LGPL. راجع ملفات المصدر لمزيد من التفاصيل.

الدافع

تحليل البرامج الضارة ليس مهمة سهلة. أدوات التغليف البرمجية المتطورة مثل Themida وArmadillo، وبالطبع العشرات من أدوات التغليف غير المسماة التي يكتبها مؤلفو البرامج الضارة بالإضافة إلى تشفير الكود والبيانات، تسهل بشكل كبير (وفي بعض الحالات تجعله مستحيلًا تمامًا) الهندسة العكسية الثابتة لهذه العينات، مما يجعل حياة محللي البرامج الضارة معقدة. في هذه الحالة، يمكن لتتبع استدعاءات API أن يقلل بشكل كبير من الوقت المطلوب لفهم النية الضارة الفعلية ويكشف عن الكثير من التفاصيل التقنية حول الكود الضار المحمي.

في حين تم تنفيذ التقنية التقليدية لـ API-hooking بنجاح في عدة حلول، إلا أن هذا النهج تمت دراسته جيدًا من قبل مؤلفي البرامج الضارة ويمكن اكتشافه و/أو تجاوزه بسهولة. علاوة على ذلك، يتم توزيع هذه الأدوات كتطبيقات واجهة مستخدم رسومية مستقلة وثقيلة (كمنتجات مملوكة) والتي غالبًا ما يصعب دمجها في سير عمل تحليل البرامج الضارة الحالي.

إذا نظرنا إلى عالم لينكس، هناك أداة رائعة تسمى ltrace. باستخدام أمر bash واحد، يمكننا بسهولة الحصول على التتبع الكامل لاستدعاءات API لملف تنفيذي معين.

لماذا لا نملك مثل هذه الأداة (مثل ltrace في لينكس) لنظام ويندوز تكون أيضًا شفافة تجاه تقنيات مكافحة البحث التي يستخدمها البرامج الضارة الحديثة؟

اتضح أن هناك تقنية يمكن أن تساعدنا في الحصول على مثل هذه الأداة لنظام ويندوز وتتبع استدعاءات API بشفافية تجاه البرنامج المنفذ. تسمى هذه التقنية التعليمات الثنائية الديناميكية (Dynamic Binary Instrumentation) أو DBI. DBI هي تقنية لتحليل سلوك تطبيق ثنائي في وقت التشغيل من خلال حقن كود التجهيز.

ومع ذلك، فإن تطبيق DBI لتحليل البرامج الضارة محدود بشكل غير مستحق بأتمتة فك التغليف والعديد من البراهين على المفهوم لتتبع التعليمات والكتل الأساسية واستدعاءات الدوال. على حد علمنا، drltrace هي أول أداة لتتبع استدعاءات API تعتمد على DBI يمكن استخدامها عمليًا لتحليل البرامج الضارة. قدمنا عدة أمثلة لتحليل البرامج الضارة في ويكي الخاصة بنا حيث وصفنا كيف سمح drltrace بالكشف في بضع دقائق عن الكثير من التفاصيل التقنية الداخلية حول عينات ضارة معقدة دون حتى بدء IDA أو مصحح الأخطاء.

لماذا Drltrace رائع؟

  • سريع بما يكفي لإجراء تحليل للعينات الضارة دون أن يتم اكتشافه بواسطة تقنيات مكافحة البحث القائمة على الوقت.
  • يدعم كل من x86 و x64 (ARM في المستقبل).
  • يدعم كلاً من ويندوز ولينكس (macOS في المستقبل).
  • يدعم الكود ذاتي التعديل.
  • يدعم جميع أنواع الربط المكتبي (الثابت والديناميكي).
  • غير قابل للاكتشاف بواسطة أساليب مكافحة البحث القياسية (مكافحة الربط، مكافحة التصحيح، ومكافحة المحاكاة).
  • يمكن للمستخدم بسهولة إضافة نموذج دالة جديد لإخبار drltrace بكيفية طباعة المزيد من التفاصيل حول استدعاءات API غير المعروفة سابقًا (حتى بالنسبة لملفات DLL غير النظامية). يتم استخدام ملف تكوين خارجي.
  • سهل الاستخدام والتعديل لأغراضك الخاصة (لا توجد متطلبات حزمة إضافية، ولا واجهة مستخدم رسومية ثقيلة).
  • مفتوح المصدر، الكود واضح وموثق جيدًا. يمكنك بحرية بناء واستخدام الحل المتقدم الخاص بك فوق drltrace.
تنزيل الأداة