OD调试15

时间:2023-03-10 01:09:19
OD调试15

OD调试15

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