扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 来源:赛迪网安全社区 2007年10月18日
关键字:
在本页阅读全文(共2页)
再在OllyDbg中下面的代码区的全0区域的任意位置输入上述汇编代码,然后复制出对应的汇编机器码备用。在返回到偏移006083B0处,将JNZ SHORT LsDown.006083BA改为形如JMP 0060A310(你选定的位置),复制出机器码备用。到此,模拟补丁代码获取工作完成。
编写补丁程序
众所周知,反汇编后的代码位置的偏移与软件经过编译后的物理偏移是不一样的,要在壳外植入补丁需要取得对应位置的物理偏移。我们这里需要两处物理偏移,一处是对应于JNZ SHORT LsDown.006083BA的,一处是补丁部分的起始位置,这就要借助于文本编辑器进行。
用UltraEdit(或其它文本编辑器)打开前面保存的修改过的更名文件,使用查找功能查找hex:75 08 B8 01(对应于JNZ SHORT LsDown.006083BA)。得到首地址为:000935B0h,记下备用,然后拉到文件的最后,查找添加的代码位置(对应RETN),得到首地址为:00095510h(视你选择的位置不同而不同),记下备用,至此全部准备工作完成。
做好上述准备工作后,你就可以使用任一编程软件来编写你的补丁用程序了。
请注意我们所要做的工作:修改006083B0处的跳转;植入动态补丁代码和设置返回跳转,其余还应该考虑版本检测、原文件备份、提示帮助等问题。以下是我用 VB 编写的主要部分代码:
|
Icefire:细心的读者可能注意到,这两段代码中所使用的首地址比我们记录的首地址多1,这是因为VB的最小指针单位是1而不是0,而文本编辑器等的最小指针单位是0,所以在不同编程平台上编程时要多加注意。
编好补丁代码后,将其编译为可执行程序,然后试试你的东西,看能否将带壳的软件打补丁而且正常工作!如果一切正常,那你就大功告成了。
后记
有时,你可能想到要别出心裁的在软件中添加点属于自己有个性的东西,比如警示框等等。那也不难,只要你知道弹出对话框需要什么条件、用到哪些代码就可以做到的。例如:现在我想在软件启动前弹出一个对话框。
我们该如何做呢?这个问题当然要难一点。如果壳外有现成的对话框调用函数,就可以简单地进行调用。如果没有则需要添加较多的代码,这里就不讲了,免得有骗稿费之嫌。
总之,编写补丁如同编写一个软件,同样能实现自己的目的与愿望,展示自己的才华与智慧。个中乐趣只有亲自品尝之。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。