OllyDbg是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,支持插件扩展功能,是目前最强大的调试工具之一。建议下载汉化版的
界面
反汇编窗口:显示被调试程序的反汇编代码,包括地址、HEX数据、反汇编、注释
寄存器窗口:显示当前所选线程的CPU寄存器内容,点击标签可切换显示寄存器的方式
信息窗口:显示反汇编窗口中选中的第一个命令的参数及跳转目标地址、字符等
数据窗口:显示内存或文件的内容,右键菜单可切换显示方式
堆栈窗口:显示当前线程的堆栈
在反汇编窗口中有三个板块和一个注释区
常用的快捷键调试方式
F7:单步步入,功能通单步步过(F8)类似,区别是遇到CALL等子程序时会进入其中,进入后首先停留在子程序的第一条指令上。
F8:单步步过,每按一次这个按键,将执行反汇编窗口中的一条指令,遇到CALL等子程序不进入其代码。
Ctrl+G:一般用于跟踪字符串和跳转到指定位置
删除或禁止断点:
1、查看所设置的全部断点——点击显示页工具栏的B
2、选择要操作的断点右键进行操作或者快捷键空格
破解注册机制思路
所有应用程序要实现各种各样的功能都是要通过调用API函数!
文本框读取字符串的函数有2种
GetDlgItemTextA GetDlgItemTextW
GetWindowTextA GetWindowTextW
A表示ASCII的方式 ,W表示Unicode的方式
因为破解的注册机制需要输入用户名密码,使得成功登入
1、获取输入,查找文本框读取字符串的函数:ctrl+G——输入可能的字符串的函数名
2、在找到的字符串函数位置设置断点,运行到断点位置(F9)
3、即会弹出破解的程序的输入用户名和密码框,随意输入,注意输入的字符串最好在5位以上
4、此时OD里的代码会停在某个位置,按F7进入call里,发现无可用信息
5、按ctrl+F9回到4、的“OD里的代码会停在某个位置”处
6、之后继续往下走(F8)(这里不用F7是因为4、中进入函数没有看见有用信息),注意观察信息窗口的提示,会有有用信息,比如我们输入的用户名什么的
7、跳到信息窗口提示有用信息的位置,然后根据上下的机器码分析其操作
!注意:出现cal函数 之后出现test eax,eax时要注意 (因为任何函数在汇编里面返回值都存放在eax里),这里明显是测试函数返回值是否为0,之后跟着的通常为验证判断
8.可以将eax值改变使得返回非0或者直接把验证判断的代码去掉(双击用NOP填充)。
第二种操作如图:
把改过的地方保存起来:选上改过的地方——右键——复制到可执行文件——选择——在弹出窗口右键备份——保存数据到文件——新写一个文件名——保存
!注意:如果该程序加壳了,改过后可能无法正常执行。
其他种破解注册机制案例可看我之前写的博客https://blog.csdn.net/Woolemon/article/details/124232863
调试技巧总结
这是看小甲鱼OD调试篇的笔记,记录一下~