zoukankan      html  css  js  c++  java
  • 破解之关键CALL与关键跳查找方法

    找关键CALL和关键跳

    方法一:

    输入假码注册程序,记录下错误提示信息。

    OD载入程序-->

    右键-->查找-->所有参考文本字串-->(右键-->查找文本,注:不要区分大小写,选择整个范围)找到上面记录的错误提示文本

    或:右键-->超级字符串参考-->查找ASCII码/UNICODE->(右键-->查找文本,注:不要区分大小写,选择整个范围)找到上面记录的错误提示文本

    -->双击进去,关键CALL和关键跳就在其上面附近。一般在其上有提示注册成功的文本信息,在成功和失败提示文本的上面有一个比较,比较下面有一个跳转。在比较的上面的第一个CALL就是关键CALL了。

    方法二:

    OD载入程序-->F9运行程序-->输入假码注册程序,确认,弹出错误提示框-->F12暂停程序运行--->ALT+K查看调用堆栈-->找到来自主程序的调用-->双击进去-->,关键CALL和关键跳就在其上面附近。一般在其上有提示注册成功的文本信息,在成功和失败提示文本的上面有一个比较,比较下面有一个跳转。在比较的上面的第一个CALL就是关键CALL了。

    简单爆破方法:

    方法一:修改关键CALL(通过修改寄存器的值达到控制关键跳实现与否)

    找到关键CALL之后先在关键CALL上下个断点(其上附近亦可)-->重载程序-->F9运行程序-->输入假码,确认-->回到OD,则停留在我们上面下段的地方-->单步跟踪到关键CALL上F7步入-->在段首(跟进去所在的位置)写入mov eax,1(注:其中之所以要修改eax的值是由于影响关键跳的比较的寄存器为eax,通常都是eax。之所以修该为1,是为了转换关键跳的实现与否,如:默认eax为0,关键跳没实现,那么我没就把eax改为非零值即可),在下一行写retn X(X为该段尾返回的值,如果他没有返回我们也不返回任何值)-->保存修改-->OK

    方法二:修改关键跳(直接不理会判断条件,强制改变其跳转状态)

    该关键跳为相反状态(如:je-->jz, jnz-->jmp    等等)

    为什么要修改EAX的值:

     修改关键CALL:

  • 相关阅读:
    java 请求响应乱码
    基于eclipse的mybatis映射代码自动生成的插件http://blog.csdn.net/fu9958/article/details/7521681
    基于eclipse的mybatis映射代码自动生成的插件
    使用Mybatis Generator自动生成Mybatis相关代码
    MyBatis使用Generator自动生成代码
    selector是在文件夹drawable中进行定义的xml文件。
    新浪微博布局学习——妙用TabHost
    分布的拟合和检验
    python学习之--SyntaxError: Non-ASCII character 'xe5'
    两天学会DirectX 3D之入门
  • 原文地址:https://www.cnblogs.com/milantgh/p/3814901.html
Copyright © 2011-2022 走看看