![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
win32
文章平均质量分 68
Accesspeng
这个作者很懒,什么都没留下…
展开
-
invoke伪指令
通过反汇编helloworld对话框来看invoke伪指令invoke是调用WinAPI的伪指令把上一个helloworld对话框编译并连接成hello.exe然后用OD打开得到下图前文说过ML.EXE编译invoke时会把invoke的参数PUSH入栈和一个CALL,在代码段中只有两个invoke指令 invoke MessageBox,NULL,offset messageS原创 2013-06-13 09:42:49 · 2219 阅读 · 0 评论 -
include语句
程序用到MessageBox和ExitProcess函数它们分别在user32..dll和Kernel32.dll中那么就必须在程序中使用include语句包含这两个库文件,此时程序中可以使用user32..dll和Kernel32.dll中所有的函数include相当于java中import导入包语句原创 2013-06-13 09:51:12 · 891 阅读 · 0 评论 -
逻辑运算 或,与,非
逻辑变量之间的运算称为逻辑运算。二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为逻辑变量。 计算机的逻辑运算的算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。 逻辑运算主要包括三种基本运算:逻辑加法(又称“或”运算)、逻辑乘法(又称“与”运算)和逻辑否定(又称“非”运算)。此外转载 2013-06-16 11:12:10 · 12690 阅读 · 0 评论 -
Win32 一个helloworld对话框
.386 .model flat,stdcall option casemap:noneinclude windows.incinclude user32.incinclude kernel32.incincludelib user32.libincludelib kernel32.lib .data ;数据段titleS db 'helloworld',0mes原创 2013-06-11 12:49:07 · 606 阅读 · 0 评论 -
继续说invoke伪指令
.data ;数据段titleS db 'helloworld',0messageS db 'hello,welcome to win32',0 .code ;代码段start:invoke MessageBox,NULL,offset messageS,offset titleS,MB_OKinvoke ExitProcess,NULLend startMASM编译下边原创 2013-06-21 12:35:08 · 1307 阅读 · 0 评论 -
API函数MessageBox的参数与返回值
Win32汇编函数的参数,参数类型,返回值都是一个dword类型(4字节)返回值永远放在EAX中,如超过4个字节则返回一个数据的指针(指向返回值存放的缓冲区地址) .datatitleS db 'helloworld',0messageS db 'hello,welcome to win32',0 .codestart: invoke MessageBox,NULL,o原创 2013-06-21 13:09:33 · 2439 阅读 · 0 评论 -
用 W32DASM看IF高级语法
W32DASM一个静态调试工具代码段: .codestart: invoke MessageBox,NULL,offset messageS,offset titleS,MB_YESNO .if eax == 6 invoke MessageBox,NULL,offset msgOk,offset tipS,MB_OK .else i原创 2013-06-21 14:38:40 · 791 阅读 · 1 评论 -
Win32高级语法 条件测试语句与分支语句
.if 表达式1.elseif 表达式2.else 所以表达式为否.endf ;if语句结束下面两段程序分别使用汇编语法与高级语法对程序进行条件测试和分支,弹出对话框当点击"是"弹出对话框提示"click YES",点击"否"弹出对话框提示"click No"程序的数据段 .datatitleS db 'helloworld',0messageS db '原创 2013-06-21 13:40:38 · 590 阅读 · 0 评论