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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
libdlmalloc — أدوات تحليل الكومة لـ dlmalloc | Kitploit
أدوات/GitHubGitHub/nccgroup/libdlmalloc
أمان الأنظمة المدمجةتحليل الذاكرة الجنائيالهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائية
GitHubnccgroup/libdlmalloc

libdlmalloc

أدوات تحليل الكومة لـ dlmalloc

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

الأكثر شعبية

عرض الكل →

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

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

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

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

libdlmalloc

libdlmalloc هو سكربت بلغة بايثون مصمم للاستخدام مع GDB ويمكن استخدامه لتحليل مُخصِّص الذاكرة دوج ليا، المعروف باسم dlmalloc. وهو يدعم حاليًا إصدارات dlmalloc 2.8.x. لاحظ أن بعض الأجزاء يمكن استخدامها أيضًا بشكل مستقل عن GDB، على سبيل المثال لإجراء تحليل دون اتصال لبعض ذاكرة الكومة الملتقطة.

استلهم libdlmalloc من سكربتات GDB الأخرى المكتوبة بلغة بايثون لتحليل الكومات مثل libtalloc، وunmask_jemalloc، وlibheap. بعض الوظائف الأساسية متطابقة تقريبًا مع هذه المشاريع.

الإصدارات المدعومة

اختُبر libdlmalloc بشكل أساسي على أجهزة Cisco ASA ذات 32 بت و64 بت التي تستخدم dlmalloc 2.8.3. يجب أن يعمل مع إصدارات 2.8.x الأخرى، ولكن نظرًا للاختلافات الكبيرة لن يعمل مع الإصدارات الأقدم، مثل <= 2.7.x.

إذا نجحتَ في اختبار libdlmalloc على إصدار معين من 2.8.x أو جهاز معين، فيُرجى إخبار المؤلفين وسنقوم بتحديث المستندات.

التثبيت

يتطلب السكربت فقط إصدارًا حديثًا نسبيًا من GDB مع دعم python3. اختبرنا بشكل أساسي على python3، لذا نتوقع أن يتعطل على python2.7 حاليًا.

إذا كنت تريد استخدام أوامر gdb، يمكنك استخدام:``` (gdb) source libdlmalloc_28x.py

تم تقسيم جزء كبير من المنطق الأساسي إلى فئة `dl_helper`، والتي تتيح لك
استيراد libdlmalloc مباشرةً والوصول إلى بعض البنى المهمة
خارج جلسة GDB. وهذا مفيد إذا كنت تريد تحليل
لقطات chunk/heap دون اتصال.

# الاستخدام

معظم الوظائف منمذجة على النهج المتبع في unmask_jemalloc
وlibtalloc حيث يتم توفير أمر GDB منفصل. ومع ذلك، نستخدم أيضًا
عددًا لا بأس به من الخيارات.

لعرض قائمة كاملة بالأوامر المدعومة حاليًا، يمكنك استخدام
الأمر `dlhelp`:

## dlhelp

هذه هي الوظيفة الرئيسية لعرض الأوامر المتاحة. يدعم كل أمر
من الأوامر خيار `-h` الذي يسمح لك بالحصول على تعليمات استخدام
أكثر تفصيلًا.```
(gdb) dlhelp
[libdlmalloc] dlmalloc commands for gdb
[libdlmalloc] dlchunk    : show one or more chunks metadata and contents
[libdlmalloc] dlmstate   : print mstate structure information. caches address after first use
[libdlmalloc] dlcallback : register a callback or query/modify callback status
[libdlmalloc] dlhelp     : this help message
[libdlmalloc] NOTE: Pass -h to any of these commands for more extensive usage. Eg: dlchunk -h

تحليل القطع

يمكن لـ dlchunk أن يوفّر لك ملخصًا لقطعة، أو معلومات أكثر تفصيلًا عن كل حقل. كما يمكنك استخدامه لعرض معلومات عن قطع متعددة، والبحث عن القطع، وما إلى ذلك. يمكن الاطلاع على استخدام dlchunk أدناه:``` (gdb) dlchunk -h [libdlmalloc] usage: dlchunk [-v] [-f] [-x] [-c ] [libdlmalloc] a dlmalloc chunk header [libdlmalloc] -v use verbose output (multiples for more verbosity) [libdlmalloc] -f use explicitly, rather than be smart [libdlmalloc] -x hexdump the chunk contents [libdlmalloc] -m max bytes to dump with -x [libdlmalloc] -c number of chunks to print [libdlmalloc] -s search pattern when print chunks [libdlmalloc] --depth depth to search inside chunk [libdlmalloc] -d debug and force printing stuff [libdlmalloc] Flag legend: C=CINUSE, P=PINUSE

يبدو الإخراج الأساسي كما يلي:```
(gdb) dlchunk 0xacff59d0
0xacff59d0 M sz:0x000f8 fl:CP

كما ترى، تريد أن تعطيه عنوان بيانات تعريف dlmalloc الفعلية نفسها. للحصول على مخرجات أكثر تفصيلاً، يمكنك استخدام -v.``` (gdb) dlchunk -v 0xacff59d0 struct malloc_chunk @ 0xacff59d0 { prev_foot = 0x8140d4d0 size = 0xf8 (CINUSE|PINUSE)

يمكنك أيضًا سرد عدة أجزاء متجاورة باستخدام الخيار `-c <count>`.```
(gdb) dlchunk -c 2 0xacff59d0
0xacff59d0 M sz:0x000f8 fl:CP
0xacff5ac8 M sz:0x00270 fl:CP
(gdb) dlchunk -v -c 2 0xacff59d0
struct malloc_chunk @ 0xacff59d0 {
prev_foot   = 0x8140d4d0
size        = 0xf8 (CINUSE|PINUSE)
--
struct malloc_chunk @ 0xacff5ac8 {
prev_foot   = 0x8140d4d0
size        = 0x270 (CINUSE|PINUSE)

يمكنك تفريغ المحتويات السداسية العشرية لكتلة باستخدام -x والتحكم في عدد البايتات التي تريد تفريغها باستخدام -m.``` (gdb) dlchunk -v -x -m 16 -c 2 0xacff59d0 struct malloc_chunk @ 0xacff59d0 { prev_foot = 0x8140d4d0 size = 0xf8 (CINUSE|PINUSE) 0x10 bytes of chunk data: 0xacff59d8: 0xa11c0123 0x000000cc 0x00000000 0x00000000

struct malloc_chunk @ 0xacff5ac8 { prev_foot = 0x8140d4d0 size = 0x270 (CINUSE|PINUSE) 0x10 bytes of chunk data: 0xacff5ad0: 0xa11c0123 0x00000244 0x00000000 0x00000000

يمكنك أيضًا البحث داخل الأجزاء. لنبحث في جزأين عن القيمة `0x00000244`، والتي نرى أعلاه أنها موجودة فقط في الجزء الثاني.```
(gdb) dlchunk -s 0x00000244 -c 2 0xacff59d0
0xacff59d0 M sz:0x000f8 fl:CP [NO MATCH]
0xacff5ac8 M sz:0x00270 fl:CP [MATCH]

سيتم عرض جميع التطابقات داخل عدد الأجزاء التي تم البحث فيها. دعنا نبحث عن 0xa11c01123 الذي رأينا أعلاه أنه موجود في كلا الجزأين:``` (gdb) dlchunk -s 0xa11c0123 -c 2 0xacff59d0 0xacff59d0 M sz:0x000f8 fl:CP [MATCH] 0xacff5ac8 M sz:0x00270 fl:CP [MATCH]

## dlmstate
تنزيل الأداة