动态调试-OD
OllyDbg(以其作者Oleh Yuschuk的名字命名)是一个x86 调试器,它着重于二进制代码分析。可以跟踪寄存器,识别过程,API调用,开关,表,常量和字符串
界面功能
快捷键
破解方向(无壳)
- 从消息框入手(MessageBox, GetDlgItemTextA…)
- 从提示字符串入手
- 比如提示消息窗口时暂停程序然后从调用堆栈里查找关键信息
- 直接查找字符串跟随地址分析
不建议不断使用断点进行调试, 大概率陷入死循环(windows使用消息队列将各种操作分配给应用程序, 如果没有从窗口执行操作, 那会导致消息队列为空, 导致循环)
去除NAG窗口
Nag窗口就是软件的提示注册信息
找到调用窗口函数后可以通过以下方式解决它
- 改标志位
- 改跳指令(比如je–>jmp)
- 使用nop填充(一个nop占一字节)
- 使窗口父句柄不存在
- 改入口地址(PE头的AddressOfEntryPoint)
技巧
- call的返回值会赋值给EAX
- 找关键语句时需要注意领空, 一般修改的都是程序的领空而不是系统API的领空
术语参照
领空
: 在某时刻CPU执行的代码的所有者, 004013F7一般是执行文件的领空, 7C8114AB一般是DLL的领空VA(VirtualAdress)
RVA(RelativeVirtualAddress)
EP(EntryPoint)
SEH(Structrued Exception Handling)
# 相关文章
1.G002
2.G001
3.How to learn English?
4.ctf-linux-cmd.md
5.Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写
6.ctfhub.md
7.Laravel笔记
8.sql盲注笔记
1.G002
2.G001
3.How to learn English?
4.ctf-linux-cmd.md
5.Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写
6.ctfhub.md
7.Laravel笔记
8.sql盲注笔记