中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 看雪学院专区 > CrackMe
qwgboy2000's crackme Keyfile类型简单分析
作者:佚名 时间:2006-12-15 10:52 出处:pediy.com 责编:月夜寒箫
              摘要:qwgboy2000's crackme Keyfile类型简单分析
【破解日期】 2006年11月19日
【破解作者】 冷血书生
【作者邮箱】 meiyou
【作者主页】 hxxp://www.126sohu.com/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 qwgboy2000's crackme
【下载地址】 本地
【软件大小】 152k
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
------------------------------------------------------------------------

--------
【破解内容】

代码:
00401076   push 80000000 0040107B   push qwgboy20.004200A8                ; keyfile.qwg 00401080   call dword ptr ds:[<&KERNEL32.CreateF>; kernel32.CreateFileA 00401086   cmp esi,esp 00401088   call qwgboy20.004031C0 0040108D   mov dword ptr ss:[ebp-8],eax 00401090   cmp dword ptr ss:[ebp-8],-1 00401094   jnz short qwgboy20.004010BA 00401096   mov esi,esp 00401098   push 10 0040109A   push qwgboy20.004200A0                ; 失败 0040109F   push qwgboy20.00420088                ; 很遗憾验证失败了! 004010A4   push 0 004010A6   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA 004010AC   cmp esi,esp 004010AE   call qwgboy20.004031C0 004010B3   xor eax,eax 004010B5   jmp qwgboy20.00401262 004010BA   mov esi,esp 004010BC   push 0 004010BE   mov eax,dword ptr ss:[ebp-8] 004010C1   push eax 004010C2   call dword ptr ds:[<&KERNEL32.GetFile>; kernel32.GetFileSize 004010C8   cmp esi,esp                           ; 获取文件大小比较 004010CA   call qwgboy20.004031C0 004010CF   mov dword ptr ss:[ebp-10],eax 004010D2   cmp dword ptr ss:[ebp-10],-1 004010D6   jnz short qwgboy20.004010F5 004010D8   mov esi,esp 004010DA   push 10 004010DC   push qwgboy20.00420080                ; 出错了 004010E1   push qwgboy20.00420064                ; 读文件时发生未知错误! 004010E6   push 0 004010E8   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA 004010EE   cmp esi,esp 004010F0   call qwgboy20.004031C0 004010F5   cmp dword ptr ss:[ebp-10],14          ; 与14比较 004010F9   jnz qwgboy20.00401243 004010FF   mov ecx,dword ptr ss:[ebp-10] 00401102   add ecx,2 00401105   push ecx 00401106   call qwgboy20.00401330 0040110B   add esp,4 0040110E   mov dword ptr ss:[ebp-30],eax 00401111   mov esi,esp 00401113   push 0 00401115   lea edx,dword ptr ss:[ebp-4] 00401118   push edx 00401119   mov eax,dword ptr ss:[ebp-10] 0040111C   push eax 0040111D   mov ecx,dword ptr ss:[ebp-30] 00401120   push ecx 00401121   mov edx,dword ptr ss:[ebp-8] 00401124   push edx 00401125   call dword ptr ds:[<&KERNEL32.ReadFil>; kernel32.ReadFile 0040112B   cmp esi,esp 0040112D   call qwgboy20.004031C0 00401132   mov esi,esp 00401134   mov eax,dword ptr ss:[ebp-8] 00401137   push eax 00401138   call dword ptr ds:[<&KERNEL32.CloseHa>; kernel32.CloseHandle 0040113E   cmp esi,esp 00401140   call qwgboy20.004031C0 00401145   mov ecx,dword ptr ss:[ebp-30] 00401148   add ecx,dword ptr ss:[ebp-10] 0040114B   mov byte ptr ds:[ecx],0 0040114E   mov edx,dword ptr ss:[ebp-30] 00401151   add edx,dword ptr ss:[ebp-10] 00401154   mov byte ptr ds:[edx+1],0 00401158   mov dword ptr ss:[ebp-C],0 0040115F   jmp short qwgboy20.0040116A 00401161   mov eax,dword ptr ss:[ebp-C] 00401164   add eax,1 00401167   mov dword ptr ss:[ebp-C],eax 0040116A   cmp dword ptr ss:[ebp-C],0A           ; 与A比较 0040116E   jge short qwgboy20.00401191 00401170   mov ecx,dword ptr ss:[ebp-30] 00401173   add ecx,dword ptr ss:[ebp-C] 00401176   xor edx,edx 00401178   mov dl,byte ptr ds:[ecx]              ; 取文件字节数前面10位 0040117A   mov eax,dword ptr ss:[ebp-C] 0040117D   movsx ecx,byte ptr ss:[ebp+eax-20]    ; qwgboy2000 00401182   cmp edx,ecx                           ; 比较是不是qwgboy2000 00401184   jnz short qwgboy20.0040118F           ; 不是就OVER 00401186   mov edx,dword ptr ss:[ebp-14] 00401189   add edx,1 0040118C   mov dword ptr ss:[ebp-14],edx 0040118F   jmp short qwgboy20.00401161           ; 循环比较 00401191   jmp short qwgboy20.0040119C 00401193   mov eax,dword ptr ss:[ebp-C] 00401196   add eax,1 00401199   mov dword ptr ss:[ebp-C],eax 0040119C   cmp dword ptr ss:[ebp-C],10           ; 与10比较 004011A0   jge short qwgboy20.004011CD 004011A2   mov ecx,dword ptr ss:[ebp-30] 004011A5   add ecx,dword ptr ss:[ebp-C] 004011A8   xor edx,edx 004011AA   mov dl,byte ptr ds:[ecx]              ; 取文件字节数11位到16位 004011AC   mov eax,dword ptr ss:[ebp-C] 004011AF   movsx ecx,byte ptr ss:[ebp+eax-2A]    ; 取文件字节数前面10位 004011B4   mov eax,dword ptr ss:[ebp-C] 004011B7   movsx eax,byte ptr ss:[ebp+eax-32]    ; PVFANX 004011BC   sub ecx,eax                           ; 文件字节数前面10位  - PVFANX的ASCII值 004011BE   cmp edx,ecx                           ; 结果与11位到16位比较 004011C0   jnz short qwgboy20.004011CB           ; 不是就OVER 004011C2   mov ecx,dword ptr ss:[ebp-14] 004011C5   add ecx,1 004011C8   mov dword ptr ss:[ebp-14],ecx 004011CB   jmp short qwgboy20.00401193           ; 循环比较 004011CD   jmp short qwgboy20.004011D8 004011CF   mov edx,dword ptr ss:[ebp-C] 004011D2   add edx,1 004011D5   mov dword ptr ss:[ebp-C],edx 004011D8   cmp dword ptr ss:[ebp-C],14           ; 与14比较 004011DC   jge short qwgboy20.004011FF 004011DE   mov eax,dword ptr ss:[ebp-30] 004011E1   add eax,dword ptr ss:[ebp-C] 004011E4   xor ecx,ecx 004011E6   mov cl,byte ptr ds:[eax]              ; 取后面四位 004011E8   mov edx,dword ptr ss:[ebp-C] 004011EB   movsx eax,byte ptr ss:[ebp+edx-3C] 004011F0   cmp ecx,eax                           ; 比较是不是cool 004011F2   jnz short qwgboy20.004011FD           ; 不是就OVER 004011F4   mov ecx,dword ptr ss:[ebp-14] 004011F7   add ecx,1 004011FA   mov dword ptr ss:[ebp-14],ecx 004011FD   jmp short qwgboy20.004011CF 004011FF   cmp dword ptr ss:[ebp-14],14 00401203   jnz short qwgboy20.00401224 00401205   mov esi,esp 00401207   push 40 00401209   push qwgboy20.00420058                ; 成功了! 0040120E   push qwgboy20.00420040                ; 哇!你真是太厉害了! 00401213   push 0 00401215   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA 0040121B   cmp esi,esp 0040121D   call qwgboy20.004031C0 00401222   jmp short qwgboy20.00401241 00401224   mov esi,esp 00401226   push 40 00401228   push qwgboy20.00420038                ; 加油 0040122D   push qwgboy20.0042001C                ; 继续努力,你会成功的! 00401232   push 0 00401234   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA 0040123A   cmp esi,esp 0040123C   call qwgboy20.004031C0 00401241   jmp short qwgboy20.00401260 00401243   mov esi,esp 00401245   push 40 00401247   push qwgboy20.00420038                ; 加油 0040124C   push qwgboy20.0042001C                ; 继续努力,你会成功的! 00401251   push 0 00401253   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA 00401259   cmp esi,esp 0040125B   call qwgboy20.004031C0 00401260   xor eax,eax 00401262   pop edi 00401263   pop esi 00401264   pop ebx 00401265   add esp,70 00401268   cmp ebp,esp 0040126A   call qwgboy20.004031C0 0040126F   mov esp,ebp 00401271   pop ebp 00401272   retn 10 ///////////////////////////////////////////////////////////////////////// 总结: 1,判断是否有keyfile.qwg文件 2,再判断文件是不是20个字节 3,再判断前面10位是不是qwgboy2000  ---> 作者名字 :) 4,再判断文件字节数前面6位  - PVFANX 和11到16位是不是相等 5,最后判断后面四位是不是cool 满足上面条件,就注册成功啦 ------------------------------------------------------------------------ -------- 【破解总结】 第一次搞keyfile,还好不是太难,否则我也...... ------------------------------------------------------------------------ --------

【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
所上传文件
s crackme.rar (上传时间2006-11-19,22:30,24.3 KB,14 次点击)
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有