软件生成批处理文件的情况

DOS批处理命令

DOS批处理关机命令

今天所用到的示例程序仍然是《Shark恒零基础百集VIP破解教程》中的示例程序:

运行程序,发现程序打开就关闭了,并生成一个空文件夹:

先查一下壳:

VB的无壳程序,接着载入OD,因为是vb的程序,所以不能用OD的插件来设置程序退出的断点,所以在反汇编窗口右键-查看-所有模块间调用:

向下翻阅,查找vb程序的退出函数(end),vb程序调用的函数都是简写:

找到后右键-在每个调用到_vbaEnd上设置断点:

接着直接来到断点窗口,查看每一个断点处是否有跳转跳过:

第一个断点(0x0054613f):

到段首都没有发现可以跳过这个call的跳转,删除这个断点,接着看下一个断点(0x0059035f):

这一个断点也是如此,接着看下一个,如此往复直至最后一个断点。

在断点(0x0059a16f)处发现有跳转可以跳过,在跳转下断,接着删除call处的断点:

所有断点都看了后,重新对以下地址(跳转处)下断:

接着重新F9运行程序,在每一个断点处修改Z标志位改变原有的跳转实现状态:

第一个修改后F9运行程序,来到第二个,同样的操作,直至所有跳转都修修改完,接着出现提示框:

接着,软件成功打开:

这时,发现新生成了一个批处理文件,用记事本打开有一个关机命令:

这是一个倒计时自动关机的指令(设置为300秒后自动关机),这里需要取消自动关机,Windows+r输入命令“shutdown -a”即可取消:

输入后回车,发现提示关机的提示框关闭。

接下来先将之前的断点处跳转都修改(因为都是让跳转实现,所以将所有跳转修改为jmp),然后保存:

修改完后,右键-复制到可执行文件-所有修改,选择全部修改,然后保存文件:

但我们并不想打开这个修改后的软件后,电脑自动关机,接着对修改的文件再一次修改。

发现运行程序后生成的批处理文件名为:register

将第一次修改的程序载入OD,搜索字符串“register”:

发现有这个字符串,转到反汇编窗口:

向上溯源,没有发现跳转可以跳过,那么在段首处下断:

运行程序,在此处断下:

寄存器窗口出现批处理指令的字符串,说明这一断是程序生成关机命令的批处理文件的那一部分,因为之前转入时发现没有跳转可以跳过这个,所以直接运行到retn,出这个call(ctrl+F9):

发现此处弹出自动关机提示框,不予理会,取消自动关机即可,继续单步向下出这个call:

来到关键call处,发现一个跳转刚好跳过这个call,接下来就是修改,保存:

目的达到。

 
 
 

猜你喜欢

转载自blog.csdn.net/song_10/article/details/84799605