首页
社区
课程
招聘
[旧帖] [原创]破解软件运行个数限制--爆破法 0.00雪花
发表于: 2010-1-26 14:12 1571

[旧帖] [原创]破解软件运行个数限制--爆破法 0.00雪花

2010-1-26 14:12
1571
在看雪学习不短的时间了,这两天碰到一个共享软件局域网内只能同时运行一个,运行多个就会弹出消息框警告并且推出。于是就用爆破法对该程序进行了破解,为了版权问题,这里不公布软件名称。该贴也仅限于新人区学习交流,高手飘过请指点。

破解工具:OllyDbg
步骤:1.运行该程序使其出现这个错误,记录下来消息框上面的内容(其实就前几个字符就可以了)。
      2.用OD打开该程序,在OD的数据窗口按CTRL+B(查找),在弹出来的对话框ASCII一栏中输入这几个字符,
        然后找到该字符串开始的位置记录下来,以005645D3为例进行以下步骤。
      3.一般弹出对话框都是用MessageBox(A/W),在汇编中该字符创一定要压栈的。所以我们在反汇编窗口CTRL+B来查找该地址,HEX+04一栏中输入"D3 45 56 00"(不包括引号,因为在机器码中一般是倒着存储的),
        找到该字符串引用的地址我们看到一下内容:

           retn
           nop
           nop
           push    00597863                        
           push    1
           push    005645D3    ;这里引用了这个字符串的地址
           call    004122C0
           add     esp, 0C
           retn
        在这里我们发现这段代码引用了该地址,经过观察可以看到上面就是另外一个函数的返回。这段代码其实是
        做格式化字符串的,所以“push    00597863”这个指令是这段代码的首个指令,记录它的地址,我们以004D5565
        为例。接下来我们查找哪里的代码引用了该地址,反汇编窗口CTRL+B,找到引用这个地址的指令。
        4.经查找我们发现A地址处引用了这个地址,A地址处的代码如下:
        call    00548560
        add     esp, 0C
        test    eax, eax
        jnz     004DF6B2                         ;这个指令是重点,如果EAX为零往下执行,不为零跳转。我们把JNZ改成JZ
        inc     ebp
        lea     edx, dword ptr [esp+8]
        mov     eax, ebp
        mov     dword ptr [esi+40], eax
        mov     eax, esi
        mov     dword ptr [esp+8], 004D5565      ;这里引用了这个地址,向上查看代码
        mov     dword ptr [esp+C], esi
        我们找到引用的地方网上查找看是否有跳转指令,果然上面几行就出现了JNZ,如果这个是爆破点的话我们改完就可以解除限制了。
        JNZ对于我们来说很容易更改,只要改为JZ就可以了或者直接改为JMP。改完我们在这里设断点(目的是重新加载后能找到这个地方),
        然后运行,到此处F9下去,此时已经进入程序主界面,限制已经解除了。
        4.CTRL+F2重新加载程序,找到刚才设断点的地方。这时还是JNZ,我们把JNZ改为JZ或者JMP,选择这句代码,然后右键Copy to executable
        ->Selection,然后新出现的窗口中右键Save File,把修改保存的EXE中。这样新保存这个EXE就没有运行个数限制了。

        需要注意的是先备份好文件,以免把文件改坏不能运行。希望本贴能对想学爆破法破解的新手有所帮助

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 391
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
连地址都不标出来,难分析
2010-1-26 14:36
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
其实地址不是最主要的,在说明中我已经假定了地址是多少。爆破法主要是找到关键的跳转指令,如果仔细看步骤说明的话应该可以看明白。
2010-1-26 17:55
0
游客
登录 | 注册 方可回帖
返回
//