恶意代码分析-第四章-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低位循环到高位)

移位通常是对乘法的优化

扫描二维码关注公众号,回复: 2598298 查看本文章

用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)

重复指令

猜你喜欢

转载自blog.csdn.net/m0_37809075/article/details/81454036