重新定位我的idb注释以正确映射到exe似乎花费的时间比应该花费的时间长。我目前正在通过将一个idb与一个内存快照进行比较来进行静态分析,因为重定位时间似乎不值得等待。我认为这可能会造成不必要的工作,因为我必须手动将注释从单个模块idb复制到快照idb。
我想知道是否可以更改IDA的使用方式加快搬迁速度。考虑到数据库和exe的大小,我不知道应该花多长时间。
idb: ~133 Mb
exe: ~650 Mb Size taken from task manager
relocation time: ~15+ minutes
这是开放式的。我想我正在寻找调试器设置,隐藏的注释性能命中数等。如果这是正常情况,我将尝试调整调试实践,以最大程度地利用会话。
#1 楼
如果问题是IDA在调试时需要花费时间来重新建立IDB的基础,那么一些可能的解决方案:基地址(与IDB相同的基地址)优点:对于主要可执行文件效果很好更改文件。
如何:从
IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
删除IMAGE_NT_HEADERS.OptionalHeader.DllCharacteristics
(0x40)。[危险]禁用整个ASLR系统(在备用VM中可能会出现)。
优点:与1.相同。
如何:更改
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
重新设置所有DLL的基数,以免它们发生冲突(将其应用于1。)
优点:所有DLL具有不同的地址基
操作方法:
Rebase
工具(rebase.exe;由editbin.exe弃用)editbin.exe,带有
/REBASE
选项ReBase API
仅对所有DLL使用不同的基址(不要在系统DLL上应用此基址)。
使用外部调试器并与IDB同步。
操作方法:
使用QB-sync:它允许您从调试器调试二进制文件(windbg, ollydbg,gdb等),并在不重新设置IDB基础的情况下将数据库与调试器同步。