首页
社区
课程
招聘
[原创]02.11.12.28 CrackMe分析
发表于: 2011-12-28 09:27 9009

[原创]02.11.12.28 CrackMe分析

2011-12-28 09:27
9009

【文章标题】: CrackMe分析2.11.12.28【第一关】
【文章作者】: HcyRcer
【作者邮箱】: 421458119@qq.com
【作者主页】: http://hi.baidu.com/kao4ni/home
【作者QQ号】: 421458119
【下载地址】: 自己搜索下载
【加壳方式】: 无
【编写语言】: Borland Delphi 4.0 - 5.0
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  此 CrackMe 共有4 关!!!暂时只解决第一关,也就是最简单的!!
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  PEID查壳:Borland Delphi 4.0 - 5.0
  既然是 Delphil写的,那我们就按常理来, 用DEDE查 按钮过程!!
  DEDE打开后,来到【过程】 看到 很多很多过程!!到底是哪个才是我们要找的 按钮过程呢?
  看到了有个 SpeedButton1Click 0044C3A4 事件 !!里面有个 Button1字串 ,并且 我们看到 CrackMe  的第一个按钮!
  估计就是他了 !把这个地址复制下来!!!
  
  打开OD,运行程序后,CTRL + G 来到 0044C3A4 !!然后 F2 ! 对该地址下断!!
  输入 12345 点击 Check后!! OD成功断在 0044C3A4 地址!!说明我们的 按钮过程找对了!!
  
  单步然后 F8开始分析 按钮过程!跟踪了 十几次,
  来到了 第二个跳转
  0044C3D5    call CrackMe_.00403A74
  0044C3DA    cmp  eax,0C
  0044C3DD    jnz  CrackMe_.0044C536
  
  
  发现跳转已经实现,我们当跳了之后!!发现程序就是提示错误 !!我们可以知道 此跳转 是判断 正确的!!
  我们 就进入上面 那个判断正确的 CALL里看看 (0044C3D5    call CrackMe_.00403A74)!刚进入CALL时,
  发现 右侧的 EAX寄存器显示的 正是我们输入的 12345
  发现这个CALL 只有 短短4行!
  ~~~~~~~~~~~~~~~~~~~~~~~~~~0044C3D5    call CrackMe_.00403A74~~~~~~~~~~~~~~~~~~~~
  00403A74    test eax,eax                   //EAX此时显示 12345
  00403A76    je   short CrackMe_.00403A7B    判断是否输入
  00403A78    mov  eax,dword ptr ds:[eax-4]  //EAX被 赋值为 输入的个数(5个)
  00403A7B    retn
  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  
  再返回到上面看,可以推断
  然后看到下面 一大片 一模一样的东西 ,我们开始 F8 单步跟
  0044C3D5   |.  E>call CrackMe_.00403A74   //EAX被 赋值为 输入的个数(5个)
  0044C3DA   |.  8>cmp eax,0C               //判断个数是否为12位
  0044C3DD   |.  0>jnz CrackMe_.0044C536   
  0044C3E3   |.  8>lea edx,dword ptr ss:[ebp-4]  //开始1
  0044C3E6   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C3EC   |.  E>call CrackMe_.00425824
  0044C3F1   |.  8>mov eax,dword ptr ss:[ebp-4]
  0044C3F4   |.  8>cmp byte ptr ds:[eax],43
  0044C3F7   |.  0>jnz CrackMe_.0044C524          //结束1
  0044C3FD   |.  8>lea edx,dword ptr ss:[ebp-8]  //开始2
  0044C400   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C406   |.  E>call CrackMe_.00425824
  0044C40B   |.  8>mov eax,dword ptr ss:[ebp-8]
  0044C40E   |.  8>cmp byte ptr ds:[eax+3],6F
  0044C412   |.  0>jnz CrackMe_.0044C524        //结束2
  0044C418   |.  8>lea edx,dword ptr ss:[ebp-C]   //开始3
  0044C41B   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C421   |.  E>call CrackMe_.00425824
  0044C426   |.  8>mov eax,dword ptr ss:[ebp-C]
  0044C429   |.  8>cmp byte ptr ds:[eax+8],6F
  0044C42D   |.  0>jnz CrackMe_.0044C524           //结束3
  ............................等 很多
  
  发现没到 类似 cmp byte ptr ds:[eax],43 !在OD右侧的寄存器中就会显示 EAX为我们输入的 12345! 而且
  每当 CMP之后 !会跟着一个 jnz CrackMe_.0044C524 都跳向了同一个地址  0044C524
  观察发现  0044C524 显示 WRONG PASSWORD!!!

我们可以知道 原来 由很多的 CMP .. 和 jnz CrackMe_.0044C524
  组成了 判断码的部分!!! 这个cmp byte ptr ds:[eax+常数],常数  
  的意思是 判断指定位 是否为指定值!!!如下
  0044C3D5   |.  E>call CrackMe_.00403A74   //EAX被 赋值为 输入的个数(5个)
  0044C3DA   |.  8>cmp eax,0C               //判断个数是否为12位
  0044C3DD   |.  0>jnz CrackMe_.0044C536   
  0044C3E3   |.  8>lea edx,dword ptr ss:[ebp-4]   
  0044C3E6   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C3EC   |.  E>call CrackMe_.00425824
  0044C3F1   |.  8>mov eax,dword ptr ss:[ebp-4]
  0044C3F4   |.  8>cmp byte ptr ds:[eax],43    第一位是否为43
  0044C3F7   |.  0>jnz CrackMe_.0044C524           
  0044C3FD   |.  8>lea edx,dword ptr ss:[ebp-8]   
  0044C400   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C406   |.  E>call CrackMe_.00425824
  0044C40B   |.  8>mov eax,dword ptr ss:[ebp-8]
  0044C40E   |.  8>cmp byte ptr ds:[eax+3],6F  第4位是否为6F
  0044C412   |.  0>jnz CrackMe_.0044C524         
  0044C418   |.  8>lea edx,dword ptr ss:[ebp-C]   
  0044C41B   |.  8>mov eax,dword ptr ds:[ebx+2E8]
  0044C421   |.  E>call CrackMe_.00425824
  0044C426   |.  8>mov eax,dword ptr ss:[ebp-C]
  0044C429   |.  8>cmp byte ptr ds:[eax+8],6F  第9位是否为6F
  0044C42D   |.  0>jnz CrackMe_.0044C524           
  ....
  
  
  一直F8 跟,遇到跳就 不让它跳,直至成功!!
  
  
  
  
  
  
  发现没什么算法!!!就是把输入的 每位与 常量比对!!
  如下: 必须输入12位
  12位                    必须为
  1                        43  //第一位必须为43
  2                        6c  //第二位必须为6C
  3                        6E //第三位必须....
  4                        6F
  5                        20
  6                        69
  7                        67
  8                        75
  9                        6F
  10                        6E
  11                        52
  12                        6E
  ~~~~~~~~~~
  12位连起来 436C6E6F206967756F6E526E
  我们把他到我 我做的 字符串转换软件如下:
  
  
  
  发现ASCII码为:Clno iguonRn
  我们打开软件 输入 Clno iguonRn !!点击注册,提示成功!!!
  到此为止 !破解成功!!

  
  
  
  
  
  
--------------------------------------------------------------------------------
【经验总结】
  没有算法!!
  注册死码为 12位,必须是:Clno iguonRn
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2011年12月28日 9:22:01
CrackMe1.11.12.27.rar


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (10)
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
2
感谢楼主的分享,希望楼主继续把后面几关都给大家分享了
2011-12-28 10:53
0
雪    币: 190
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
不错~~赞一个
2011-12-28 11:17
0
雪    币: 13632
活跃值: (3967)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
收藏学习  感谢提供分享
2011-12-28 11:23
0
雪    币: 157
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
【文章标题】: CrackMe分析3.11.12.28【第二关】
【文章作者】: HcyRcer
【作者邮箱】: 421458119@qq.com
【作者主页】: http://hi.baidu.com/kao4ni/home
【作者QQ号】: 421458119
【下载地址】: 自己搜索下载
【加壳方式】: 无
【编写语言】: Borland Delphi 4.0 - 5.0
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  CrackMe的第一关,已经被我们解决掉了!!这次继续干掉 第二关!!一共4关!不知道我能过到第几关!!
  第二关:难度系数 3
  
  和第一关一样,DEDE查  SpeedButton2Click 0044C648 !!第一关既然是 Button1Click !!第二关估计就是
  Button2Click 了!!
  
  OD 载入后 CTRL + G 到达 0044C648 后,下F2断点!! 此地址为 Button1Click 按钮过程!!
  然后输入 NAME:7个1
           COMPANY: 7个2
           serial:7个3
  
  点击【CHECK】,OD在 0044C648 断下过程!!然后F8单步走,走到0044C66F   call CrackMe_.00403A74时,
  发现 EAX 显示出了我们输入的 NAME,7个1!! 此时程序开始进入 算法阶段!
  
全部 流程如下:
0044C648   /.  5>push ebp
0044C649   |.  8>mov ebp,esp
0044C64B   |.  8>add esp,-8
0044C64E   |.  5>push ebx
0044C64F   |.  5>push esi
0044C650   |.  3>xor ecx,ecx
0044C652   |.  8>mov dword ptr ss:[ebp-8],ecx
0044C655   |.  8>mov esi,eax
0044C657   |.  3>xor eax,eax
0044C659   |.  5>push ebp
0044C65A   |.  6>push CrackMe_.0044C783
0044C65F   |.  6>push dword ptr fs:[eax]
0044C662   |.  6>mov dword ptr fs:[eax],esp
0044C665   |.  3>xor eax,eax
0044C667   |.  8>mov dword ptr ss:[ebp-4],eax
0044C66A   |.  A>mov eax,dword ptr ds:[44F880]    //eax为 NAME
0044C66F   |.  E>call CrackMe_.00403A74                 返回 NAME位数  
0044C674   |.  8>cmp eax,6                                     
0044C677   |.  0>jle CrackMe_.0044C76D                 //NAME位数小于等于6则错
0044C67D   |.  A>mov eax,dword ptr ds:[44F880]
0044C682   |.  E>call CrackMe_.00403A74
0044C687   |.  8>cmp eax,14                              
0044C68A   |.  0>jge CrackMe_.0044C76D                NAME 位数大于等于 14则错
0044C690   |.  A>mov eax,dword ptr ds:[44F880]   
0044C695   |.  E>call CrackMe_.00403A74
0044C69A   |.  8>test eax,eax                                   
0044C69C   |.  7>jle short CrackMe_.0044C6B5       如果没有输入 NAME,则不进行                     NAME算法计算,而 跳到 0044C6B5     进行 COMPANY的 计算
0044C69E   |.  B>mov edx,1
0044C6A3   |>  8>/mov ecx,dword ptr ds:[44F880]
0044C6A9   |.  0>|movzx ecx,byte ptr ds:[ecx+edx-1]
0044C6AE   |.  0>|add dword ptr ss:[ebp-4],ecx
0044C6B1   |.  4>|inc edx
0044C6B2   |.  4>|dec eax
0044C6B3   |.^ 7>\jnz short CrackMe_.0044C6A3    以上为 NAME的 ASCII码值的 和,并把 和 保存到 [ebp-4] 中
0044C6B5   |>  A>mov eax,dword ptr ds:[44F884]   取 COMPANY 值
0044C6BA   |.  E>call CrackMe_.00403A74              取 COMPANY 位数
0044C6BF   |.  8>cmp eax,2
0044C6C2   |.  7>jle short CrackMe_.0044C6DC  位数 小于等于2的话,则跳0044C6DC     
0044C6C4   |.  A>mov eax,dword ptr ds:[44F884]
0044C6C9   |.  E>call CrackMe_.00403A74
0044C6CE   |.  8>cmp eax,8
0044C6D1   |.  7>jge short CrackMe_.0044C6DC 位数 大于等于8的话,则跳0044C6DC
0044C6D3   |.  8>mov eax,dword ptr ss:[ebp-4] 
0044C6D6   |.  6>imul eax,eax,2
0044C6D9   |.  8>mov dword ptr ss:[ebp-4],eax 位数在 3-7个时,则[ebp-4] * = 2
0044C6DC   |>  6>push CrackMe_.0044C798    入栈字符串: "I Love Cracking and"
0044C6E1   |.  8>lea edx,dword ptr ss:[ebp-8]  缓冲区
0044C6E4   |.  8>mov eax,dword ptr ss:[ebp-4] 取[ebp-4]
0044C6E7   |. E>call CrackMe_.00407754 此函数为:wsprintf([ebp-8],"%d",[ebp-4])
0044C6EC   |.  F>push dword ptr ss:[ebp-8]  入栈 格式化后的字符串,我的为 "686 "
0044C6EF   |.  6>push CrackMe_.0044C7B8  入栈 字符串 Girls ;)
0044C6F4   |.  B>mov eax,CrackMe_.0044F88C
0044C6F9   |.  B>mov edx,3
0044C6FE   |.  E>call CrackMe_.00403B34 把刚才入栈的 3个字符串 连起来为:
I Love Cracking and 364 Girls ;)   //长度20
0044C703   |.  3>xor eax,eax
0044C705   |.  8>mov dword ptr ss:[ebp-4],eax  //[ebp-4]=0
0044C708   |.  A>mov eax,dword ptr ds:[44F888] 取第三个 serial的值 7个3
0044C70D   |.  E>call CrackMe_.00403A74     取第三个 serial的长度
0044C712   |.  8>mov ebx,eax                      把长度放到 EBX中
0044C714   |.  A>mov eax,dword ptr ds:[44F88C] 取出字符串 I Love Cracking and 364 Girls ;) 
0044C719   |.  E>call CrackMe_.00403A74 计算长度 放到 EAX
0044C71E   |.  3>cmp ebx,eax            比较 serial 与 I Love Cracki.....的长度是否相等
0044C720   |.  7>jnz short CrackMe_.0044C76D   不等则错
0044C722   |.  A>mov eax,dword ptr ds:[44F888] 取第三个 serial的值 7个3
0044C727   |.  E>call CrackMe_.00403A74
0044C72C   |.  8>test eax,eax
0044C72E   |.  7>jle short CrackMe_.0044C757  判断 serial 的长度,为0 则跳
0044C730   |.  B>mov edx,1
0044C735   |>  8>/mov ecx,dword ptr ds:[44F888]
0044C73B   |.  0>|movzx ecx,byte ptr ds:[ecx+edx-1]
0044C740   |.  0>|add ecx,dword ptr ss:[ebp-4]
0044C743   |.  8>|mov ebx,dword ptr ds:[44F88C]
0044C749   |.  0>|movzx ebx,byte ptr ds:[ebx+edx-1]
0044C74E   |.  2>|sub ecx,ebx
0044C750   |.  8>|mov dword ptr ss:[ebp-4],ecx
0044C753   |.  4>|inc edx
0044C754   |.  4>|dec eax
0044C755   |.^ 7>\jnz short CrackMe_.0044C735 //从44C735到此为一个循环,循环把
输入的 COMPANY 与 20位的 I Love Cracking and 364 Girls ;)  对应位想减!!
0044C757   |>  8>cmp dword ptr ss:[ebp-4],0
0044C75B   |.  7>jnz short CrackMe_.0044C76D  如果输入的COMPANY值不为
 I Love Cracking and 364 Girls ;)   则错误!! 为则正确!!!!!!!!!!!!
0044C75D   |.  8>mov eax,dword ptr ds:[esi+314]
0044C763   |.  B>mov edx,CrackMe_.0044C7CC               ;  You have found the correct Serial :)
0044C768   |.  E>call CrackMe_.00425854
0044C76D   |>  3>xor eax,eax
0044C76F   |.  5>pop edx
0044C770   |.  5>pop ecx
0044C771   |.  5>pop ecx
0044C772   |.  6>mov dword ptr fs:[eax],edx
0044C775   |.  6>push CrackMe_.0044C78A
0044C77A   |>  8>lea eax,dword ptr ss:[ebp-8]
0044C77D   |.  E>call CrackMe_.004037F8
0044C782   \.  C>retn


  【经验总结】:
注册分2种情况:
第一种。COMPANY的位数 小于等于2个  或 大于等于8时。
NAME:必须是 7-13个, NAME的 ASCII码 的 和 放到   @1 中
COMPANY:不进行判断
serial:为20为的 I Love Cracking and @1 Girls ;)

第二种。COMPANY的位数 为 3 - 7个时。
NAME:必须是 7-13个, NAME的 ASCII码 的 和 放到   @1 中
COMPANY:@1 = @1 *2
serial:为20为的 I Love Cracking and @1 Girls ;)
  
推出注册码:
第一种。
NAME:1234567               //ASC码和 为364
COMPANY:随便什么,但位数必须 小于等于2个  或 大于等于8
serial:I Love Cracking and 364 Girls ;)
第二种。
NAME:1234567               //ASC码和 为364
COMPANY:随便什么,但位数必须是   3-7个
serial:I Love Cracking and 728 Girls ;)         // 364 * 2 =728
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2011年12月28日 13:41:38
CrackMe_7.rar
上传的附件:
2011-12-28 14:26
0
雪    币: 13632
活跃值: (3967)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
沙发支持!   
2011-12-28 14:36
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
7
感谢楼主的分析,继续分析下去吧!
2011-12-28 15:00
0
雪    币: 157
活跃值: (40)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
【文章标题】: CrackMe分析1.11.12.28
【文章作者】: HcyRcer
【作者邮箱】: 421458119@qq.com
【作者主页】: http://hi.baidu.com/kao4ni/home
【作者QQ号】: 421458119
【加壳方式】: 无
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
这是 CrackMe的第三关,难度5,好怕怕!!!感觉应该不好弄!!! 但后来证明我 大错特错!!
不是太难了,,而是太容易了!!后面再告诉你!!!
开始!
看到这个 CrackMe 一大堆 复选框!!心形的!!不用输入任何字符串!! 怎么Crack呢?很疑惑,
第一次见这种模式! 管他呢,直接点 [CHECK] ,弹出一个错误对话框!!

那我们就打开OD下 MessageBoxA 断点!! 结果无法断下!! 然后我又下了 很多类似对话框的断点
例如: ENDDLG DIALOGBOX cratewindow....等很多,,均无法断下!!很是疑惑!既然不能从对话框
入手,我们就换个方法吧,不浪费时间了(如果有高人知道 为什么 MessageBox无法下,请告诉我,谢谢)。 我们仍旧 DEDE!!!嘿嘿 !!!毫无疑问。就是它了 SpeedButton3Click 0044C7F4!!!
OD重载后,对此地址下断!!


直接点击[CHECK],程序在 0044C7F4 断下!!断下后,我们F8单步走!!走到第一个 判断处
0044C812   call dword ptr ds:[edx+B8]
0044C818   test al,al
0044C81A   je CrackMe_.0044C8ED             ;  跳就错
发现 只要跳到 0044C8ED 地址程序就会结束并提示错误!!所以不能让它跳,如果才能不让它跳呢?
我们发现 0044C81A je CrackMe_.0044C8ED 的上一句 0044C818 test al,al 是判断是否跳转的 语句!! //test al,al  联合下句 JE 的意思为: AL为 0跳!!!
我们进入这个 0044C812   call dword ptr ds:[edx+B8] 看看。为什么AL的 会为0!!
大家有没有感觉到这个 CALL很奇怪,这个CALL 函数地址是个变量!!可以看出 [edx+B8]是一个 函数
指针!!F8单步后,发现 是一大片,差不多的函数!! 只是常量稍微变下!!如下图

可以感觉到!!程序是不是在用指针 取变量!拿出其中一个看下
0044C820   mov eax,dword ptr ds:[ebx+328]  //每次只是这个 328常量改变下,其他都一样
0044C826   mov edx,dword ptr ds:[eax]
0044C828   call dword ptr ds:[edx+B8]
0044C82E   test al,al
0044C830   je CrackMe_.0044C8ED             ;  跳就错
0044C836   mov eax,dword ptr ds:[ebx+32C]   //每次只是这个 328常量改变下,其他都一样
0044C83C   mov edx,dword ptr ds:[eax]
0044C83E   call dword ptr ds:[edx+B8]
0044C844   test al,al
0044C846   je CrackMe_.0044C8ED             ;  跳就错

每次到 F8到 call dword ptr ds:[edx+B8]时,发现 EDX始终为 0041E398!
所以 call dword ptr ds:[edx+B8] 每次都在调用同一个函数!!!//因为EDX值相同
我们进入 call dword ptr ds:[edx+B8] 这个大量调用的CALL看看!!F7进入!

发现 影响跳转的 AL值 是根据 cmp byte ptr ds:[eax+1F2],1  !根据EAX来的!!
我们跳出CALL,向上追EAX的值 !EAX来源于 不同地址的值!
0044C836   mov eax,dword ptr ds:[ebx+变量]   
0044C83C   mov edx,dword ptr ds:[eax]
0044C83E   call dword ptr ds:[edx+B8]
0044C844   test al,al
0044C846   je CrackMe_.0044C8ED
难点来了!! CALL 中的 EAX的值 与 EAX有关,EAX来自 [ebx+变量] !!感觉 [ebx+变量] 应该是一个地址表!!没错,它就一个地址表!!
难点是什么? 1.CALL是 指针,不是固定值
             2.eax既能影响 CALL的地址,又能影响  cmp byte ptr ds:[eax+1F2],1 返回值
结果导致,看到满大片 都是 指针,与 指向指针的指针, 函数指针!!!!立刻晕倒!!!
我心想,这作者挺厉害的 整那么多 指针,也弄不错!!
继续我们的 追  mov eax,dword ptr ds:[ebx+变量]中 EAX的来源 !!EAX与 [ebx+变量]有关!
我们 找EBX ,晕倒,向上找到 按钮过程的起点,竟然没EBX的来源!!于是就不追了!!
反正就一个 劲的 F8,向下跟 ,遇到调就 不让它跳,竟然 弹出 正确的 对话框!!!!!!
到此结束!!晕倒!!! 竟然没算法!!
究竟是怎么判断的呢? 然后我在想 是什么影响了 [ebx+变量]的值!!
看到CHECK上的 选择框 !!心想是不是它呢? 于是就把所有的 勾打上,点击[CHECK] 竟然成功了!! 当即晕倒!!!


【经验总结】
感觉像 开了一个玩笑,竟然被这个小小的 CRACKME 忽悠了好几个小时!!
主要原因还是:它CALL 的是 变量值。。。让我搞不懂。。
现在总算明白了!!不是 CRACKME的作者 对指针 熟练度高,而是 DEPHIL 优化的结果!!
破解方法:
把 心上 所有的 勾,选上即可!!!!!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2011年12月28日 6:36:55
CrackMe_7.rar
上传的附件:
2011-12-28 17:41
0
雪    币: 37
活跃值: (180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢, 这就实践去
2011-12-28 18:57
0
雪    币: 37
活跃值: (180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
真好,还好图片,好理解,谢谢
2012-1-3 21:17
0
雪    币: 3542
活跃值: (239)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
感谢分享,这就练习去!
2012-3-22 16:01
0
游客
登录 | 注册 方可回帖
返回
//