zoukankan      html  css  js  c++  java
  • 逆向之密码破解

    逆向之密码破解

    OllyDbg介绍

    • OllyDbg的功能

      OllyDbg提供程序动态调试的功能,可以在程序运行过程中修改汇编指令

    • OllyDbg的转移指令

      在利用OllyDbg分析程序的过程中, “转移指令”就是在程序判断符合特定条件的情况下使程序发生跳转。
      “转移指令”通常是分析程序的突破口。

     常见的转移指令

      (1)无条件转移指令(长转移)
      (2)条件转移指令(短转移,-128到+127的距离内)
      (3)循环控制指令(短转移)
      (4)中断指令

    无条件转移指令

    • JMP无条件转移指令
    • CALL 过程调用
    • RET/RETF过程返回

    条件转移指令

    (当且仅当(SFXOROF)=1时,OP1<OP2)

    • JA/JNBE不小于或不等于时转移
    • JAE/JNB大于或等于转移
    • JB/JNAE小于转移
    • JBE/JNA小于或等于转移
    • JG/JNLE大于转移
    • JGE/JNL大于或等于转移
    • JL/JNGE小于转移
    • JP/JPE奇偶性为偶数时转移
    • JLE/JNG小于或等于转移
    • JE/JZ等于转移
    • JNE/JNZ不等于时转移
    • JC有进位时转移
    • JNC无进位时转移
    • JNO不溢出时转移
    • JNP/JPO奇偶性为奇数时转移
    • JO溢出转移
    • JS符号位为"1"时转移

    循环控制指令

    • LOOPCX不为零时循环
    • LOOPE/LOOPZCX不为零且标志Z=1时循环
    • LOOPNE/LOOPNZCX不为零且标志Z=0时循环
    • JCXZCX为零时转移
    • JECXZ ECX为零时转移

    中断指令

    • INT中断指令
    • INTO溢出中断
    • IRET中断返回

    转移指令特性

    • 转移指令特性

      转移指令通常对应程序中的因果判断,循环判断等等逻辑结构,而这些结构对于一个程序的整体逻辑结构至关重要往往一个很小的判断语句就担负着程序执行方向的变化任务。
      通过修改特定部分的转移指令,可以达到截然不同的执行效果,因此转移指令对程序的安全性起到很大的作用。

    代码

    愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。

    作者:菜鸟-传奇
    本文版权归作者和博客园共有,不以任何盈利为目的,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律声明责任的权利。
  • 相关阅读:
    LightOJ1031 Easy Game(区间DP)
    POJ1325 Machine Schedule(二分图最小点覆盖集)
    ZOJ1654 Place the Robots(二分图最大匹配)
    LightOJ1025 The Specials Menu(区间DP)
    POJ2288 Islands and Bridges(TSP:状压DP)
    LightOJ1021 Painful Bases(状压DP)
    LightOJ1013 Love Calculator(DP)
    POJ1780 Code(欧拉路径)
    POJ1201 Intervals(差分约束系统)
    ZOJ2770 Burn the Linked Camp(差分约束系统)
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/14704563.html
Copyright © 2011-2022 走看看