逆向中标志位的学习

标志位分别对应在第几位,如下

11    7     6     4     2     0

OF  SF  ZF   BF   PF   CF

  他们的作用如下

CF(无符号数)若最高位进位或借位(溢出)则DF显示1

PF当二进制数中最低有效位1的个数为偶数则会显示1,否则为0。

BF 举个例子mov al,0xff   add al,1 则显示1  (0xFFFF,0x00FFFFFF)红色标志的位若进位则显示1,否则为0(具体什么原因我不知道,有会的大佬请指教一下嘿嘿)

ZF计算结果为0则为1,例如:mov eax,2   xor eax,eax  则结果为0,ZF显示1

SF最高位为什么,就显示什么。例如:0x10001111 最高位为1则就显示1

OF(有符号数)若最高位溢出则会显示1(负+负=负  如果为正则溢出,正+正=正 如果为负则溢出,正+负 永远不会溢出)(1000 0000加1100 0000符号位有进位:1,最高有效位相符号位进位:0)

DF表示movs或mov操作数寄存器的移动方向,例如:mov esi,edi  movsd 若D 为0则esi,edi加4,若为1则esi,edi减4

 补充一点知识:

jmp只能修改EIP寄存器,EIP寄存器中存储的是CPU的下次执行代码。

call先push下一个地址(ESP值改变),然后修改EIP寄存器

ret 相当于pop eip

 

 

 

 

posted on 2018-12-01 20:55  呀小王呀  阅读(227)  评论(0编辑  收藏  举报

导航