看板 ASM 關於我們 聯絡資訊
這是 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
techo:第二個問題應該用macro就可以了吧? 01/01 13:29
suhorng:感覺第一個應該是PE檔的限制? 載入DLL時才把位址填入的 01/01 16:04
Slither:`AAA' is reserved. google `import table', etc. 01/15 05:53