zoukankan      html  css  js  c++  java
  • 逆向中标志位的学习

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

    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

     

  • 相关阅读:
    Java的格式化输出
    常用排序算法的Python实现
    零基础自学用Python 3开发网络爬虫(一)
    Python常见数据结构整理
    百度天气预报API的使用(java版本)
    大总结
    CCS学习(三)
    CSS学习(页外引用还不懂)
    CSS自定义动画
    ssm日期格式转换
  • 原文地址:https://www.cnblogs.com/wang1212-/p/10050982.html
Copyright © 2011-2022 走看看