Win32 汇编 小知识学习笔记(一)
win32 API调用中把参数放入堆栈,顺序是最后一个参数最先进栈。
invoke 不是80386的指令,而是一个MASM编译器的伪指令,解决调用API参数过多的问题
格式: invoke 函数名[,参数1][,参数2]
- dword(double world) 其实就是一个32 位的整数
4.在win32 环境中,和字符相关的API共有两类,分别对应两个字符集:一类是处理ANSI字符集,函数名字的尾部带‘A’字符。另外一类是处理Unicode 字符集,函数子名的尾部带一个‘W’字符。
5.汇编标号的定义:
标号名: 目的指令 ;方法1(只有一个冒号,标号的作用域是当前的子程序)
或
标号名:: 目的指令 ;方法2(有两个冒泡,标号的作用域是整个程序)
6 @F 表示本指令后的第一个@@标号 , @B表示本指令前的第一个@@标号。@@是用来替换 只出现一两次的标号
7.win32 汇编以0字符结尾
可读可写的已定义的变量用.data
可读可写的未定义的变量用.data?
不需要修改的常量用.const
9 .反汇编(Disassembly):把目标代码转为汇编代码的过程,也可以说是把机器语言转换为汇编语言代码、低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件汉化等领域。
获取全局变量的地址:
mov 寄存器,offset 变量名
获取局部变量的地址:
lea eax,[ebp-4]
addr 局部变量名和全局变量名
- .386 代表汇编语言使用该指令集
12 . .model 用来定义程序的工作模式
.option casemap:none 判断是是否对大小写敏感。必须是对大小写敏感的。
.break .if 退出条件 可以用于在循环语句中退出
还没有评论,来说两句吧...