• 标 题:呵呵!源江科技出的“源代码(VB篇)”破解过程^_^ (6千字)
  • 作 者:Cyrix686
  • 时 间:2001-7-28 18:45:09
  • 链 接:http://bbs.pediy.com

[开场白]

唉!

刚刚买了几张碟回来,但是除了那几张MPEG4好用之外,另外两张软件碟都不好用!

特别是那张“金山软件3000全集”,读不到!

还有那张源江科技出的“源代码(VB篇)”,原来要输入注册码,才可以用它自带的浏览器!!!!

我倒!注册费要20元?那别人买正版的呢?呵呵!可能附送了注册码吧?我这个盗版就没有!结果用不了!

只好自己动手!顺便作为庆祝FCG主页的ASP更新程序下个星期正式使用^_^http://www.cn778.net/index.asp


[说明]

目标软件:源江科技出的“源代码(VB篇)”的浏览器(和注册器)

使用工具:W32Dasm 8.93、UltraEdit-32


[开始]

    如果没注册,用它自带的浏览器browse.exe,一开始就会弹出“你的程序未注册”的对话框,然后自动退出!(呵呵!没有图片,因为忘记了在没注册之前截图^_^)

    要注册,就要用自带的注册器Regedit.exe,当然,我没有正确的注册码,按确定,会在软件左下角出现“注册失败”的字样(如图一)!呵呵!我就觉得源江科技有点“傻”,居然提供一个注册器,这个东西却是他的致命伤(看后文就知道了^_^)!

 

    最开始破解这个东西还有一点小插曲(我摆了个大乌龙^_^)——我把那两个文件copy到硬盘,接着用fi来检测一下有没有加壳(sunbird大哥教的^_^),结果没有,这个软件使用Delphi编的,然后用W32Dasm反编译browse.exe,然后打开“串式参考”,找到“你的程序未注册”,双击,看到代码如下:

* Possible StringData Ref from Code Obj ->"RegCode"
                                  |
:0046EC69 B91CED4600              mov ecx, 0046ED1C
:0046EC6E B201                    mov dl, 01
:0046EC70 A180D04600              mov eax, dword ptr [0046D080]
:0046EC75 E84EE9FFFF              call 0046D5C8
:0046EC7A A328294700              mov dword ptr [00472928], eax
:0046EC7F 6A00                    push 00000000
:0046EC81 8D45FC                  lea eax, dword ptr [ebp-04]
:0046EC84 50                      push eax

* Possible StringData Ref from Code Obj ->"vbsource"
                                  |
:0046EC85 B92CED4600              mov ecx, 0046ED2C

* Possible StringData Ref from Code Obj ->"yjkj"
                                  |
:0046EC8A BA40ED4600              mov edx, 0046ED40
:0046EC8F A128294700              mov eax, dword ptr [00472928]
:0046EC94 E8C3E9FFFF              call 0046D65C
:0046EC99 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"nsygbd0001"
                                  |
:0046EC9C BA50ED4600              mov edx, 0046ED50                  \
:0046ECA1 E87A50F9FF              call 00403D20                      / 呵呵!很明显吧?
:0046ECA6 7416                    je 0046ECBE                        / 把je改成jne就行啦!

* Possible StringData Ref from Code Obj ->"您的程序未注册"              //找到这里,往上找一找
                                  |
:0046ECA8 B864ED4600              mov eax, 0046ED64
:0046ECAD E832B5FDFF              call 0044A1E4
:0046ECB2 A180184700              mov eax, dword ptr [00471880]
:0046ECB7 8B00                    mov eax, dword ptr [eax]
:0046ECB9 E8B28BFDFF              call 00447870

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046ECA6(C)
|
:0046ECBE 33C0                    xor eax, eax
:0046ECC0 5A                      pop edx
:0046ECC1 59                      pop ecx
:0046ECC2 59                      pop ecx
:0046ECC3 648910                  mov dword ptr fs:[eax], edx
:0046ECC6 68F0EC4600              push 0046ECF0


    呵呵!用UltraEdit32载入browse.exe,查找E87A50F9FF,然后把紧接在后面的74选中,准备改成75,可是怎么改也改不了!呵呵!有什么地方出错呢?马上上网,找到peter,给peter看了看代码,他也是这么说的,但是,我就是改不了!呵呵!想了想,哦!原来那个文件是“只读文件”!所以当然改不了了!^_^(不知大家有犯过这种错误没有^_^)(感谢peter的帮助!)

    好了,把browse.exe改好后,运行,但是会出现一些错误的对话框,大概是我没有copy光碟上面其他的东西过来吧?但是,虽然可以进到browse.exe主界面,可是由于这个原因,仍然看不到那些内容!呵呵!由于硬盘空间有限,我不想把全部内容copy到硬盘,所以决定放弃这种方法!

    那我们就从Regedit.exe(不是windows那个哦!)入手吧!既然它有注册功能,就可能会成功^_^

    用W32Dasm反编译Regedit.exe,打开“串式参考”,找到“注册失败”,双击,回到主界面,看到如下的代码:

* Possible StringData Ref from Code Obj ->"nsygbd0001"            //很熟悉吧?browse.exe也有的
                                  |
:0045C6AB BA24C74500              mov edx, 0045C724              \
:0045C6B0 E8EF75FAFF              call 00403CA4                  / 又是熟悉的东东!
:0045C6B5 7520                    jne 0045C6D7                  / 把jne改成je,刚好与browse.exe
:0045C6B7 8BC3                    mov eax, ebx                    的改法相反!
:0045C6B9 E8E6FEFFFF              call 0045C5A4
:0045C6BE C6057CF8450001          mov byte ptr [0045F87C], 01

* Possible StringData Ref from Code Obj ->"注册成功"              // 我们期待的^_^ 
                                  |
:0045C6C5 BA38C74500              mov edx, 0045C738
:0045C6CA 8B83D8020000            mov eax, dword ptr [ebx+000002D8]
:0045C6D0 E8BBF3FFFF              call 0045BA90
:0045C6D5 EB24                    jmp 0045C6FB

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045C6B5(C)
|

* Possible StringData Ref from Code Obj ->"注册失败"              //找到了!往上找一找!
                                  |
:0045C6D7 BA4CC74500              mov edx, 0045C74C
:0045C6DC 8B83D8020000            mov eax, dword ptr [ebx+000002D8]
:0045C6E2 E8A9F3FFFF              call 0045BA90
:0045C6E7 33D2                    xor edx, edx
:0045C6E9 8B83D0020000            mov eax, dword ptr [ebx+000002D0]
:0045C6EF E80C85FCFF              call 00424C00
:0045C6F4 C6057CF8450000          mov byte ptr [0045F87C], 00

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045C6D5(U)
|
:0045C6FB 33C0                    xor eax, eax
:0045C6FD 5A                      pop edx
:0045C6FE 59                      pop ecx
:0045C6FF 59                      pop ecx
:0045C700 648910                  mov dword ptr fs:[eax], edx
:0045C703 6818C74500              push 0045C718


    呵呵!还是一样,把Regedit.exe的属性去掉“只读”(吸取教训呀^_^),然后用UltraEdit32找到E8EF75FAFF,把紧接在后面的75改成74,呵呵!保存,退出!直接执行Regedit.exe,乱输入一些注册码(呵呵!我是没有输入的^_^如果太太好运,输入正确的注册码,呵呵!那就会出现“注册失败”哦!),看看窗口的左下脚,出现“注册成功”了吧?

    呵呵!然后,回到光碟里面,执行光碟上面那个browse.exe就行啦!漂亮的界面终于出现啦!

 

[后记]

    其实,真正破解这个软件(不知道是不是叫做软件),所需要的时间应该可以控制在3分钟的,但是由于我的“乌龙”,结果用了半个小时^_^大家在破解软件的时候,可要注意这一点哦!(扔鸡蛋,有谁会像你这么傻!!%&*%##@!)

    还有,写这篇东西也用的将近半个小时!^_^

    要下载已破解的Regedit.exe,到FCG主页吧!http://www.cn778.net/index.asp


Cyrix686
2001-7-28