Zhlw.com - 中华龙网

站长资讯通告:
搜索: 您的位置中华龙网 > 计算机网络 > 安全防御 > 破解文章 > 文章列表

算法浅探——EXE文件捆绑器V1.0(6)

作者:bear  来源:转载  发布时间:2006-4-30 15:11:03
 下面是对AL的取值范围进行比较,如果不在此范围则继续循环直至符合为止!
:004860B5 3C41                    cmp al, 41
:004860B7 7204                    jb 004860BD
:004860B9 3C5A                    cmp al, 5A
:004860BB 7610                    jbe 004860CD

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004860B7(C)
|
:004860BD 3C61                    cmp al, 61
:004860BF 0F824DFFFFFF            jb 00486012
:004860C5 3C7A                    cmp al, 7A
:004860C7 0F8745FFFFFF            ja 00486012
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004860BB(C)
|
:004860CD 3C61                    cmp al, 61
:004860CF 7202                    jb 004860D3
:004860D1 2C20                    sub al, 20

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004860CF(C)
|
:004860D3 8D5301                  lea edx, dword ptr [ebx+01]
:004860D6 C1E204                  shl edx, 04
:004860D9 32D0                    xor dl, al
:004860DB 8BF3                    mov esi, ebx
:004860DD 81E6FF000000            and esi, 000000FF
:004860E3 46                      inc esi
:004860E4 8BC6                    mov eax, esi
:004860E6 C1E004                  shl eax, 04
:004860E9 88907BBD4800            mov byte ptr [eax+0048BD7B], dl
                     循环结果    ====>DL=①48 ②73 ③76 ④09 ⑤18 ⑥26 ⑦3D ⑧C3

:004860EF 33C0                    xor eax, eax
:004860F1 8AC3                    mov al, bl
:004860F3 40                      inc eax
:004860F4 C1E004                  shl eax, 04
:004860F7 8D0476                  lea eax, dword ptr [esi+2*esi]
:004860FA 3A907BBD4800            cmp dl, byte ptr [eax+0048BD7B]
:00486100 7511                    jne 00486113
:00486102 33C0                    xor eax, eax
:00486104 8AC3                    mov al, bl
:00486106 83C005                  add eax, 00000005
:00486109 8D0480                  lea eax, dword ptr [eax+4*eax]
:0048610C C6807BBD480001          mov byte ptr [eax+0048BD7B], 01

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00486100(C)
|
:00486113 43                      inc ebx
:00486114 80FB08                  cmp bl, 08
:00486117 0F85F1FEFFFF            jne 0048600E
                                 ====>大循环8次,得出8个值!

:0048611D 33C0                    xor eax, eax
:0048611F 5A                      pop edx
:00486120 59                      pop ecx
:00486121 59                      pop ecx
:00486122 648910                  mov dword ptr fs:[eax], edx
:00486125 6850614800              push 00486150

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0048614E(U)
|
:0048612A 8D45F4                  lea eax, dword ptr [ebp-0C]
:0048612D E842E3F7FF              call 00404474
:00486132 8D45F8                  lea eax, dword ptr [ebp-08]

* Possible StringData Ref from Code Obj ->".3"
                                 |
:00486135 8B15EC5E4800            mov edx, dword ptr [00485EEC]
:0048613B E8F8F9F7FF              call 00405B38
:00486140 8D45FC                  lea eax, dword ptr [ebp-04]
:00486143 E82CE3F7FF              call 00404474
:00486148 C3                      ret

—————————————————————————————————
【求        逆】:


现在我已知道程序首先对试炼码进行简单的异或处理得出新的值;设为S1。
然后,程序通过对用户名和序列号的运算再次得出一组值;设为S2
只要S1=S2,则OK!

所以我们可以通过K2简单求逆就可得出真正的注册码!

这是K1的生成过程:
:004863EE 32CB                    xor cl, bl
                           1、   ====>CL=31 XOR 10=21
                           2、   ====>CL=33 XOR 20=13
                           3、   ====>CL=35 XOR 30=05
                           4、   ====>CL=37 XOR 40=77
                           5、   ====>CL=32 XOR 50=62
                           6、   ====>CL=34 XOR 60=54
                           7、   ====>CL=36 XOR 70=46
                           8、   ====>CL=38 XOR 80=B8

现在我的S2=①48 ②73 ③76 ④09 ⑤18 ⑥26 ⑦3D ⑧C3
所以注册码的求逆过程为:
                           1、   ====>K1=48 XOR 10=58        即:字符X
                           2、   ====>K2=73 XOR 20=53        即:字符S
                           3、   ====>K3=76 XOR 30=46        即:字符F
                           4、   ====>K4=09 XOR 40=49        即:字符I
                           5、   ====>K5=18 XOR 50=48        即:字符H
                           6、   ====>K6=26 XOR 60=46        即:字符F
                           7、   ====>K7=3D XOR 70=4D        即:字符M
                           8、   ====>K8=C3 XOR 80=43        即:字符C

所以,我的注册码为:XSFIHFMC

另外,再多说一点,如果仅仅是在验证外的某处爆破的话,会显示“已注册”,但是合并后的文件是会非法操作的。
呵呵,即便如此,却也比 开山文件合并器  要“温柔”的多了。

—————————————————————————————————
【注册信息保存】:


REGEDIT4

[HKEY_LOCAL_MACHINE\Software\exebind\reg]
"user"="fly0"
"regcode"="XSFIHFMC"

—————————————————————————————————
【整        理】:


序列号:211C1E09  
用户名:fly0
注册码:XSFIHFMC

—————————————————————————————————

   
                   Cracked By 巢水工作坊——fly【OCN】

                          2003-04-04 11:01:11

        用户名: 验证码: 验证码,看不清楚?请点击刷新验证码 (注“”为必填内容。)


文章评论: [ 查看全部 ] 网友评论
关于本站 - 网站帮助 - 广告合作 - 友情连接 - 网站地图