
idahunt هو إطار عمل لتحليل الثنائيات باستخدام IDA Pro والبحث عن الأشياء في IDA Pro

idahunt هو إطار عمل لتحليل الملفات الثنائية باستخدام IDA Pro والبحث عن الأشياء داخل IDA Pro. إنها أداة سطر أوامر لتحليل جميع الملفات القابلة للتنفيذ بشكل متكرر من مجلد معين. يقوم بتنفيذ IDA في الخلفية حتى لا تضطر إلى فتح كل ملف يدويًا. وهو يدعم تنفيذ سكربتات IDA Python الخارجية.
تشمل الأمثلة المفيدة (قائمة غير حصرية):
إمكانيات سكربتات IDA Python غير محدودة. يمكنك استيراد أي سكربت IDA Python موجود أو بناء سكربت خاص بك. بعض الأمثلة:
idahunt.py: الأداة الرئيسية لتحليل الملفات القابلة للتنفيذfilters/: يحتوي على عوامل تصفية أساسية لتحديد الملفات التي سيتم تحليلها باستخدام IDA في مجلد الإدخال
filters/default.py: عامل التصفية الأساسي الافتراضي الذي لا يقوم بتصفية أي شيء ويُستخدم افتراضيًاfilters/ciscoasa.py: مفيد لتحليل صور Cisco ASA Firewallfilters/hpilo.py: مفيد لتحليل صور HP iLOfilters/names.py: عامل تصفية أساسي يعتمد على الاسم أو طول الاسم أو الامتدادscript_template.py: يحتوي على سكربت IDA Python بصيغة hello worldC:\idahunt> C:\Python37-x64\python.exe .\idahunt.py -h
usage: idahunt.py [-h] [--inputdir INPUTDIR] [--analyse] [--open]
[--ida-args IDA_ARGS] [--scripts SCRIPTS [SCRIPTS ...]]
[--filter FILTER] [--cleanup] [--temp-cleanup] [--verbose]
[--max-ida MAX_IDA] [--list-only] [--version IDA_VERSION]
optional arguments:
-h, --help show this help message and exit
--inputdir INPUTDIR Input folder to search for files
--analyse, --analyze analyse all files i.e. create .idb for all of them
--open open all files into IDA (debug only)
--ida-args IDA_ARGS Additional arguments to pass to IDA (e.g.
-p<processor> -i<entry_point> -b<load_addr>)
--scripts SCRIPTS [SCRIPTS ...]
List of IDA Python scripts to execute in this order
--filter FILTER External python script with optional arguments
defining a filter for the names of the files to
analyse. See filters/names.py for example
--cleanup Cleanup i.e. remove .asm files that we don't need
--temp-cleanup Cleanup temporary database files i.e. remove .id0,
.id1, .id2, .nam, .dmp files if IDA Pro crashed and
did not delete them
--verbose be more verbose to debug script
--max-ida MAX_IDA Maximum number of instances of IDA to run at a time
(default: 10)
--list-only List only what files would be handled without
executing IDA
--version IDA_VERSION
Override IDA version (e.g. "7.5"). This is used to
find the path of IDA on Windows.
يمكنك استخدام --list-only مع أي سطر أوامر لمجرد عرض ما ستفعله الأداة دون تنفيذه فعليًا.
C:\idahunt>idahunt.py --inputdir C:\re --analyse --filter "filters\names.py -a 32 -v" --list-only
[idahunt] Simulating only...
[idahunt] ANALYSING FILES
[idahunt] Analysing C:\re\cves\cve-2014-4076.dll
[idahunt] Analysing C:\re\cves\cve-2014-4076.exe
[idahunt] Analysing C:\re\DownloadExecute.exe
[idahunt] Analysing C:\re\ReverseShell.exe
هنا نبدأ تحليلًا أوليًا. يستغرق الانتهاء بضع ثوانٍ:
C:\idahunt>idahunt.py --inputdir C:\re --analyse --filter "filters\names.py -a 32 -v"
[idahunt] ANALYSING FILES
[idahunt] Analysing C:\re\cves\cve-2014-4076.dll
[idahunt] Analysing C:\re\cves\cve-2014-4076.exe
[idahunt] Analysing C:\re\DownloadExecute.exe
[idahunt] Analysing C:\re\ReverseShell.exe
[idahunt] Waiting on remaining 4 IDA instances
هنا نقوم بتنظيف ملفات .asm المؤقتة التي أنشأها التحليل الأولي:
C:\idahunt>idahunt.py --inputdir C:\re --cleanup
[idahunt] Deleting C:\re\cves\cve-2014-4076.asm
[idahunt] Deleting C:\re\DownloadExecute.asm
[idahunt] Deleting C:\re\ReverseShell.asm
يمكننا رؤية ملفات .idb المولّدة بالإضافة إلى بعض ملفات .log التي تحتوي على نافذة مخرجات IDA Pro.
C:\idahunt>tree /f C:\re
Folder PATH listing
Volume serial number is XXXX-XXXX
C:\RE
│ DownloadExecute.exe
│ DownloadExecute.idb
│ DownloadExecute.log
│ ReverseShell.exe
│ ReverseShell.idb
│ ReverseShell.log
│
└───cves
cve-2014-4076.dll
cve-2014-4076.exe
cve-2014-4076.idb
cve-2014-4076.log
هنا ننفّذ سكربت IDA Python أساسي يطبع [script_template] I execute in IDA, yay! في نافذة مخرجات IDA Pro.
C:\idahunt>idahunt.py --inputdir C:\re --filter "filters\names.py -a 32 -v" --scripts C:\idahunt\script_template.py
[idahunt] EXECUTE SCRIPTS
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\cves\cve-2014-4076.dll
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\cves\cve-2014-4076.exe
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\DownloadExecute.exe
[idahunt] Executing script C:\idahunt\script_template.py for C:\re\ReverseShell.exe
[idahunt] Waiting on remaining 4 IDA instances
وبما أنه محفوظ في ملف .log، يمكننا التحقق من أنه نُفذ بنجاح:
Autoanalysis subsystem has been initialized.
Database for file 'ReverseShell.exe' has been loaded.
Compiling file 'C:\Program Files (x86)\IDA 6.95\idc\ida.idc'...
Executing function 'main'...
[script_template] I execute in IDA, yay!
يتكامل idahunt بشكل رائع مع diaphora لإجراء المقارنة الثنائية منذ هذا PR.
تحتاج إلى تسلسل هرمي من المجلدات يحتوي على إصدارات مختلفة من نفس اسم الملف، على سبيل المثال:
C:\> tree C:\tests\ /F
C:\tests
├───patch
│ tm.sys
│
└───vuln
tm.sys