- UID
- 1132
注册时间2005-4-20
阅读权限40
最后登录1970-1-1
独步武林
TA的每日心情 | 无聊 2020-4-10 17:02 |
---|
签到天数: 5 天 [LV.2]偶尔看看I
|
【破解日期】 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,还好不是太难,否则我也......
- ------------------------------------------------------------------------
- --------
复制代码
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 冷血书生 于 2006-11-19 22:46 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|