我使用IDA Pro在Windows 7 32位上反彙編SPEC 2006二進制文件。如何將「aKernel32_dll_0:unicode 0,<KERNEL.32>,0」翻譯成法律聲明?
它產生宣稱這樣的變量:
aKernel32_dll_0 unicode 0, <KERNEL32.DLL>,0
在.text段,我覺得這樣這個變量的用法:
push offset aKernel32_dll_0
call ds:[email protected]
......
我所要做的就是讓這些代碼/數據重新組合。
所以我的問題是:
所以基本上聲明像** aKernel32_dll_0的unicode 0,0 **不能用MASM/NASM直接重組,應該怎麼調整呢?
我簡單地調整成aKernel32_dll_0 DD 0和代碼是這樣的:
,它會之後通話DS每次碰到一個奇怪的現象:__ imp__GetModuleHandleW @ 4
與使用Ollydbg的原始二進制相比較:
那麼看起來aKernel32_dll_0實際上是一個外部變量?那麼正確的方法刪除聲明和外部聲明這個變量?如果是這樣,那麼這個變量的名稱是什麼?我不認爲它是一個Kernel32_dll_0,因爲它看起來像是由IDA Pro生成的一個隨機名稱。
任何人都可以給我一些幫助嗎?謝謝!
嗨小丑,但什麼是正確的masm語法..? – computereasy
'masm'似乎不支持utf16開箱即用,但有宏庫可以。對於這個簡單的ascii字符串,你可以手動插入0個字節,比如'aKernel32_dll_0 DB'K',0,'E',0 ...'你就可以實現這個想法。應以3個零結束(一個是最後一個wchar的高字節,另外兩個是終結符)。或者,您可以將其存儲爲ansi並切換函數調用以使用'GetModuleHandleA'。 – Jester