恶意代码分析-第四章-X86反汇编

简单指令

网络中用大端字节序

X86中用小端字节序

sub 指令会修改:ZF:结果为0

CF:目标操作数比减去的值小 CF置位

乘法指令mul:mul value - - -eax乘value 结果以64位形式分别存储在EDX(高)和EAX(低)

除法指令div :div value - - - EDX和EAX和起来除以value 结果商存储在EAX,余数存储在EDX

目的操作数左右移shr shl:shr 1000 2 - - - 结果0100(0填充新位,CF中包含最后移出操作数的那位)(移位通常是对乘法的优化【左移2位=* 4】)

循环移位ror rol:移出那一位会被填到另一端出来的位上(ror低位循环到高位)

移位通常是对乘法的优化

用ESP和EBP来支持栈操作 ESP栈顶指针,EBP栈基址

相关指令:push pop call leave enter ret

pusha 和 pushad 编译器很少使用,通常是手工写的

pop eax == mov eax,ss:[esp]

比较条件指令

ZF标志位 test eax,eax 是否是空值

cmp a,b a = b (ZF=1,CF=0)

a < b (ZF=0,CF=1)

a > b (ZF=0CF=0)

重复指令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值