用OllyDbg爆破一个小程序

一、TraceMe小程序

TraceMe是对用户名、序列号判断是否合法的一个小程序。我们任意输入一组用户名、序列号进行check判断,结果如下:

用OllyDbg爆破一个小程序-LMLPHP

二、用OllyDbg对编译后的exe文件进行分析

用OllyDbg软件载入TraceMe.exe文件:如下:

用OllyDbg爆破一个小程序-LMLPHP

找到关键代码处:

用OllyDbg爆破一个小程序-LMLPHP

其二进制代码和对应的汇编代码如下:

85C0  TEST EAX,EAX; eax=0表示注册失败,eax=1表示注册成功

74 37 JE SHORT TraceMe.004011F3;如果不成功则进行跳转

那么我们只需要在此处进行干涉,不让其进行跳转,那么就表示注册成功。我们只需要把二进制代码改为nop nop,即90 90即可。

如下所示:

用OllyDbg爆破一个小程序-LMLPHP

用OllyDbg爆破一个小程序-LMLPHP

我们把74 37二进制代码成功改为90 90,但是这样改只是改了内存中的数据,我们要使修改一直有效就需要把这个修改写入内存中,如下所示:选中修改后的代码,单击右键,执行菜单“复制到可执行文件”—“选择”,如下图所示:

用OllyDbg爆破一个小程序-LMLPHP

用OllyDbg爆破一个小程序-LMLPHP

用OllyDbg爆破一个小程序-LMLPHP

保存为TraceMe.exe文件。

三、重新执行爆破后的TraceMe文件

先用之前的用户名,序列号进行测试,测试通过。

用OllyDbg爆破一个小程序-LMLPHP

再随机输入一组用户名、序列号,同样测试通过:

用OllyDbg爆破一个小程序-LMLPHP

四、几点小结

软件进行版权保护使用序列号是一种常用的方式,进行破解最好的方式是找出注册的算法,然后写出注册机。退而求其次是进行暴力破解,把注册算法中进行判断是否成功那段代码直接进行nop掉,这样之后无论输入什么信息都会注册成功。目前也有很多方法对抗暴力破解,在破解中最关键的是找到那段关键的代码。

05-11 18:34