作者xxtomnyxx (翼天)
看板ASM
標題[問題] MASM Win32 的組合語言問題
時間Wed Jan 1 13:18:13 2014
這是 win32 的組合語言問題,
發在這裡應該可以吧?
在 Windows 下編寫組合語言,
用 MASM 編譯成執行檔後用 OllyDbg 打開執行檔,
發現裡面所有呼叫外部模組的方式都是:
call <jmp.&kernel32.GetTickCount>
jmp dword ptr [<&kernel32.GetTickCount>]
也就是說程式在執行時並非直接進入 API 的入口,
而是多了一步 jmp 的程序,
以我個人來說我很不喜歡這樣的結果,
有沒有方法讓編譯器直接輸出成:
call dword ptr [<&kernel32.GetTickCount>]
呢?
另外,
有些程式碼我經常會使用到,
但是我不想把它做成副程式去呼叫,
能不能自定義一些指令,
比方說:
aaa
指令就代表
mov ecx,eax
shr eax,4
and ecx,0Fh
and eax,0Fh
這四個指令。
我試過用 textequ
但是他沒辦法在字串中定義換行符號,
請問有其他方法可以達成嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 101.12.138.56
1F:→ techo:第二個問題應該用macro就可以了吧? 01/01 13:29
2F:→ suhorng:感覺第一個應該是PE檔的限制? 載入DLL時才把位址填入的 01/01 16:04
3F:推 Slither:`AAA' is reserved. google `import table', etc. 01/15 05:53