
خادم محلي لميزة IDA Lumina
إثبات مفهوم (POC) لخادم محلي لميزة IDA Lumina.
مزيد من التفاصيل على https://www.synacktiv.com/publications/investigating-ida-lumina-feature.html
قم بتنزيل المشروع وشغّل python lumina/setup.py (أو pip install .).
يمكن أيضًا استخدام الخادم كنص برمجي مستقل. ومع ذلك، لن يتم تسجيل الأمر lumina_server في PATH. سيتعين عليك تشغيله يدويًا باستخدام python3 lumina/lumina_server.py.
هذه الخطوة اختيارية إذا لم تكن بحاجة إلى استخدام TLS. سيتعين عليك حينها تعديل LUMINA_TLS = NO في ملف ida.cfg.
قم بتوليد شهادة ومفتاح ROOT CA جديدين باستخدام أحد السطرين التاليين
(يمكنك إزالة خيار -nodes لتعيين عبارة مرور، لكن ضع في اعتبارك أنك ستحتاج إلى تمرير وسيط عبارة المرور إلى نص الخادم البرمجي):
# sha256WithRSAEncryption
openssl req -nodes -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -sha256 -keyout luminaRootCAKey.pem -out luminaRootCAK.pem -days 365 -subj '/CN=www.fakerays.com/O=Fake Hexrays/C=XX'
# ecdsa-with-SHA256 (prime256v1)
openssl req -nodes -x509 -newkey rsa:4096 -sha512 -keyout luminaRootCAKey.pem -out luminaRootCA.pem -days 365 -subj '/CN=www.fakerays.com/O=Fake Hexrays/C=XX'
انسخ شهادة CA (luminaRootCA.pem) إلى دليل إعدادات IDA بالاسم hexrays.crt:
%APPDATA%\Hex-Rays\IDA Pro\hexrays.crt$HOME/.idapro/hexrays.crtمثال (لينكس): cp luminaRootCA.pem $HOME/.idapro/hexrays.crt
عدّل ملف إعدادات IDA (cfg/ida.cfg)، إما في دليل التثبيت أو في دليل المستخدم (موصى به):
%APPDATA%\Hex-Rays\IDA Pro\cfg\ida.cfg$HOME/.idapro/hexrays.crt// Lumina related parameters
LUMINA_HOST = "localhost"; // Lumina server url (default : "lumina.hex-rays.com")
// warning: keep the the semicolon
LUMINA_MIN_FUNC_SIZE = 32 // default function size : 32
LUMINA_PORT = 4443 // default port : 443
LUMINA_TLS = YES // enable TLS (default : YES)
الاستخدام:
usage: lumina_server [-h] [-i IP] [-p PORT] [-c CERT] [-k CERT_KEY]
[-l {NOTSET,DEBUG,INFO,WARNING}]
db
positional arguments:
db database file
optional arguments:
-h, --help show this help message and exit
-i IP, --ip IP listening ip address (default: 127.0.0.1
-p PORT, --port PORT listening port (default: 4443
-c CERT, --cert CERT proxy certfile (no cert means TLS OFF).
-k CERT_KEY, --key CERT_KEY
certificate private key
-l {NOTSET,DEBUG,INFO,WARNING}, --log {NOTSET,DEBUG,INFO,WARNING}
log level bases on python logging value (default:info)
مثال:
lumina_server db.json --cert luminaRootCA.pem --key luminaRootCAKey.pem --ip 127.0.0.1 --port 4443 --log DEBUG
ابدأ الخادم، ثم (أعد) تشغيل IDA مع قاعدة بيانات idb وادفع أول دالة لك باستخدام Lumina.
اضغط ctrl-c لإنهاء الخادم وحفظ قاعدة البيانات.
مهم: ضع في اعتبارك أن قاعدة البيانات تُحفظ أو تُحدَّث فقط عند إنهاء الخادم (ctrl-c).