| 关键词: nbsp ExitProcess PUSH MessageBox incinclude 消息 libincludelib 0040101A 00401020 32 |
一个最简单的弹出消息框框代码: .386.model flat,stdcalloption casemap:none include windows.incinclude user32.incinclude kernel32.incinclude gdi32.inc includelib gdi32.libincludelib user32.libincludelib kernel32.libinclude macro.asm .data .data? .codestart: invoke MessageBox,NULL,CTXT('luanx'),CTXT('hello'),0 invoke ExitProcess,0end start 然后用MASMPlus编译成EXE的,拿C32Asm反汇编瞧瞧,如此短小,呵呵。注意入栈顺序是从右到左,那反汇编的就反着来看: ::00401000:: 6A 00 PUSH 0 ::00401002:: 68 05304000 PUSH 403005 ;将消息提示标题入栈::00401007:: 68 00304000 PUSH 403000 ;将消息提示内容入栈::0040100C:: 6A 00 PUSH 0 ::0040100E:: E8 07000000 CALL 0040101A ;调用MessageBox::00401013:: 6A 00 PUSH 0 ::00401015:: E8 06000000 CALL 00401020 ;调用ExitProcess::0040101A:: FF25 08204000 JMP [402008] ;跳到MessageBox::00401020:: FF25 00204000 JMP [402000] ;跳到ExitProcess |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|