Authorware彩虹天地加密狗破解

前几天弄了张Authorware的盘,一安装,发现是用SalesAgent作的保护。很可笑,竟然可以直接
执行Authpop.exe从而得到完整的Authorware.exe!(不过,就算不能如此,相信SalesAgent的保护也应该
是“此时无它胜有它”吧?教程满天飞,unlocking code也是明码。呵呵……我还要说更多吗?
(1)    打狗
    不过,得到Authorware.exe后,一执行,跳出来一个MessageBox:Can’t Find A Hardware
Key……。好家伙,“城市不准养狗,处处总闻狗叫”,看来这个程序是带狗的。
    在Trw2000中,bpio 378,拦下来后,看了半天,竟然是在Sentinel.vxd中转悠,连pmodule都不行。
一气之下,把Sentinel.vxd删掉了。再启动,又被拦下,这下好了,是在主程序体中转圈。F12,F10几次以
后,结合W32Dasm的分析,发现下面是关键:

:0050D6B8 668B8B540B6200          mov cx, word ptr [ebx+00620B54]
:0050D6BF 662BC8                  sub cx, ax

:0050D6C2 6683F901                cmp cx, 0001  //就是这三句可以改掉
:0050D6C6 1BDB                    sbb ebx, ebx
:0050D6C8 F7DB                    neg ebx

:0050D6CA 85DB                    test ebx, ebx
:0050D6CC 7509                    jne 0050D6D7
:0050D6CE 8B442410                mov eax, dword ptr [esp+10]
:0050D6D2 8BCE                    mov ecx, esi
:0050D6D4 50                      push eax
:0050D6D5 FF17                    call dword ptr [edi]

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0050D691(C), :0050D6CC(C)
|
:0050D6D7 8BC3                    mov eax, ebx
:0050D6D9 5F                      pop edi
:0050D6DA 5E                      pop esi
:0050D6DB 5B                      pop ebx
:0050D6DC C20400                  ret 0004  //eax=0,bad guy!

修改:
:0050D6C2 6683F901                cmp cx, 0001
:0050D6C6 1BDB                    sbb ebx, ebx
:0050D6C8 F7DB                    neg ebx     
改为:
    mov    ebx,1
    nop
    nop
    nop
就可以去掉狗的限制了!

(2)    关于“关于”
    点“About”,弹出的DialogBox贴图竟然是“NON-COMMERCIAL”!
    下中断“bpx RegisterClassEx do “d *(*(esp+4)+24)”直到看到“AWABOUT”字样。分析该Class
的结构:

    00 00 00 00 <———Style
    C0 10 40 00 <———WndProc !
    00 00 00 00 <———clsExtra
    1E 00 00 00 <———WndExtra (DLGWINDOWEXTRA)
    00 00 40 00 <———Instance
    00 00 00 00 <———Icon
    EE 13 00 00 <———Cursor 
    06 00 00 00 <———Background (COLOR_WINDOWFRAME)
    00 00 00 00 <———MenuName
    98 40 61 00 <———ClassName  (AWABOUT)

    由此可见,该DialogBox的消息处理函数的入口在4010C0处。

    下断点:”bpx 4010C0 if (*(esp+8)==f)” 使其中断于WM_PAINT(因为贴图一定会有此消息)。

    中断后,跟踪可知[0061891D]处的值决定了显示图片的种类(因为重装了系统,所以找不到
    相关的代码了)。

    关闭程序,下断点”bpx 61891C w”,中断于:

:005830C9 3D7C010000              cmp eax, 0000017C
:005830CE 7502                    jne 005830D2

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005830B2(C)
|
:005830D0 33F6                    xor esi, esi    //就是这句要修改

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:005830CE(C)
|
:005830D2 85F6                    test esi, esi
:005830D4 741A                    je 005830F0
:005830D6 83E1FD                  and ecx, FFFFFFFD
:005830D9 A11C896100              mov eax, dword ptr [0061891C]

    跟踪,分析可知583000D0处的XOR指令NOP掉后,[0061891C]处的值就永远为0。从而显示没有
    标记的图片。

(3)    License的苦恼
    图片是改过来了,可是,“License to:”后面的Trial User却怎么也改不过来。

    程序调用Brand032.dll读取Brand.brd文件里面的内容,从而得到用户名和注册号。其中的运算
    过程实在是复杂过头,我看不懂。

    你也可以修改Brand.brd文件,从而让程序启动时跳出一个输入框让你输入名字,公司,注册号。
    可是这里面的运算(调用cereal.dll)也同样复杂难懂。好像和MacroMedia公司其它产品的算法
    不太一样。 

相关推荐

发表评论

您的电子邮箱地址不会被公开。

QQ点我咨询