[問題] MASM Win32 的組合語言問題

作者: xxtomnyxx (翼天)   2014-01-01 13:18:13
這是 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
但是他沒辦法在字串中定義換行符號,
請問有其他方法可以達成嗎?
作者: techo (而我知道)   2014-01-01 13:29:00
第二個問題應該用macro就可以了吧?
作者: suhorng ( )   2014-01-01 16:04:00
感覺第一個應該是PE檔的限制? 載入DLL時才把位址填入的
作者: Slither (機會)   2014-01-15 05:53:00
`AAA' is reserved. google `import table', etc.

Links booklink

Contact Us: admin [ a t ] ucptt.com