OllyDbg快捷键总结

OllyDbg快捷键

快捷键功能
F7单步步进,遇到call指令跟进
F8单步步过,不跟进
F9运行
ctrl + F9知道出现ret指令时中断,运行到程序返回
alt + F9进入内核中后,执行此命令,可以瞬间返回用户态
F2打断点
F4直接诶运行到光标所在处
ctrl + F2重新加载可执行文件,重新运行
ctrl + N查找当前程序调用动态链接库的API列表,然后打断点
Alt + M显示内存,可以看到很多段,并附有每个段的访问、读、写、执行属性
F2当显示内存后,使用F2直接打内存访问一次性断点
shift + F2设置条件断点
shift + F4打开条件断点窗口

保存更改的执行文件

在已经更改的可执行文件中,单击右键,“复制到可执行文件” -->"选择"
会弹出另一个汇编界面,然后在弹出的汇编界面上,单击右键,“备份”-->"备份数据到文件"

破解软件方法

调试分析

爆破法

通过屏蔽程序的某些功能或者该表程序流程使程序失效的方法称为“爆破”

算法分析

常用断点

常用断点有 INT3断点、硬件断点、内存断点、消息断点等。

INT3断点

INT3是一个常用断点,可以使用bp命令或者F2快捷键来设置或者取消断点。

当执行一个INT3断点时,该地址处的内容被调试器用INT3指令替换了,此时
OllyDbg将INT3隐藏,显示出来的仍然是中断前的指令,实际上被替换成了“CC”。
原理:
这个INT3指令,因为机器码是0xCC,也常被称为“CC”指令,当程序执行INT3时,
会导致一个异常,调试器此时就会捕捉这个异常,从而停在断点处,然后将断点处的
指令恢复成原来的指令。
优点: 可以设置无数个断点。
缺点: 容易被检测,检测API的首地址是否是“CC”。

硬件断点

硬件断点和DRx寄存器有关,在Intel CPU架构中有8个DRx寄存器。
8个(DR0~DR7)特性如下:
* DR0~DR3:调试地址寄存器,用于保存需要监视的地址,例如设置硬件断点。
* DR4~DR5:保留,未公开具体作用
* DR6 : 调试寄存器组状态寄存器
* DR7 : 调试寄存器组控制寄存器
* 原理:
    硬件断点的原理是使用DR0、DR1、DR2、DR3设定地址,并使用DR7设定状态,因此最多设置4个硬件断点。
* 设置断点:
    “断点”--->"硬件执行"。
* 删除和查看硬件断点:
    “调试”-->“硬件断点”
F4 快捷键相当于提供了一个一次性的硬件断点。中断后自动删除。
* 缺点:
    断点最多只能下4个断点,需要对代码循环下断点。

内存断点

* 原理:
    在对所设的地址赋予不可以访问/不可写的属性,那么当访问/写入的时候就会产生异常。比较异常地址是不是断点地址,如果是中断,让用户继续操作。由于每一次异常,都要通过比较来确定是否应该中断,所以内存断点会降低OllyDbg的执行速度。
    内存断点不修改原始代码,所以在遇到校验代码且硬件断点失灵的情况下可以使用内存断点。

内存访问一次性断点

消息断点

windows本身就是消息驱动的,当某个特定窗口函数接收某个特定消息时,消息断点将使程序中断。
* 和INT3区别:
    INT3断点可以在程序启动之前设置,消息断点只有在窗口被创建之后才能被设置并拦截消息。
* 当捕捉到消息断点时,由于还处于系统底层代码,不属于当前调试运行的代码,所以使用Alt + F9 或者ctrl +9 快捷键返回当前调试代码是完全没有用的。由于主程序代码在.text段中,从系统代码返回应用程序代码段的时候,正是.text区块代码执行的时候,因此,对.text下断点就能返回应用程序的代码领空。按Alt + M 快捷键打开内存窗口,对.text区块下内存断点。

条件断点

原理:
    条件断点时一个带有条件表达式的普通INT3断点。
按照寄存器条件中断
在某个地址处,设置断点,按"shift+F2",输入条件表达式,例如:“eax==0x40000”,这样,当运行到此地址时,条件成立,则中断,否则,则继续执行。
按照存储器条件中断

条件记录断点

条件记录点除了具有条件断点外,还能记录断点处函数表达式或者参数的值,也可以通过设置断点的次数,每次符合暂停条件时,计数器减一。

监视代码运行

需要插件 Hit trace

当我们需要分析部分代码,那部分运行,那部分未运行时,选中部分代码,
右键“Hit trace”-->"add selection",然后按F9运行代码,就可以查看
那些代码被运行。

MDebug支持设置模块断点

模块断点用于在程序执行到那个模块的空间代码时设断,在分析的过程中我们不仅仅知道主程序调用了那个模块,还可以知道调用了那个函数。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值