飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3743|回复: 3

[原创] 【原创】f3rgo_chl1's Crackme 简单算法分析

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

    [LV.2]偶尔看看I

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

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




    1.   因为有NAG出现,所以先把下面的CALL给NOP掉,再保存分析

    2. 00408A4D     FF15 5C104000       call dword ptr ds:[<&MSVBVM60.#595>]  ; MSVBVM60.rtcMsgBox

    3. /////////////////////////////////////////////////////////////////////////
    4. /////////////////////////////////////////////////////////////////////////

    5. 00408248     52                  push edx                              ; 用户名压栈
    6. 00408249     FF15 14104000       call dword ptr ds:[<&MSVBVM60.__vbaLe>; MSVBVM60.__vbaLenBstr
    7. 0040824F     33C9                xor ecx,ecx
    8. 00408251     83F8 04             cmp eax,4                             ; 与4比较
    9. 00408254     0F9FC1              setg cl
    10. 00408257     F7D9                neg ecx
    11. 00408259     66:898D 74FFFFFF    mov word ptr ss:[ebp-8C],cx
    12. 00408260     8D4D D8             lea ecx,dword ptr ss:[ebp-28]
    13. 00408263     FF15 2C114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeStr
    14. 00408269     8D4D C4             lea ecx,dword ptr ss:[ebp-3C]
    15. 0040826C     FF15 30114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObj
    16. 00408272     66:39B5 74FFFFFF    cmp word ptr ss:[ebp-8C],si
    17. 00408279     0F84 53030000       je f3rgo_ch.004085D2                  ; 相等就OVER
    18. 0040827F     8B17                mov edx,dword ptr ds:[edi]
    19. 00408281     57                  push edi
    20. 00408282     FF92 08030000       call dword ptr ds:[edx+308]
    21. 00408288     50                  push eax
    22. 00408289     8D45 C4             lea eax,dword ptr ss:[ebp-3C]
    23. 0040828C     50                  push eax
    24. 0040828D     FF15 58104000       call dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSet
    25. 00408293     8B08                mov ecx,dword ptr ds:[eax]
    26. 00408295     8D55 D8             lea edx,dword ptr ss:[ebp-28]
    27. 00408298     52                  push edx
    28. 00408299     50                  push eax
    29. 0040829A     8985 7CFFFFFF       mov dword ptr ss:[ebp-84],eax
    30. 004082A0     FF91 A0000000       call dword ptr ds:[ecx+A0]
    31. 004082A6     3BC6                cmp eax,esi
    32. 004082A8     DBE2                fclex
    33. 004082AA     7D 18               jge short f3rgo_ch.004082C4
    34. 004082AC     8B8D 7CFFFFFF       mov ecx,dword ptr ss:[ebp-84]
    35. 004082B2     68 A0000000         push 0A0
    36. 004082B7     68 00794000         push f3rgo_ch.00407900
    37. 004082BC     51                  push ecx
    38. 004082BD     50                  push eax
    39. 004082BE     FF15 44104000       call dword ptr ds:[<&MSVBVM60.__vbaHr>; MSVBVM60.__vbaHresultCheckObj
    40. 004082C4     8B55 D8             mov edx,dword ptr ss:[ebp-28]
    41. 004082C7     52                  push edx
    42. 004082C8     FF15 14104000       call dword ptr ds:[<&MSVBVM60.__vbaLe>; MSVBVM60.__vbaLenBstr
    43. 004082CE     8BC8                mov ecx,eax                           ; 获得用户名长度
    44. 004082D0     FF15 94104000       call dword ptr ds:[<&MSVBVM60.__vbaI2>; MSVBVM60.__vbaI2I4
    45. 004082D6     8D4D D8             lea ecx,dword ptr ss:[ebp-28]
    46. 004082D9     8985 68FFFFFF       mov dword ptr ss:[ebp-98],eax         ; 转移
    47. 004082DF     BE 01000000         mov esi,1
    48. 004082E4     FF15 2C114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeStr
    49. 004082EA     8D4D C4             lea ecx,dword ptr ss:[ebp-3C]
    50. 004082ED     FF15 30114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObj
    51. 004082F3     66:3BB5 68FFFFFF    cmp si,word ptr ss:[ebp-98]           ; 比较是否取完
    52. 004082FA     0F8F F0000000       jg f3rgo_ch.004083F0                  ; 取完就走闪
    53. 00408300     8B07                mov eax,dword ptr ds:[edi]
    54. 00408302     57                  push edi
    55. 00408303     FF90 08030000       call dword ptr ds:[eax+308]
    56. 00408309     8D4D C4             lea ecx,dword ptr ss:[ebp-3C]
    57. 0040830C     50                  push eax
    58. 0040830D     51                  push ecx
    59. 0040830E     FF15 58104000       call dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSet
    60. 00408314     8BD8                mov ebx,eax
    61. 00408316     8D45 D8             lea eax,dword ptr ss:[ebp-28]
    62. 00408319     50                  push eax
    63. 0040831A     53                  push ebx
    64. 0040831B     8B13                mov edx,dword ptr ds:[ebx]
    65. 0040831D     FF92 A0000000       call dword ptr ds:[edx+A0]
    66. 00408323     85C0                test eax,eax
    67. 00408325     DBE2                fclex
    68. 00408327     7D 12               jge short f3rgo_ch.0040833B
    69. 00408329     68 A0000000         push 0A0
    70. 0040832E     68 00794000         push f3rgo_ch.00407900
    71. 00408333     53                  push ebx
    72. 00408334     50                  push eax
    73. 00408335     FF15 44104000       call dword ptr ds:[<&MSVBVM60.__vbaHr>; MSVBVM60.__vbaHresultCheckObj
    74. 0040833B     8B45 D8             mov eax,dword ptr ss:[ebp-28]
    75. 0040833E     8D4D A0             lea ecx,dword ptr ss:[ebp-60]
    76. 00408341     0FBFD6              movsx edx,si
    77. 00408344     8945 B8             mov dword ptr ss:[ebp-48],eax
    78. 00408347     51                  push ecx
    79. 00408348     8D45 B0             lea eax,dword ptr ss:[ebp-50]
    80. 0040834B     52                  push edx
    81. 0040834C     8D4D 90             lea ecx,dword ptr ss:[ebp-70]
    82. 0040834F     50                  push eax
    83. 00408350     51                  push ecx
    84. 00408351     C745 A8 01000000    mov dword ptr ss:[ebp-58],1
    85. 00408358     C745 A0 02000000    mov dword ptr ss:[ebp-60],2
    86. 0040835F     C745 D8 00000000    mov dword ptr ss:[ebp-28],0
    87. 00408366     C745 B0 08000000    mov dword ptr ss:[ebp-50],8
    88. 0040836D     FF15 74104000       call dword ptr ds:[<&MSVBVM60.#632>]  ; MSVBVM60.rtcMidCharVar
    89. 00408373     8D55 90             lea edx,dword ptr ss:[ebp-70]
    90. 00408376     8D45 D4             lea eax,dword ptr ss:[ebp-2C]
    91. 00408379     52                  push edx
    92. 0040837A     50                  push eax
    93. 0040837B     FF15 CC104000       call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrVarVal
    94. 00408381     50                  push eax
    95. 00408382     FF15 28104000       call dword ptr ds:[<&MSVBVM60.#516>]  ; MSVBVM60.rtcAnsiValueBstr
    96. 00408388     8B4D E4             mov ecx,dword ptr ss:[ebp-1C]
    97. 0040838B     66:8BD8             mov bx,ax                             ;
    98. 0040838E     51                  push ecx
    99. 0040838F     FF15 C4104000       call dword ptr ds:[<&MSVBVM60.__vbaI2>; MSVBVM60.__vbaI2Str
    100. 00408395     66:03D8             add bx,ax                             ; 累加
    101. 00408398     0F80 B7020000       jo f3rgo_ch.00408655
    102. 0040839E     53                  push ebx
    103. 0040839F     FF15 00104000       call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrI2
    104. 004083A5     8B1D 18114000       mov ebx,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaStrMove
    105. 004083AB     8BD0                mov edx,eax                           ;
    106. 004083AD     8D4D E4             lea ecx,dword ptr ss:[ebp-1C]
    107. 004083B0     FFD3                call ebx
    108. 004083B2     8D4D D4             lea ecx,dword ptr ss:[ebp-2C]
    109. 004083B5     FF15 2C114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeStr
    110. 004083BB     8D4D C4             lea ecx,dword ptr ss:[ebp-3C]
    111. 004083BE     FF15 30114000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObj
    112. 004083C4     8D55 90             lea edx,dword ptr ss:[ebp-70]
    113. 004083C7     8D45 A0             lea eax,dword ptr ss:[ebp-60]
    114. 004083CA     52                  push edx
    115. 004083CB     8D4D B0             lea ecx,dword ptr ss:[ebp-50]
    116. 004083CE     50                  push eax
    117. 004083CF     51                  push ecx
    118. 004083D0     6A 03               push 3
    119. 004083D2     FF15 18104000       call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVarList
    120. 004083D8     B8 01000000         mov eax,1
    121. 004083DD     83C4 10             add esp,10
    122. 004083E0     66:03C6             add ax,si
    123. 004083E3     0F80 6C020000       jo f3rgo_ch.00408655
    124. 004083E9     8BF0                mov esi,eax
    125. 004083EB   ^ E9 03FFFFFF         jmp f3rgo_ch.004082F3                 ; 循环计算
    126. 004083F0     8B55 E4             mov edx,dword ptr ss:[ebp-1C]         ;
    127. 004083F3     8B35 C4104000       mov esi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaI2Str
    128. 004083F9     52                  push edx
    129. 004083FA     FFD6                call esi
    130. 004083FC     35 9A020000         xor eax,29A                           ; eax xor 29A
    131. 00408401     50                  push eax                              ;
    132. 00408402     FF15 00104000       call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrI2
    133. 00408408     8BD0                mov edx,eax                           ; 保存结果
    134. 0040840A     8D4D E0             lea ecx,dword ptr ss:[ebp-20]
    135. 0040840D     FFD3                call ebx
    136. 0040840F     8B45 E0             mov eax,dword ptr ss:[ebp-20]
    137. 00408412     50                  push eax
    138. 00408413     FFD6                call esi
    139. 00408415     83F0 7B             xor eax,7B                            ; eax xor 7B
    140. 00408418     50                  push eax
    141. 00408419     FF15 00104000       call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrI2
    142. 0040841F     8BD0                mov edx,eax
    143. 00408421     8D4D DC             lea ecx,dword ptr ss:[ebp-24]
    144. 00408424     FFD3                call ebx
    145. 00408426     8B0F                mov ecx,dword ptr ds:[edi]
    146. 00408428     57                  push edi
    147. 00408429     FF91 04030000       call dword ptr ds:[ecx+304]
    148. 0040842F     8D55 C4             lea edx,dword ptr ss:[ebp-3C]
    149. 00408432     50                  push eax
    150. 00408433     52                  push edx
    151. 00408434     FF15 58104000       call dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSet
    152. 0040843A     8BF0                mov esi,eax
    153. 0040843C     8D4D D8             lea ecx,dword ptr ss:[ebp-28]
    154. 0040843F     51                  push ecx
    155. 00408440     56                  push esi
    156. 00408441     8B06                mov eax,dword ptr ds:[esi]
    157. 00408443     FF90 A0000000       call dword ptr ds:[eax+A0]
    158. 00408449     85C0                test eax,eax
    159. 0040844B     DBE2                fclex
    160. 0040844D     7D 12               jge short f3rgo_ch.00408461
    161. 0040844F     68 A0000000         push 0A0
    162. 00408454     68 00794000         push f3rgo_ch.00407900
    163. 00408459     56                  push esi
    164. 0040845A     50                  push eax
    165. 0040845B     FF15 44104000       call dword ptr ds:[<&MSVBVM60.__vbaHr>; MSVBVM60.__vbaHresultCheckObj
    166. 00408461     8B55 D8             mov edx,dword ptr ss:[ebp-28]
    167. 00408464     8B45 E4             mov eax,dword ptr ss:[ebp-1C]
    168. 00408467     8B35 38104000       mov esi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaStrCat
    169. 0040846D     52                  push edx
    170. 0040846E     50                  push eax
    171. 0040846F     68 14794000         push f3rgo_ch.00407914
    172. 00408474     FFD6                call esi
    173. 00408476     8BD0                mov edx,eax                           ;
    174. 00408478     8D4D D4             lea ecx,dword ptr ss:[ebp-2C]
    175. 0040847B     FFD3                call ebx
    176. 0040847D     8B4D E0             mov ecx,dword ptr ss:[ebp-20]
    177. 00408480     50                  push eax
    178. 00408481     51                  push ecx
    179. 00408482     FFD6                call esi
    180. 00408484     8BD0                mov edx,eax                           ;
    181. 00408486     8D4D D0             lea ecx,dword ptr ss:[ebp-30]
    182. 00408489     FFD3                call ebx
    183. 0040848B     50                  push eax
    184. 0040848C     68 14794000         push f3rgo_ch.00407914
    185. 00408491     FFD6                call esi
    186. 00408493     8BD0                mov edx,eax
    187. 00408495     8D4D CC             lea ecx,dword ptr ss:[ebp-34]
    188. 00408498     FFD3                call ebx
    189. 0040849A     8B55 DC             mov edx,dword ptr ss:[ebp-24]
    190. 0040849D     50                  push eax
    191. 0040849E     52                  push edx
    192. 0040849F     FFD6                call esi
    193. 004084A1     8BD0                mov edx,eax                           ; 保存注册码
    194. 004084A3     8D4D C8             lea ecx,dword ptr ss:[ebp-38]
    195. 004084A6     FFD3                call ebx                              ; MSVBVM60.__vbaStrMove
    196. 004084A8     50                  push eax
    197. 004084A9     FF15 8C104000       call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrCmp
    198. 004084AF     8BF0                mov esi,eax                           ; 经典比较
    199. 004084B1     8D45 C8             lea eax,dword ptr ss:[ebp-38]


    200. /////////////////////////////////////////////////////////////////////////
    201. /////////////////////////////////////////////////////////////////////////

    202. 算法总结:

    203. 累加用户名ASCII值 = A (用户名要大于4位)
    204. A xor 29A = B
    205. B xor 7B  = C

    206. "A"-"B"-"C" = 注册码

    207. name: lengxue
    208. code: 760-98-25
    209. ------------------------------------------------------------------------

    210. --------
    复制代码

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

    本帖子中包含更多资源

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

    x

    评分

    参与人数 1威望 +4 飘云币 +4 +4 收起 理由
    mswhy + 4 + 4 + 4 精品文章

    查看全部评分

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

    [LV.3]偶尔看看II

    发表于 2006-11-19 17:42:47 | 显示全部楼层
    嘿嘿!!支持下哦
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 14:28
  • 签到天数: 1497 天

    [LV.10]以坛为家III

    发表于 2006-11-19 20:00:39 | 显示全部楼层
    支持,书生又出手了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-11-22 16:29:10 | 显示全部楼层
    学习,收藏!!支持!!!!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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