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为用户名字符串长度

     

  • 相关阅读:
    电路维修 (广搜变形-双端队列bfs)
    靶形数独 (dfs+预处理+状态压缩)
    埃及分数问题(带乐观估计函数的迭代加深搜索算法-IDA*)
    weight (搜索对象的选取)
    Codeforces Round #506 (Div. 3)
    生日蛋糕 (poj1190) (dfs剪枝)
    校内模拟赛题面
    NOIP2013 D1T3 货车运输 zz耻辱记
    NOIP2011 D2T3 观光公交 做题笔记
    ARC 103
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693710.html
Copyright © 2011-2022 走看看