[问题] 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