zoukankan      html  css  js  c++  java
  • OD调试实例1

    使用TraceMe.exe

    OD按F3加载TraceMe,再按F9运行起来,如图所示

     

    设置一个断点:

    Ctrl+G打开跟随表达式窗口

    OllyDbg里对API的大小写敏感,输入的函数名大小写必须正确,比如以下两种写法都是不正确的:

    点击OK后,会跳到系统User32.dll的GetDlgItemTextA函数入口处:

    按Alt+B快捷键或单击B按钮打开断点窗口,如图所示:

    这里显示的断点不包括硬件断点

    Ctrl+N :打开当前模块的名称(标签)列表

    比如刚开始进入TraceMe时,按Ctrl+N打开的是TraceMe的名称列表

    在Ctrl+G查找User32.dll的GetDlgItemTextA成功后:

    输入字符,按OK,断点断下来,

    按Alt+F9回到调用函数的地方:

    我们发现,入口地址是004011AE,那么对它下个断点(F2),同时ALT+B打开断点窗口,把GetDlgItemTextA禁用掉(使用空格可以切换)

    重新点击Check,断下来了,中断后的代码如下:(图和上面图一样)

    后面的注释是我顺便加的,方便理解,;键是加注释的快捷键.

    那么要成功注册现在有两种方法:

    1.在运行到004011F5时直接改ZF为0

    2.直接加入nop取代,这个是选中004011F5这一行,双击鼠标或单击空格键,输入指令NOP:

    如图:

    如果新的指令比原来的指令短,只要你勾选了对话框上的“Fill with NOPs”选项,OllyDbg就会用NOP指令(no operation,空操作指令)来补充

    为了使这个改变写入磁盘文件中,方法是用鼠标选中修改过的代码,单击鼠标右键,执行"Copy to executable/Section"命令:

    比较好懂的,Selection,选中部分,All modifications肯定就是所有修改过的地方

    像这种屏蔽程序的某些功能或改变程序流程,使程序的保护方式失效的方法称为patch(补丁)或爆破

    接下来,算法分析:明显在004011E5这下个断点:F7step into断点:

    刚我们跟踪的结果是eax为密码字符串地址,edx为用户名字符串地址,ebx为用户名字符串长度

     

  • 相关阅读:
    Andriod一段时间未操作页面,系统自动登出
    Error:Execution failed for task ':app:clean'
    Handler的postDelayed(Runnable, long)
    Android Studio快捷键大全
    Cookie、Session、Token的区别
    CentOS 7 上安装jdk
    CentOS 7 上搭建nginx来部署静态网页
    PyCharm如何设置 “ctrl+滚轮” 实现字体的放大和缩小
    HTTP和HTTPS
    性能测试思想(What is performance testing?)
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693710.html
Copyright © 2011-2022 走看看