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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
libunwind_CVE-2015-3239 — مكتبة متعددة المعماريات لفك تكديس استدعاءات البرنامج، مما يتيح التصحيح منخفض المستوى، وتحليل الأعطال، وأبحاث الأمان عبر أنظمة لينكس، فري بي إس دي، وHP-UX. | Kitploit
أدوات/GitHubGitHub/renukaselvar/libunwind_cve-2015-3239
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائية
GitHubrenukaselvar/libunwind_cve-2015-3239

libunwind_CVE-2015-3239

مكتبة متعددة المعماريات لفك تكديس استدعاءات البرنامج، مما يتيح التصحيح منخفض المستوى، وتحليل الأعطال، وأبحاث الأمان عبر أنظمة لينكس، فري بي إس دي، وHP-UX.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد

-- mode: Outline --

هذه هي الإصدارة 1.0 من مكتبة unwind. تدعم هذه المكتبة عدة مجموعات من المعماريات/أنظمة التشغيل:

Linux/x86-64: تعمل بشكل جيد. Linux/x86: تعمل بشكل جيد. Linux/ARM: تعمل بشكل جيد. Linux/IA-64: تم اختبارها ودعمها بالكامل. Linux/PARISC: تعمل بشكل جيد، لكن مكتبة C تفتقر إلى unwind-info. HP-UX/IA-64: تعمل في الغالب ولكن من المعروف أن بها بعض القيود الخطيرة. Linux/AArch64: مضافة حديثاً. Linux/PPC64: مضافة حديثاً. Linux/SuperH: مضافة حديثاً. FreeBSD/i386: مضافة حديثاً. FreeBSD/x86-64: مضافة حديثاً (تُعرف معمارية FreeBSD باسم amd64).

  • تعليمات البناء العامة

بشكل عام، يمكن بناء هذه المكتبة وتثبيتها باستخدام الأوامر التالية:

root@kitploit:~
$ autoreconf -i # مطلوب فقط للبناء من git. يعتمد على libtool.
$ ./configure
$ make
$ make install prefix=PREFIX

حيث PREFIX هو بادئة التثبيت. بشكل افتراضي، تُستخدم بادئة /usr/local، بحيث يتم تثبيت libunwind.a في /usr/local/lib ويتم تثبيت unwind.h في /usr/local/include. للاختبار، قد ترغب في استخدام بادئة /usr/local بدلاً من ذلك.

  • البناء باستخدام مترجم Intel

** الإصدارة 8 وما بعدها

بدءاً من الإصدارة 8، الاسم المفضل لمترجم Intel IA-64 هو "icc" (نفس الاسم على x86). لذلك، يجب أن يبدو سطر التهيئة كالتالي:

root@kitploit:~
$ ./configure CC=icc CFLAGS="-g -O3 -ip" CXX=icc CCAS=gcc CCASFLAGS=-g \
	LDFLAGS="-L$PWD/src/.libs"
  • البناء على HP-UX

في الوقت الحالي، يجب بناء libunwind باستخدام GCC على HP-UX.

يجب تهيئة وتثبيت libunwind على HP-UX كما يلي:

root@kitploit:~
$ ./configure CFLAGS="-g -O2 -mlp64" CXXFLAGS="-g -O2 -mlp64"

ملاحظة: فك اللف لثنائيات 32-bit (ILP32) غير مدعوم حالياً.

** حل مؤقت للإصدارات الأقدم من GCC

يأتي GCC v3.0 و GCC v3.2 مع إصدارة سيئة من sys/types.h. الحل المؤقت هو تنفيذ الأوامر التالية قبل تشغيل "configure":

root@kitploit:~
$ mkdir $top_dir/include/sys
$ cp /usr/include/sys/types.h $top_dir/include/sys

تم إصلاح GCC v3.3.2 أو أحدث ولا يتطلب هذا الحل المؤقت.

  • البناء لـ PowerPC64 / Linux

للبناء لـ power64 يجب استخدام:

$ ./configure CFLAGS="-g -O2 -m64" CXXFLAGS="-g -O2 -m64"

إذا كان المعالج الخاص بك يدعم سجلات altivec: $ ./configure CFLAGS="-g -O2 -m64 -maltivec" CXXFLAGS="-g -O2 -m64 -maltivec"

للتحقق مما إذا كان المعالج لديك يدعم السجلات المتجهة (altivec): cat /proc/cpuinfo | grep altivec ويجب أن تحصل على شيء مثل هذا: cpu : PPC970, altivec supported

إذا بدا أن libunwind لا يعمل (فشل تتبع المكدس)، فحاول ترجمته باستخدام -O0، بدون تحسينات. هناك بعض مشكلات المترجم اعتماداً على إصدارة gcc الخاصة بك.

  • البناء على FreeBSD

تنطبق تعليمات البناء العامة. لبناء وتنفيذ عدة اختبارات، تحتاج إلى مكتبة libexecinfo المتاحة في المنافذ (ports) كـ devel/libexecinfo.

تم تطوير المنفذ على FreeBSD 8.0-STABLE. تم بناء المكتبة باستخدام مترجم النظام وهو نسخة معدلة من gcc 4.2.1، وكذلك gcc 4.4.3.

  • اختبارات الانحدار (Regression Testing)

بعد بناء المكتبة، يمكنك تشغيل مجموعة من اختبارات الانحدار باستخدام:

root@kitploit:~
$ make check

** النتائج المتوقعة على IA-64 Linux

ما لم يكن لديك مكتبة C ومترجم حديثان جداً، فمن المتوقع حالياً فشل الاختبارات التالية على IA-64 Linux:

root@kitploit:~
Gtest-init		(يجب أن ينجح بدءاً من glibc-2.3.x/gcc-3.4)
Ltest-init		(يجب أن ينجح بدءاً من glibc-2.3.x/gcc-3.4)
test-ptrace		(يجب أن ينجح بدءاً من glibc-2.3.x/gcc-3.4)
run-ia64-test-dyn1	(يجب أن ينجح بدءاً من glibc-2.3.x)

هذا لا يعني أنه لا يمكن استخدام libunwind مع مترجمين أو مكتبات C أقدم، بل يعني فقط أنه في حالات معينة (زوايا)، سيفشل فك اللف. نظراً لأنها حالات زاوية، فمن غير المحتمل أن تطلقها التطبيقات.

ملاحظة: إذا حصلت على الكثير من الأخطاء في Gia64-test-nat و Lia64-test-nat، فهذه علامة شبه مؤكدة على وجود assembler قديم. كان GNU assembler يرمز للإزاحات السابقة للمؤشر-إلى-المكدس بشكل غير صحيح. تم إصلاح هذا الخلل في 21-Sep-2004 لذا فإن أي assembler لاحق سيكون جيداً.

** النتائج المتوقعة على x86 Linux

من المتوقع فشل الاختبارات التالية على x86 Linux:

root@kitploit:~
Gtest-resume-sig	(يفشل في الحصول على SIGUSR2)
Ltest-resume-sig	(نفس الشيء)
Gtest-dyn1		(لا يوجد دعم لمعلومات اللف الديناميكي بعد)
Ltest-dyn1		(لا يوجد دعم لمعلومات اللف الديناميكي بعد)
test-setjmp		(longjmp() لم يتم تنفيذه بعد)
run-check-namespace	(لا يوجد _Ux86_getcontext بعد)
test-ptrace

** النتائج المتوقعة على x86-64 Linux

من المتوقع فشل الاختبارات التالية على x86-64 Linux:

root@kitploit:~
Gtest-dyn1		(لا يوجد دعم لمعلومات اللف الديناميكي بعد)
Ltest-dyn1		(لا يوجد دعم لمعلومات اللف الديناميكي بعد)
Gtest-init (انظر http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18743)
Ltest-init		(نفس الشيء)
test-async-sig		(يتعطل بسبب معلومات unwinding سيئة؟)
test-setjmp		(longjmp() لم يتم تنفيذه بعد)
run-check-namespace	(لا يوجد _Ux86_64_getcontext بعد)
run-ptrace-mapper	(??? استقصاء)
run-ptrace-misc	(انظر http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18748
		 و http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18749)

** النتائج المتوقعة على PARISC Linux

ملاحظة: GCC v3.4 أو أحدث مطلوب على PA-RISC Linux. فشلت الإصدارات الأقدم من المترجم في إنشاء رأس البرنامج لمعالجة الاستثناءات (GNU_EH_FRAME) المطلوب لفك اللف.

من المتوقع فشل الاختبارات التالية على x86-64 Linux (خطأ في النص الأصلي: PARISC):

root@kitploit:~
Gtest-bt   (اقتطاع التتبع الخلفي عند kill() بسبب نقص unwind-info)
Ltest-bt   (نفس الشيء)
Gtest-resume-sig  (Gresume.c:my_rt_sigreturn() خاطئ بطريقة ما)
Ltest-resume-sig  (نفس الشيء)
Gtest-init (نفس الشيء)
Ltest-init (نفس الشيء)
Gtest-dyn1 (لا يوجد دعم لمعلومات اللف الديناميكي بعد)
Ltest-dyn1 (لا يوجد دعم لمعلومات اللف الديناميكي بعد)
test-setjmp		(longjmp() لم يتم تنفيذه بعد)
run-check-namespace	(سلسلة الأدوات لا تدعم HIDDEN بعد)

** النتائج المتوقعة على HP-UX

"make check" غير مدعوم حالياً على HP-UX. يمكنك محاولة تشغيله، لكن معظم الاختبارات ستفشل (وبعضها قد يفشل في الإنهاء). برامج الاختبار الوحيدة المعروفة بأنها تعمل في هذا الوقت هي:

root@kitploit:~
 tests/bt
 tests/Gperf-simple
 tests/test-proc-info
 tests/test-static-link
 tests/Gtest-init
 tests/Ltest-init
 tests/Gtest-resume-sig
 tests/Ltest-resume-sig

** النتائج المتوقعة على PPC64 Linux

يجب أن يعمل "make check" مع فشل لا يزيد عن 10 من أصل 24 اختباراً.

  • اختبار الأداء

يتضمن هذا التوزيع عدداً قليلاً من اختبارات الأداء البسيطة التي تعطي فكرة عن التكلفة الأساسية لعمليات libunwind المختلفة. بعد بناء المكتبة، يمكنك تشغيل هذه الاختبارات باستخدام الأوامر التالية:

$ cd tests $ make perf

  • الاتصال بالمطورين

يرجى توجيه جميع الأسئلة المتعلقة بهذه المكتبة إلى:

root@kitploit:~
[email protected]

يمكنك فعل ذلك عن طريق إرسال بريد إلكتروني إلى [email protected] مع نص:

root@kitploit:~
subscribe libunwind-devel

أو يمكنك الاشتراك وإدارة اشتراكك عبر واجهة الويب على:

root@kitploit:~
https://savannah.nongnu.org/mail/?group=libunwind
تنزيل الأداة