因此,通常當我使用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。
你能提供更多的上下文嗎?就像什麼操作系統一樣,也許是你試圖調試的可執行文件的鏈接? –