2013-09-24 109 views
0

我有一段時間以前寫過的exe文件,找不到它的源代碼(它是用C++編寫的)。在編譯好的exe文件中修改dll函數調用

它調用user32.dll中的MessageBoxA函數並將必要的參數傳遞給它。我想修改flags參數以包含MB_ICONERROR(0x10)標誌。

我該如何去查找exe文件中的哪些字節需要修改才能完成?

+0

開始用短祈禱你的DLL *不*驗證碼簽名。 – WhozCraig

+1

步驟1:連接一個調試器。在user32中的MessageBoxA中設置一個斷點。觸發對話框。查看調用堆棧並將其跟蹤到指定要更改的標誌的調用。修改可執行文件並重新計算PE校驗和。第2步:學習使用修訂控制。 –

回答

2

您需要像ICE或IDA這樣的反彙編程序。 https://www.hex-rays.com/products/ida/support/download.shtml。 加載可執行文件。在名稱窗口中找到Win32 API調用,找到它,只需鍵入函數名稱即可。然後雙擊代碼XREF轉到引用的調用者。

enter image description here

然後你得到你想要的東西: enter image description here

只需選擇行,然後單擊十六進制查看得到的地址。

enter image description here