漏洞作业2知识点

汇编语言:TEST

2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:

test ecx, ecx 
jz somewhere

如果ecx为零,设置ZF零标志为1,Jz跳转

LEA是取变量的地址
 
LEA有两个操作数。
左边是目的操作数,表示操作结果保存在此,该指令目的操作数只能是8个通用寄存器之一。
右边的是源操作数,该指令的源操作数只能是一个存储单元,表达存储单元有多种寻址方式。
示例:LEA BX,[BX+SI+0F54H]
  [BX+SI+0F54H]采用相对基址变址的寻址方式表达存储单元,它表示的存储单元的有效地址是:BX内容加SI内容加0F54H。这个结果被传送到BX中。
 

sub_xxxx  地址xxxx处的子例程(过程/方法)
loc_xxxx  地址xxxx处的一个指令
byte_xxxx  位置xxxx处的8位数据
unk_xxxx  位置xxxx处的大小未知的数据

.text:00401020 ; Attributes: bp-based frame
.text:00401020
.text:00401020 ; int __cdecl sub_401020(char *)
.text:00401020 sub_401020  proc near   ; CODE XREF: sub_401005↑j
.text:00401020
.text:00401020 var_4C  = byte ptr -4Ch        //IDA提供的一个摘要栈视图,列出栈帧内被直接引用的每一个变量,以及大小与帧指针的偏移量
.text:00401020 var_C   = byte ptr -0Ch         // var_为局部变量名称的前缀,后面表示变量与被保存的帧指针之间距离
.text:00401020 var_4   = dword ptr -4
.text:00401020 arg_0   = dword ptr  8         // 函数参数名以arg_为前缀,后面表示与最顶端参数之间的相对距离(十六进制)
.text:00401020
 

dword   双字 就是四个字节
ptr     pointer缩写 即指针
[]里的数据是一个地址值,这个地址指向一个双字型数据
比如mov eax, dword ptr [12345678]  把内存地址12345678中的双字型(32位)数据赋给eax

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安安csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值