飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7941|回复: 13

[原创] Quick Batch File Compiler V2.1.6.0爆破(太简单,高手别进)

[复制链接]

该用户从未签到

发表于 2007-10-7 20:54:57 | 显示全部楼层 |阅读模式
【破文标题】Quick Batch File Compiler V2.1.6.0 BY seonts
【破文作者】senots
【作者邮箱】
【作者主页】
破解工具】OD/PEID
【破解平台】XP
【软件名称】Quick Batch File Compiler V2.1.6.0
【软件大小】1076KB
【原版下载】http://tele.skycn.com/soft/29356.html#download
【保护方式】
【软件简介】Quick Batch File Compiler是一款通过一次点击就可以将批处理文件转换成真正的可执行文件的程序,它可以毫无限制地运行于Windows 95/98/ME/2000/2003/XP下。批处理文件的内容能够被保护以防止改变。
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------
【破解过程】哈哈`~无聊。在天空下了个这个。发现是个软柿子~~~~
~高手飘过。新手进来看看就可以了~~
安装后。主程序是quickbfc.exe。
一、脱壳。UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo。
UPX的。直接搜索popad。搞定。
二、脱壳后是Borland Delphi 6.0 - 7.0的。OD载入~
然后超级字符串搜索~
发现注册表中有东西~
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Abyssmedia\Quick Batch File Compiler\Settings]
"user"="senots"
"key"="78787878"
"exetype"=dword:00000001
"savedir"="D:\\Program Files\\Quick Batch File Compiler\\"
"samename"=dword:00000000
"fontname"="Courier New"
"password"=""
呵呵。程序会把注册码跟用户名保存到这里。

同时发现
2ce78c0a5aaf440ace43c74773b98d6d04d0298c41e427e32980b94faf0be564562a865b05444575a88d6d8d36ca7138bad5e6c1c7bd8d59e4300d3b9c9a5823766b1c393e9c7cc19fde2bc0c060da9b4e4c8040a042856d18fe1f6b2fbdd1dced5ab2648267e95105985a16e37d6ef964901a8094dfe68c6d7965520e8e ....
这么长串东西~~~~~(经后面调试~发现应该有2048个字符。。)。应该跟注册算法有关。双击。来到004A2E2B处。
运行程序,来到注册窗口。填入内容senots 78787878。在004A2E09下断。点注册。断了下来。
004A2E09    51                   push ecx
004A2E0A    51                   push ecx
004A2E0B    51                   push ecx
004A2E0C    51                   push ecx
004A2E0D    51                   push ecx
004A2E0E    53                   push ebx
004A2E0F    56                   push esi
004A2E10    8955 FC              mov dword ptr ss:[ebp-4],edx
004A2E13    8B45 FC              mov eax,dword ptr ss:[ebp-4]
004A2E16    E8 611CF6FF          call unpack.00404A7C
004A2E1B    33C0                 xor eax,eax
004A2E1D    55                   push ebp
004A2E1E    68 9D2E4A00          push unpack.004A2E9D
004A2E23    64:FF30              push dword ptr fs:[eax]
004A2E26    64:8920              mov dword ptr fs:[eax],esp
004A2E29    33DB                 xor ebx,ebx
004A2E2B    B8 A8B04700          mov eax,unpack.0047B0A8             ; 2ce78c0a5aaf440ace43c74773b98d6d04d0298c41e427e32980b94faf0be564562a865b05444575a88d6d8d36ca7138bad5e6c1c7bd8d59e4300d3b9c9a5823766b1c393e9c7cc19fde2bc0c060da9b4e4c8040a042856d18fe1f6b2fbdd1dced5ab2648267e95105985a16e37d6ef964901a8094dfe68c6d7965520e8e ...
004A2E30    8945 F0              mov dword ptr ss:[ebp-10],eax
004A2E33    8D45 F8              lea eax,dword ptr ss:[ebp-8]
004A2E36    E8 9117F6FF          call unpack.004045CC
004A2E3B    8D4D F4              lea ecx,dword ptr ss:[ebp-C]
004A2E3E    8B55 FC              mov edx,dword ptr ss:[ebp-4]
004A2E41    B8 03010000          mov eax,103
004A2E46    E8 C97AFDFF          call unpack.0047A914
004A2E4B    33F6                 xor esi,esi
004A2E4D    8D45 EC              lea eax,dword ptr ss:[ebp-14]
004A2E50    8BD6                 mov edx,esi
004A2E52    C1E2 02              shl edx,2
004A2E55    8B4D F0              mov ecx,dword ptr ss:[ebp-10]
004A2E58    8D14D1               lea edx,dword ptr ds:[ecx+edx*8]
004A2E5B    B9 20000000          mov ecx,20
004A2E60    E8 D719F6FF          call unpack.0040483C
004A2E65    8B45 EC              mov eax,dword ptr ss:[ebp-14]       ;从2048个取第N组32个字符出来(N为循环次数)
004A2E68    8B55 F4              mov edx,dword ptr ss:[ebp-C]        ;不知道从什么得来的32个字符(好象是从输入的注册码得来的)
004A2E6B    E8 681BF6FF          call unpack.004049D8                ;比较是否相等
004A2E70    75 02                jnz short unpack.004A2E74           ;关键跳。NOP掉!
004A2E72    B3 01                mov bl,1
004A2E74    46                   inc esi
004A2E75    83FE 65              cmp esi,65                          ;控制循环次数
004A2E78  ^ 75 D3                jnz short unpack.004A2E4D           ;循环。
004A2E7A    33C0                 xor eax,eax
004A2E7C    5A                   pop edx
004A2E7D    59                   pop ecx
004A2E7E    59                   pop ecx
004A2E7F    64:8910              mov dword ptr fs:[eax],edx
004A2E82    68 A42E4A00          push unpack.004A2EA4
004A2E87    8D45 EC              lea eax,dword ptr ss:[ebp-14]
004A2E8A    E8 3D17F6FF          call unpack.004045CC
004A2E8F    8D45 F4              lea eax,dword ptr ss:[ebp-C]
004A2E92    BA 03000000          mov edx,3
004A2E97    E8 5417F6FF          call unpack.004045F0
004A2E9C    C3                   retn                                 
004A2E9D  ^\E9 0611F6FF          jmp unpack.00403FA8
004A2EA2  ^ EB E3                jmp short unpack.004A2E87
004A2EA4    8BC3                 mov eax,ebx
004A2EA6    5E                   pop esi
004A2EA7    5B                   pop ebx
004A2EA8    8BE5                 mov esp,ebp
004A2EAA    5D                   pop ebp
004A2EAB    C3                   retn                                 ;这里返回到4A3486

-------------------------------------------------------------

从004A2EAB返回到下面:
004A3486    84C0                 test al,al            
004A3488    74 35                je short unpack.004A34BF             ;al如果为0则注册失败。不跳注册成功
004A348A    6A 00                push 0
004A348C    66:8B0D C4344A00     mov cx,word ptr ds:[4A34C4]
004A3493    B2 02                mov dl,2
004A3495    B8 D0344A00          mov eax,unpack.004A34D0             ; registration successful!
004A349A    E8 AD00F9FF          call unpack.0043354C
004A349F    8B83 70030000        mov eax,dword ptr ds:[ebx+370]
004A34A5    8B80 08020000        mov eax,dword ptr ds:[eax+208]
004A34AB    BA 01000000          mov edx,1
004A34B0    E8 7FD9F9FF          call unpack.00440E34
004A34B5    BA F4344A00          mov edx,unpack.004A34F4             ; registered version
004A34BA    E8 D1D8F9FF          call unpack.00440D90
004A34BF    5B                   pop ebx
004A34C0    C3                   retn

***004A2E70处就是关键跳了!!!NOP掉就OK了*******

但是,改004A3488 处的跳转只是当时注册成功。重启动后又不成功了~~~~应该有重启验证咯`~
依然在004A2E09处下断点。然后再运行程序。好。断下来。
一路F8。发现最后的retn返回到了004A3F8E
004A3F8E    84C0                 test al,al
004A3F90    74 20                je short unpack.004A3FB2
004A3F92    8B83 70030000        mov eax,dword ptr ds:[ebx+370]
004A3F98    8B80 08020000        mov eax,dword ptr ds:[eax+208]
004A3F9E    BA 01000000          mov edx,1
004A3FA3    E8 8CCEF9FF          call unpack.00440E34
004A3FA8    BA E0414A00          mov edx,unpack.004A41E0             ; registered version

*******************这里就是重启验证了,004A3F90也应该nop掉!***********************
接上,F9运行程序后,点注册模块。又被断在004A2E09~哈~一样是判断是否注册。
这次,retn返回到004A0DE8。
004A0DE8    84C0                 test al,al
004A0DEA    74 57                je short unpack.004A0E43
004A0DEC    8B15 64884A00        mov edx,dword ptr ds:[4A8864]       ; unpack.004AC1CC
004A0DF2    8B12                 mov edx,dword ptr ds:[edx]
004A0DF4    8B83 18030000        mov eax,dword ptr ds:[ebx+318]
004A0DFA    E8 0D71FBFF          call unpack.00457F0C
004A0DFF    BA 500E4A00          mov edx,unpack.004A0E50             ; registered version
004A0E04    8B83 20030000        mov eax,dword ptr ds:[ebx+320]

**********************这里判断是否注册,来控制注册模块是否禁用***********************

写得很乱。不管这样,都会通过004A2E70处的跳转来影响al的值。所以。这里为关键跳咯。其他不用改。

nop掉004A2E70则注册成功。

也试着去跟了下算法。。。。。搞不明白。。哎~~~~

附上我的loader补丁。呵呵`~

------------------------------------------------------------------------
【破解总结】算法搞不懂。。。。。。
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 版权归飘云阁所有,转载请注明作者并保持文章的完整, 谢谢!

[ 本帖最后由 senots 于 2007-10-7 21:03 编辑 ]

loader.rar

5.03 KB, 下载次数: 5, 下载积分: 飘云币 -2 枚

评分

参与人数 1威望 +8 收起 理由
lxk836 + 8 感谢您发布的原创作品!

查看全部评分

PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-10-7 21:04:04 | 显示全部楼层
期待高手的算法。。。。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-10-7 21:52:27 | 显示全部楼层
若md5(key)=已知的65个md5值的任意一个,注册成功
否则不成功
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-10-7 22:18:02 | 显示全部楼层
哦。是MD5啊`~谢啦。`~~
去看看~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-10-7 22:19:22 | 显示全部楼层
恩。果然。哈哈~~下午我猜是MD5的时候。用的是用户名。。。。后面发现是因为注册码不同而不同时~就没去试了`~谢楼上的指点。
PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2019-7-5 06:17
  • 签到天数: 97 天

    [LV.6]常住居民II

    发表于 2007-10-8 09:08:48 | 显示全部楼层
    感谢,比较适合我学习了。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-8 12:33:01 | 显示全部楼层
    不错 重新验证的破解~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-18 08:13
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2007-10-8 20:34:34 | 显示全部楼层
    学习 学习  很好啊  重新学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-10-8 21:43:36 | 显示全部楼层
    不错,重启验证处理得很好!
    在我看来,重启验证(如果是标志位判断)的破解关键在于找到有关标志位判断的地方。最近碰到好几个软件都是简单地一个动作可以搞定,但是麻烦一般在于找寻重启验证的标志位......
    PYG19周年生日快乐!
  • TA的每日心情
    郁闷
    2020-4-4 19:46
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2007-10-15 17:55:47 | 显示全部楼层
    mov al,1
    rent
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表