• 标 题:曾经看见过CrypKey SDK v5.2的注册机 Duelist/CORE (4千字)
  • 作 者:FiNALSErAPH
  • 时 间:2001-11-15 21:13:22
  • 链 接:http://bbs.pediy.com

我从来没有找到过,(但肯定有,因为我从下载的注册机中得到的NFO文件中确定了)。我现在用的是一个DEMO版,使用原来旧版本的注册机+旧版本的Cryp9516x.DLL以欺骗方式解密的。你如果想下载最新版的DEMO请到http://www.crypkey.com/。前段时间我曾在此寻求有关CrypKey破解的帮助(注意:是算法破解而非脱壳-脱壳太Easy了),可惜没人理我,亏我还是看着这个论坛火起来的,哎...

再附欺骗手法:

    安装CrypKey最新DEMO-版本5.3.218至C:\CKI,备份一个至D:\CKI,拷贝旧版本的Cryp9516c.DLL至D:\CKI并重命名为Cryp9516e.DLL,使用Duelist/CORE的注册机对D:\CKI的CrypKey Instant及Site Key Generator进行注册。再将License导回C:\CKI,这样你就拥有一个可使用的CrypKey了。详细的使用方法可参看Duelist/CORE的注册机中的NFO文件。我在Win98下确实试验成功了!!!

再次寻求帮助!!!

    请问有那位高手对CrypKey的加密算法有研究,请不吝赐教。我只解决了校验初期及末期的简单异或运算,对于核心部分的运算(经过对被加密程序及DEMO版中的Site Key Generator进行分析)还毫无心得,反正其中使用了浮点运算指令。如果有哪位高手有兴趣一起研究,请E-Mail联系。我的E-Mail地址:hzhprivate@yahoo.com.cn。为了大家研究方便我简要给出一些在分析SKW.EXE时的关键数据:

//CrypKey v5.3.218解密分析
//
//以下程序片段来自CrypKey Site Key Generator v5.4
//
//脱壳后进行反编译。(注意:脱壳后的程序不可运行,我想是对入口表做了特殊处理)
/************************************************
/*    程序开始 - 主程序部分
/*    这段程序将输入的SITE CODE转化为SITE KEY
/*    为了统一观察结果,我采用下面这个SITE CODE:
/*    D268 96B6 2C22 B0AD AF
/*    采用生成1个无限制协议
/************************************************
/*    D268 96B6 2C22 B0AD AF  -
/*                            | ->这一步运算已经实现(004166F2 call 00416EED)
/*    04CF 0C7E 8401 2B4E 49  -
/*
/*    F936 0004 1728 9259            - (这组数字纯粹与SITE CODE有关)
/*                                  | ->(00416701 - 0073F384)
/*    7901 5465 0000 0000 0000 9E5A  - (这组数字是SITE CODE与Liscence的信息综合)
/*      ** ->这就是生成Liscence的Copy Number(0 - 127)
/*    ** ->决定了Liscence的属性(可叠加性等)
/*                            **** ->相当于前两项属性的校验
/*    (004176ED - 0073F4D8)
/*
/*    下面两组字符串实际上是在同一段程序中产生的
/*    93AE CE84 0000 0000 0000 94A5
/*
/*    2193 AECE 8400 0000 0000 0094 A5  -
/*                                      | ->这一步的运算已经实现
/*    F711 68A4 9C06 C66A 1806 C6FE 29  -
/************************************************
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00417400(C)
|
:00417410 8D95F0FEFFFF            lea edx, dword ptr [ebp+FFFFFEF0]    //EDX -> 变换的结果
:00417416 52                      push edx
:00417417 68300EFE40              push 40FE0E30
:0041741C 6A00                    push 00000000
:0041741E 6800B49040              push 4090B400
:00417423 6A00                    push 00000000
:00417425 56                      push esi                //ESI -> 已经去除了空格的SITE CODE

* Possible Reference to String Resource ID=00001: "English"
                                  |
:00417426 6A01                    push 00000001                //重要参数,决定了下面调用的内部路由
:00417428 E8A3F2FFFF              call 004166D0                //对已经去除了空格的SITE CODE进行变换
                                    //(关键调用,着重分析对象)
:0041742D 83C41C                  add esp, 0000001C
:00417430 8D4DF8                  lea ecx, dword ptr [ebp-08]        //ECX -> 变换的结果
:00417433 51                      push ecx
:00417434 8D85F0FEFFFF            lea eax, dword ptr [ebp+FFFFFEF0]    //EAX -> 上一步得到的字符串
:0041743A 50                      push eax
:0041743B E812F7FFFF              call 00416B52                //将输入的字符串转为相应的数字串
:00417440 83C408                  add esp, 00000008
:00417443 8BF0                    mov esi, eax
:00417445 56                      push esi
:00417446 8D45F8                  lea eax, dword ptr [ebp-08]        //EAX -> 上一步得到的数字串
:00417449 50                      push eax
:0041744A E803FAFFFF              call 00416E52                //对输入的数字串作CRC校验,结果返回AX
:0041744F 83C408                  add esp, 00000008
:00417452 6685C0                  test ax, ax                //校验结果
:00417455 7410                    je 00417467                //通过校验
:00417457 8B5530                  mov edx, dword ptr [ebp+30]
:0041745A C60200                  mov byte ptr [edx], 00
:0041745D B8FEFFFFFF              mov eax, FFFFFFFE            //置错误代码
:00417462 E999020000              jmp 00417700                //结束
///////////////////////////////////////////////////////////