鱼C论坛

 找回密码
 立即注册
查看: 5387|回复: 0

[学习笔记] 《解密系列-调试篇》第二讲:OD使用教程2

[复制链接]
发表于 2017-12-28 20:59:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2017-12-28 21:51 编辑

越努力,越幸运。欢迎大家来看我的笔记,不对的请各位大佬指正,谢谢
一、破解思路
(1)拆解一个Windows程序要比拆解一个DOS程序容易得多,因为在Windows中,只要API函数被使用,想对寻找蛛丝马迹的人隐藏一些东西是比较困难的。因此分析一个程序,用什么API函数作为切入点就显得比较关键了。这也正是小甲鱼常跟大家说破解靠的是耐心和经验的道理!

(2)本次实验的序列号验证程序流程图:
1.jpg
GetDlgltemTextA函数其中的A表示是使用ASCII码形式编码的。(如果是W的话就是unicode宽字符形式编码的)
lstrcmp对比函数,我们对strcmp不陌生了吧,这里加上了一个”l“是WindowsAPI对这个函数的一个封装(效果一样的)

(3)使用上节课的方法死循环的原因,如下图:
3.jpg
MessageQueue:消息队列
While(GetMessage()):从消息队列中拿出消息
DispatchMessage():分派消息,就是分给我们的应用程序,让我们的应用程序去执行这个指令

因为我们根本就没有操作那个窗口,那么while循环就没有消息,就一直在循环(等消息),所有造成了死循环。

二、加载目标文件调试
(1)设置OllyDbg中断在程序的入口点:在选项——调试设置——事件,下可以设置第一次的断点,一般是选后面两个(即主模块入口点和winMain)。
(2)名词注释
System breakpoint:系统断点,OllyDbg用CreateProcessA加载DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在系统空间里。
Entry point of main module:主模块的入口点,即文件的入口点。
WinMain:程序的WinMain()函数入口点。
(3)
2.jpg
1.虚拟地址:一般情况下,同一程序的同一条指令在不同系统环境下此值相同。
2.机器码:这就是CPU执行的机器代码。
3.汇编指令:和机器码对应的程序代码。

三、调试技巧总结

快捷键补充:
(1)进入所有的断点界面(右键就有各种操作了):Alt+B 或者点击主界面的快捷键栏中的B,同理进入主界面(CPU界面)就按Alt+C或者点击主界面的快捷键栏中的C。
(2)当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按“Ctrl+F9”快捷键执行返回功能。这样OD就会停在遇到的第一个返回命令(如RET、RETF或IRET)
(3)如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里,可以按快捷键“Alt+F9”执行返回到用户代码命令。
(4)所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段代码的所有者。
(5)如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址一般是系统DLL所在的地址空间。
(6)程序通常读取文本框内容的字符串用的是以下两个函数:
GetDlgItemTextA(GetDlgItemTextW)
GetWindowTextA(GetWindowTextW)
(7)一般我们要结合经验通过猜测的方式多尝试几遍设陷阱,找出相关的函数。
(8)按“Ctrl+G”键打开跟随表达式的窗口。
(9)也可以通过“Ctrl+N”键打开应用程序的导入表(输入表),然后查看应用程序总共导入了哪些函数来以此推断需要在哪里挖坑下陷阱!
(10)关于返回值,汇编代码的返回值约定是存放在eax这个寄存器里边的,如果32位的eax不够存放返回值,系统会将返回值放在内存某个位置并把该位置的地址放在eax返回。

四、OD使用实践:暴力破解程序
(1)使用OD加载程序,搜索分别搜索GetDlgItemTextA、GetDlgItemTextW、GetWindowTextA、GetWindowTextW,搜索到的都下断点。
(2)运行程序,在程序弹出对话框时,输入用户名和系列号,然后按F8单步,在消息窗口观察哪条语句有我们刚刚输入的用户名和系列号。如下图:
1.PNG
(3)找到后,就在这条语句的附件会有校验和跳转(那个test就是效验,je就是跳转),我们可以修改效验结果,或者直接NOP掉跳转。(我这里直接NOP掉了跳转)
2.PNG
(4)保存修改后的程序,执行程序发现输入任意用户名和密码都能成功了(要大于5位数
3.PNG


谢谢小甲鱼带来的视频教程,感谢!!

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记,不对的请各位大佬指教,谢谢

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 07:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表