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

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

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

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

دليل الأدوات

الفئات

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

libunwind_CVE-2015-3239_After

مكتبة لفك تكديس استدعاءات المعالج، تدعم بنى معمارية وأنظمة تشغيل متعددة، مع تعليمات البناء والاختبار الانحداري.

الأكثر شعبية

عرض الكل →

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

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

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

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

-- 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). وبالتالي، يجب أن يبدو سطر configure كالتالي:

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"

تحذير: إلغاء الترجيع (unwinding) للثنائيات 32 بت (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 يشفر إزاحات المؤشر السابق-للحزمة (previous-stack-pointer-relative offsets) بشكل غير صحيح. تم إصلاح هذا الخطأ في 21-سبتمبر-2004 لذا أي مُجمّع أحدث سيكون جيداً.

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

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

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

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

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

root@kitploit:~
Gtest-dyn1		(لا يوجد دعم لمعلومات unwind الديناميكي بعد)
Ltest-dyn1		(لا يوجد دعم لمعلومات unwind الديناميكي بعد)
Gtest-init (انظر http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18743)
Ltest-init		(كذلك)
test-async-sig		(ينهار بسبب معلومات unwind سيئة؟)
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:

root@kitploit:~
Gtest-bt   (تتبع التكدس مقطوع عند kill() بسبب نقص معلومات unwind)
Ltest-bt   (كذلك)
Gtest-resume-sig  (Gresume.c:my_rt_sigreturn() خاطئ بطريقة ما)
Ltest-resume-sig  (كذلك)
Gtest-init (كذلك)
Ltest-init (كذلك)
Gtest-dyn1 (لا يوجد دعم لمعلومات unwind الديناميكي بعد)
Ltest-dyn1 (لا يوجد دعم لمعلومات unwind الديناميكي بعد)
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
تنزيل الأداة