因此,通常当我使用IDA进行调试时,我不会遇到任何问题;然而,通过这一个特定的流程(模块之前的大小为9.9 MB),IDA坚持每次启动流程都会重新启动流程,冻结IDA并迫使我在实际启动前等待20-30分钟。重新调整和调试
为什么它这样做,我可以以某种方式禁用此?我很高兴能够像这样进行高级调试,因此重新绑定对我来说只有一点意义。
因此,通常当我使用IDA进行调试时,我不会遇到任何问题;然而,通过这一个特定的流程(模块之前的大小为9.9 MB),IDA坚持每次启动流程都会重新启动流程,冻结IDA并迫使我在实际启动前等待20-30分钟。重新调整和调试
为什么它这样做,我可以以某种方式禁用此?我很高兴能够像这样进行高级调试,因此重新绑定对我来说只有一点意义。
如果其他人发现这个页面像我这样做,这也可能导致如果DLL的首选入口点已被使用,它必须在它可以继续之前重新绑定它。
要纠正这一点,你可以使用Windows自带的SDK(或Visual Studio)的ReBase.exe工具
ReBase.Exe -b 7600000 myBadBasedDll.dll
以便将DLL的基础重置为0x7600000。然后,您必须做底垫在IDA最后一次,让您的IDB同步(或作出新的IDB衍合后)
Edit->Segments->Rebase Program...
在新菜单中检查了盒Fix up Program
和Rebase the whole image
,它应该很好去。
这个问题是由Will Donohoe在31-05-2013回复的。在访问的时候该网站是https://will.io/blog/2013/05/31/disable-aslr/
由于在网站上解释的那样,问题出现了(至少在我的情况)为地址空间布局随机化(ASLR)的结果。当PE可选标题的DllCharacteristics字段包含具有值0x0040
的掩码IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE
时,ASLR被启用。
在我的情况下,DllCharacteristics字段是0x8160
所以很清楚0x0040
掩码存在。
通过去除0x0040
面罩来修正经常重新镶嵌问题。设置DllCharacteristics字段为0x8120
或0x8100
为我做了诡计。
NB:使用十六进制编辑器时的DllCharacteristics字段可以位于一个从PE签名的开始0x5E的偏移量offset。
你能提供更多的上下文吗?就像什么操作系统一样,也许是你试图调试的可执行文件的链接? –