飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3504|回复: 4

[原创] qwgboy2000's crackme Keyfile类型简单分析

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-11-19 22:34:29 | 显示全部楼层 |阅读模式
    破解日期】 2006年11月19日
    【破解作者】 冷血书生
    【作者邮箱】 meiyou
    【作者主页】 hxxp://www.126sohu.com/
    【使用工具】 OD
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 qwgboy2000's crackme
    【下载地址】 本地
    【软件大小】 152k
    【加壳方式】 无
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    ------------------------------------------------------------------------

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


    1. 00401076   push 80000000
    2. 0040107B   push qwgboy20.004200A8                ; keyfile.qwg
    3. 00401080   call dword ptr ds:[<&KERNEL32.CreateF>; kernel32.CreateFileA
    4. 00401086   cmp esi,esp
    5. 00401088   call qwgboy20.004031C0
    6. 0040108D   mov dword ptr ss:[ebp-8],eax
    7. 00401090   cmp dword ptr ss:[ebp-8],-1
    8. 00401094   jnz short qwgboy20.004010BA
    9. 00401096   mov esi,esp
    10. 00401098   push 10
    11. 0040109A   push qwgboy20.004200A0                ; 失败
    12. 0040109F   push qwgboy20.00420088                ; 很遗憾验证失败了!
    13. 004010A4   push 0
    14. 004010A6   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
    15. 004010AC   cmp esi,esp
    16. 004010AE   call qwgboy20.004031C0
    17. 004010B3   xor eax,eax
    18. 004010B5   jmp qwgboy20.00401262
    19. 004010BA   mov esi,esp
    20. 004010BC   push 0
    21. 004010BE   mov eax,dword ptr ss:[ebp-8]
    22. 004010C1   push eax
    23. 004010C2   call dword ptr ds:[<&KERNEL32.GetFile>; kernel32.GetFileSize
    24. 004010C8   cmp esi,esp                           ; 获取文件大小比较
    25. 004010CA   call qwgboy20.004031C0
    26. 004010CF   mov dword ptr ss:[ebp-10],eax
    27. 004010D2   cmp dword ptr ss:[ebp-10],-1
    28. 004010D6   jnz short qwgboy20.004010F5
    29. 004010D8   mov esi,esp
    30. 004010DA   push 10
    31. 004010DC   push qwgboy20.00420080                ; 出错了
    32. 004010E1   push qwgboy20.00420064                ; 读文件时发生未知错误!
    33. 004010E6   push 0
    34. 004010E8   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
    35. 004010EE   cmp esi,esp
    36. 004010F0   call qwgboy20.004031C0
    37. 004010F5   cmp dword ptr ss:[ebp-10],14          ; 与14比较
    38. 004010F9   jnz qwgboy20.00401243
    39. 004010FF   mov ecx,dword ptr ss:[ebp-10]
    40. 00401102   add ecx,2
    41. 00401105   push ecx
    42. 00401106   call qwgboy20.00401330
    43. 0040110B   add esp,4
    44. 0040110E   mov dword ptr ss:[ebp-30],eax
    45. 00401111   mov esi,esp
    46. 00401113   push 0
    47. 00401115   lea edx,dword ptr ss:[ebp-4]
    48. 00401118   push edx
    49. 00401119   mov eax,dword ptr ss:[ebp-10]
    50. 0040111C   push eax
    51. 0040111D   mov ecx,dword ptr ss:[ebp-30]
    52. 00401120   push ecx
    53. 00401121   mov edx,dword ptr ss:[ebp-8]
    54. 00401124   push edx
    55. 00401125   call dword ptr ds:[<&KERNEL32.ReadFil>; kernel32.ReadFile
    56. 0040112B   cmp esi,esp
    57. 0040112D   call qwgboy20.004031C0
    58. 00401132   mov esi,esp
    59. 00401134   mov eax,dword ptr ss:[ebp-8]
    60. 00401137   push eax
    61. 00401138   call dword ptr ds:[<&KERNEL32.CloseHa>; kernel32.CloseHandle
    62. 0040113E   cmp esi,esp
    63. 00401140   call qwgboy20.004031C0
    64. 00401145   mov ecx,dword ptr ss:[ebp-30]
    65. 00401148   add ecx,dword ptr ss:[ebp-10]
    66. 0040114B   mov byte ptr ds:[ecx],0
    67. 0040114E   mov edx,dword ptr ss:[ebp-30]
    68. 00401151   add edx,dword ptr ss:[ebp-10]
    69. 00401154   mov byte ptr ds:[edx+1],0
    70. 00401158   mov dword ptr ss:[ebp-C],0
    71. 0040115F   jmp short qwgboy20.0040116A
    72. 00401161   mov eax,dword ptr ss:[ebp-C]
    73. 00401164   add eax,1
    74. 00401167   mov dword ptr ss:[ebp-C],eax
    75. 0040116A   cmp dword ptr ss:[ebp-C],0A           ; 与A比较
    76. 0040116E   jge short qwgboy20.00401191
    77. 00401170   mov ecx,dword ptr ss:[ebp-30]
    78. 00401173   add ecx,dword ptr ss:[ebp-C]
    79. 00401176   xor edx,edx
    80. 00401178   mov dl,byte ptr ds:[ecx]              ; 取文件字节数前面10位
    81. 0040117A   mov eax,dword ptr ss:[ebp-C]
    82. 0040117D   movsx ecx,byte ptr ss:[ebp+eax-20]    ; qwgboy2000
    83. 00401182   cmp edx,ecx                           ; 比较是不是qwgboy2000
    84. 00401184   jnz short qwgboy20.0040118F           ; 不是就OVER
    85. 00401186   mov edx,dword ptr ss:[ebp-14]
    86. 00401189   add edx,1
    87. 0040118C   mov dword ptr ss:[ebp-14],edx
    88. 0040118F   jmp short qwgboy20.00401161           ; 循环比较
    89. 00401191   jmp short qwgboy20.0040119C
    90. 00401193   mov eax,dword ptr ss:[ebp-C]
    91. 00401196   add eax,1
    92. 00401199   mov dword ptr ss:[ebp-C],eax
    93. 0040119C   cmp dword ptr ss:[ebp-C],10           ; 与10比较
    94. 004011A0   jge short qwgboy20.004011CD
    95. 004011A2   mov ecx,dword ptr ss:[ebp-30]
    96. 004011A5   add ecx,dword ptr ss:[ebp-C]
    97. 004011A8   xor edx,edx
    98. 004011AA   mov dl,byte ptr ds:[ecx]              ; 取文件字节数11位到16位
    99. 004011AC   mov eax,dword ptr ss:[ebp-C]
    100. 004011AF   movsx ecx,byte ptr ss:[ebp+eax-2A]    ; 取文件字节数前面10位
    101. 004011B4   mov eax,dword ptr ss:[ebp-C]
    102. 004011B7   movsx eax,byte ptr ss:[ebp+eax-32]    ; PVFANX
    103. 004011BC   sub ecx,eax                           ; 文件字节数前面10位  -

    104. PVFANX的ASCII值
    105. 004011BE   cmp edx,ecx                           ; 结果与11位到16位比较
    106. 004011C0   jnz short qwgboy20.004011CB           ; 不是就OVER
    107. 004011C2   mov ecx,dword ptr ss:[ebp-14]
    108. 004011C5   add ecx,1
    109. 004011C8   mov dword ptr ss:[ebp-14],ecx
    110. 004011CB   jmp short qwgboy20.00401193           ; 循环比较
    111. 004011CD   jmp short qwgboy20.004011D8
    112. 004011CF   mov edx,dword ptr ss:[ebp-C]
    113. 004011D2   add edx,1
    114. 004011D5   mov dword ptr ss:[ebp-C],edx
    115. 004011D8   cmp dword ptr ss:[ebp-C],14           ; 与14比较
    116. 004011DC   jge short qwgboy20.004011FF
    117. 004011DE   mov eax,dword ptr ss:[ebp-30]
    118. 004011E1   add eax,dword ptr ss:[ebp-C]
    119. 004011E4   xor ecx,ecx
    120. 004011E6   mov cl,byte ptr ds:[eax]              ; 取后面四位
    121. 004011E8   mov edx,dword ptr ss:[ebp-C]
    122. 004011EB   movsx eax,byte ptr ss:[ebp+edx-3C]
    123. 004011F0   cmp ecx,eax                           ; 比较是不是cool
    124. 004011F2   jnz short qwgboy20.004011FD           ; 不是就OVER
    125. 004011F4   mov ecx,dword ptr ss:[ebp-14]
    126. 004011F7   add ecx,1
    127. 004011FA   mov dword ptr ss:[ebp-14],ecx
    128. 004011FD   jmp short qwgboy20.004011CF
    129. 004011FF   cmp dword ptr ss:[ebp-14],14
    130. 00401203   jnz short qwgboy20.00401224
    131. 00401205   mov esi,esp
    132. 00401207   push 40
    133. 00401209   push qwgboy20.00420058                ; 成功了!
    134. 0040120E   push qwgboy20.00420040                ; 哇!你真是太厉害了!
    135. 00401213   push 0
    136. 00401215   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
    137. 0040121B   cmp esi,esp
    138. 0040121D   call qwgboy20.004031C0
    139. 00401222   jmp short qwgboy20.00401241
    140. 00401224   mov esi,esp
    141. 00401226   push 40
    142. 00401228   push qwgboy20.00420038                ; 加油
    143. 0040122D   push qwgboy20.0042001C                ; 继续努力,你会成功的!
    144. 00401232   push 0
    145. 00401234   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
    146. 0040123A   cmp esi,esp
    147. 0040123C   call qwgboy20.004031C0
    148. 00401241   jmp short qwgboy20.00401260
    149. 00401243   mov esi,esp
    150. 00401245   push 40
    151. 00401247   push qwgboy20.00420038                ; 加油
    152. 0040124C   push qwgboy20.0042001C                ; 继续努力,你会成功的!
    153. 00401251   push 0
    154. 00401253   call dword ptr ds:[<&USER32.MessageBo>; USER32.MessageBoxA
    155. 00401259   cmp esi,esp
    156. 0040125B   call qwgboy20.004031C0
    157. 00401260   xor eax,eax
    158. 00401262   pop edi
    159. 00401263   pop esi
    160. 00401264   pop ebx
    161. 00401265   add esp,70
    162. 00401268   cmp ebp,esp
    163. 0040126A   call qwgboy20.004031C0
    164. 0040126F   mov esp,ebp
    165. 00401271   pop ebp
    166. 00401272   retn 10

    167. /////////////////////////////////////////////////////////////////////////

    168. 总结:

    169. 1,判断是否有keyfile.qwg文件
    170. 2,再判断文件是不是20个字节
    171. 3,再判断前面10位是不是qwgboy2000  ---> 作者名字 :)
    172. 4,再判断文件字节数前面6位  - PVFANX 和11到16位是不是相等
    173. 5,最后判断后面四位是不是cool

    174. 满足上面条件,就注册成功啦
    175. ------------------------------------------------------------------------

    176. --------
    177. 【破解总结】


    178. 第一次搞keyfile,还好不是太难,否则我也......
    179. ------------------------------------------------------------------------

    180. --------
    复制代码

    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

    [ 本帖最后由 冷血书生 于 2006-11-19 22:46 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-6-11 12:16
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2006-11-19 23:18:41 | 显示全部楼层
    哈哈。老大啊,一次你发多少个论坛啊。我看到就有三个了。还是支持
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-20 13:04:58 | 显示全部楼层
    学习,收藏!!支持!!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-5-3 19:45
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2007-1-29 14:45:13 | 显示全部楼层
    好东西   
    看懂了~
    hoho~~~~ ;)
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-6-1 16:13:42 | 显示全部楼层
    太强了,看不大明白,不过还是支持下
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表