![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
可以达到不脱壳的妙用。含义:把补丁写入程序代码,就叫内嵌补丁
那我们先看看今天的程序
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMTMxMS0xMzk5NTM3MTY2LnBuZw%3D%3D.png?w=700&webp=1)
是一个写DVD目录的程序,点continue就可以进入使用了 发现一个还有29天 就过期了 ,点enter reg.code的时候,乱输出现not valid的窗口 ,当然我们改一下日期 ,它的continue就会灰掉 ,然后这个程序就不能用了,需要购买或者是注册码。
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMTkwNS0xNjg3MzkxOTc4LnBuZw%3D%3D.png?w=700&webp=1)
把时间改掉之后后改回来,发现还是灰色的 不能用了。 说明它把使用日期肯定写入了电脑的某个地方,可能是注册表之类的。
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMjI0OS0zMzM1OTE3MjYucG5n.png?w=700&webp=1)
我们先查壳
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMjgyNy0xNDgzNDU1NjQuanBn.jpg?w=700&webp=1)
发现 没有壳,是用VC6写的,那我们用OD载入,让程序跑起来
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMzIwMi02ODMyODU0Ny5wbmc%3D.png?w=700&webp=1)
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyMzg5MC0xMjM3OTk4Mjk1LnBuZw%3D%3D.png?w=700&webp=1)
跑起来,试着输入一下注册码。发现OD没有反应。那我们输入好名字和注册码之后,不要点OK,返回程序,ctrl+n 搜索killtimer这个函数
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNDQ1Mi0xMzYwOTU5MjU5LnBuZw%3D%3D.png?w=700&webp=1)
设置完断点后,点击OK,然后就会发现程被断下来了,经过观察上面跳转,来到跳转的起初
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNDg3NC0xMjg1OTI5NjMwLnBuZw%3D%3D.png?w=700&webp=1)
正常的,这里传了个值给eax 只要把它改为4 这个程序就成功了,但是发现汇编之后,程序的代码都变了,于是要用到我们的内嵌补丁。什么是内嵌补丁呢?
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNTI5Ni0xODY1NDEyMDg1LnBuZw%3D%3D.png?w=700&webp=1)
有一些用机器码填充的地方,我们就可以利用这些地方,我们先到上面设置个书签
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNTcxOC01MDMwNTE4Mi5wbmc%3D.png?w=700&webp=1)
书签的作用就是可以随时回去,不至于跑丢了,那我们用二进制复制这两个代码
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNjE1NS0xOTQ4OTAxMzgxLnBuZw%3D%3D.png?w=700&webp=1)
到我们刚刚想去的那个被机器码填充的地方 可以提前记录一下
相当于把这部分的代码转移到另一个地方实现
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNjc2NS02NjUyNTUxMDUucG5n.png?w=700&webp=1)
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNzI2NS05MjY5NjE1MTAucG5n.png?w=700&webp=1)
那我们保存一下 看看行不行
发现成功运行了,,,但是这个程序死掉了
我们可以具体单步来看看
发现只有成功执行到B才能够走出程序
于是我们把之前的修改再修改下 改为mov eax,0B 试着打开程序 发现OK了。
![OD调试15 OD调试15](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlczIwMTUuY25ibG9ncy5jb20vYmxvZy84MjQ3MTcvMjAxNTExLzgyNDcxNy0yMDE1MTExNjIxNDYyNzY1NS0xMDM4NTg2ODc1LnBuZw%3D%3D.png?w=700&webp=1)
就是这样了。