飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3628|回复: 1

[原创] XXXX专家 X.0 简单算法分析

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

    [LV.2]偶尔看看I

    发表于 2006-11-10 14:49:15 | 显示全部楼层 |阅读模式
    破解日期】 2006年11月10日
    【破解作者】 冷血书生
    【作者邮箱】 meiyou
    【作者主页】 hxxp://www.126sohu.com
    【使用工具】 OD
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 XXXX专家 X.0
    【下载地址】 略
    【软件简介】 XXXX专家 X.0
    【软件大小】 710KB
    【加壳方式】 无
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1. 004DA467   mov eax,dword ptr ss:[ebp-78]         ; 识别码
    2. 004DA46A   lea ecx,dword ptr ss:[ebp-A0]
    3. 004DA470   mov dword ptr ss:[ebp-88],eax
    4. 004DA476   lea eax,dword ptr ss:[ebp-90]
    5. 004DA47C   push eax
    6. 004DA47D   push ecx
    7. 004DA47E   mov dword ptr ss:[ebp-78],edi
    8. 004DA481   mov dword ptr ss:[ebp-90],8
    9. 004DA48B   call dword ptr ds:[<&MSVBVM60.#520>]  ; MSVBVM60.rtcTrimVar
    10. 004DA491   lea edx,dword ptr ss:[ebp-A0]
    11. 004DA497   lea ecx,dword ptr ss:[ebp-74]
    12. 004DA49A   call esi
    13. 004DA49C   lea edx,dword ptr ss:[ebp-80]
    14. 004DA49F   lea eax,dword ptr ss:[ebp-7C]
    15. 004DA4A2   push edx
    16. 004DA4A3   push eax
    17. 004DA4A4   push 2
    18. 004DA4A6   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObjList
    19. 004DA4AC   add esp,0C
    20. 004DA4AF   lea ecx,dword ptr ss:[ebp-90]
    21. 004DA4B5   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVar
    22. 004DA4BB   lea edx,dword ptr ss:[ebp-160]
    23. 004DA4C1   lea ecx,dword ptr ss:[ebp-90]
    24. 004DA4C7   mov dword ptr ss:[ebp-158],cardpro.00>
    25. 004DA4D1   mov dword ptr ss:[ebp-160],8
    26. 004DA4DB   call dword ptr ds:[<&MSVBVM60.__vbaVa>; MSVBVM60.__vbaVarDup
    27. 004DA4E1   push edi
    28. 004DA4E2   lea ecx,dword ptr ss:[ebp-90]
    29. 004DA4E8   push -1
    30. 004DA4EA   lea edx,dword ptr ss:[ebp-74]
    31. 004DA4ED   push ecx
    32. 004DA4EE   lea eax,dword ptr ss:[ebp-78]
    33. 004DA4F1   push edx
    34. 004DA4F2   push eax
    35. 004DA4F3   call dword ptr ds:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrVarVal
    36. 004DA4F9   lea ecx,dword ptr ss:[ebp-A0]
    37. 004DA4FF   push eax                              ;  
    38. 004DA500   push ecx
    39. 004DA501   call dword ptr ds:[<&MSVBVM60.#711>]  ; MSVBVM60.rtcSplit
    40. 004DA507   lea edx,dword ptr ss:[ebp-A0]
    41. 004DA50D   lea ecx,dword ptr ss:[ebp-64]
    42. 004DA510   call esi
    43. 004DA512   lea ecx,dword ptr ss:[ebp-78]
    44. 004DA515   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeStr
    45. 004DA51B   lea ecx,dword ptr ss:[ebp-90]
    46. 004DA521   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVar
    47. 004DA527   mov edx,dword ptr ds:[ebx]
    48. 004DA529   push ebx
    49. 004DA52A   call dword ptr ds:[edx+304]
    50. 004DA530   push eax
    51. 004DA531   lea eax,dword ptr ss:[ebp-7C]
    52. 004DA534   push eax
    53. 004DA535   call dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSet
    54. 004DA53B   mov ebx,eax
    55. 004DA53D   lea edx,dword ptr ss:[ebp-80]
    56. 004DA540   push edx
    57. 004DA541   push 2
    58. 004DA543   mov ecx,dword ptr ds:[ebx]
    59. 004DA545   push ebx
    60. 004DA546   call dword ptr ds:[ecx+40]
    61. 004DA549   cmp eax,edi
    62. 004DA54B   fclex
    63. 004DA54D   jge short cardpro.004DA55E
    64. 004DA54F   push 40
    65. 004DA551   push cardpro.0040ABFC
    66. 004DA556   push ebx
    67. 004DA557   push eax
    68. 004DA558   call dword ptr ds:[<&MSVBVM60.__vbaHr>; MSVBVM60.__vbaHresultCheckObj
    69. 004DA55E   mov eax,dword ptr ss:[ebp-80]
    70. 004DA561   lea edx,dword ptr ss:[ebp-78]
    71. 004DA564   push edx
    72. 004DA565   push eax
    73. 004DA566   mov ecx,dword ptr ds:[eax]
    74. 004DA568   mov ebx,eax
    75. 004DA56A   call dword ptr ds:[ecx+A0]
    76. 004DA570   cmp eax,edi
    77. 004DA572   fclex
    78. 004DA574   jge short cardpro.004DA588
    79. 004DA576   push 0A0
    80. 004DA57B   push cardpro.0040ABEC
    81. 004DA580   push ebx
    82. 004DA581   push eax
    83. 004DA582   call dword ptr ds:[<&MSVBVM60.__vbaHr>; MSVBVM60.__vbaHresultCheckObj
    84. 004DA588   mov eax,dword ptr ss:[ebp-78]         ;
    85. 004DA58B   lea ecx,dword ptr ss:[ebp-A0]
    86. 004DA591   mov dword ptr ss:[ebp-88],eax
    87. 004DA597   lea eax,dword ptr ss:[ebp-90]
    88. 004DA59D   mov ebx,8
    89. 004DA5A2   push eax
    90. 004DA5A3   push ecx
    91. 004DA5A4   mov dword ptr ss:[ebp-78],edi
    92. 004DA5A7   mov dword ptr ss:[ebp-90],ebx
    93. 004DA5AD   call dword ptr ds:[<&MSVBVM60.#520>]  ; MSVBVM60.rtcTrimVar
    94. 004DA5B3   lea edx,dword ptr ss:[ebp-A0]
    95. 004DA5B9   lea ecx,dword ptr ss:[ebp-54]
    96. 004DA5BC   call esi
    97. 004DA5BE   lea edx,dword ptr ss:[ebp-80]
    98. 004DA5C1   lea eax,dword ptr ss:[ebp-7C]
    99. 004DA5C4   push edx
    100. 004DA5C5   mov edi,2
    101. 004DA5CA   push eax
    102. 004DA5CB   push edi
    103. 004DA5CC   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObjList
    104. 004DA5D2   add esp,0C
    105. 004DA5D5   lea ecx,dword ptr ss:[ebp-90]
    106. 004DA5DB   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVar
    107. 004DA5E1   mov edx,dword ptr ss:[ebp-24]
    108. 004DA5E4   mov eax,dword ptr ss:[ebp-20]
    109. 004DA5E7   sub esp,10
    110. 004DA5EA   mov ecx,esp
    111. 004DA5EC   mov dword ptr ds:[ecx],edx
    112. 004DA5EE   mov edx,dword ptr ss:[ebp-1C]
    113. 004DA5F1   mov dword ptr ds:[ecx+4],eax
    114. 004DA5F4   mov eax,dword ptr ss:[ebp-18]
    115. 004DA5F7   mov dword ptr ds:[ecx+8],edx
    116. 004DA5FA   mov dword ptr ds:[ecx+C],eax
    117. 004DA5FD   lea ecx,dword ptr ss:[ebp-90]
    118. 004DA603   push ecx
    119. 004DA604   call cardpro.004C5650                 ;
    120. 004DA609   lea edx,dword ptr ss:[ebp-90]
    121. 004DA60F   lea ecx,dword ptr ss:[ebp-44]
    122. 004DA612   call esi
    123. 004DA614   sub esp,10
    124. 004DA617   mov ecx,edi
    125. 004DA619   mov edx,esp
    126. 004DA61B   mov dword ptr ss:[ebp-160],ecx
    127. 004DA621   mov eax,1
    128. 004DA626   push 1
    129. 004DA628   mov dword ptr ds:[edx],ecx
    130. 004DA62A   mov ecx,dword ptr ss:[ebp-15C]
    131. 004DA630   mov dword ptr ss:[ebp-158],eax
    132. 004DA636   mov dword ptr ds:[edx+4],ecx
    133. 004DA639   lea ecx,dword ptr ss:[ebp-64]
    134. 004DA63C   push ecx
    135. 004DA63D   mov dword ptr ds:[edx+8],eax
    136. 004DA640   mov eax,dword ptr ss:[ebp-154]
    137. 004DA646   mov dword ptr ds:[edx+C],eax          ;  
    138. 004DA649   lea edx,dword ptr ss:[ebp-90]
    139. 004DA64F   push edx
    140. 004DA650   call dword ptr ds:[<&MSVBVM60.__vbaVa>; MSVBVM60.__vbaVarIndexLoad
    141. 004DA656   add esp,1C
    142. 004DA659   lea eax,dword ptr ss:[ebp-90]
    143. 004DA65F   lea ecx,dword ptr ss:[ebp-180]
    144. 004DA665   lea edx,dword ptr ss:[ebp-A0]
    145. 004DA66B   push eax
    146. 004DA66C   push ecx
    147. 004DA66D   push edx
    148. 004DA66E   mov dword ptr ss:[ebp-B8],4
    149. 004DA678   mov dword ptr ss:[ebp-C0],edi
    150. 004DA67E   mov dword ptr ss:[ebp-178],5
    151. 004DA688   mov dword ptr ss:[ebp-180],edi
    152. 004DA68E   call dword ptr ds:[<&MSVBVM60.__vbaVa>; MSVBVM60.__vbaVarDiv   /// 识别码中间部分/5
    153. 004DA694   mov edx,eax
    154. 004DA696   lea ecx,dword ptr ss:[ebp-B0]
    155. 004DA69C   call esi
    156. 004DA69E   lea eax,dword ptr ss:[ebp-C0]
    157. 004DA6A4   lea ecx,dword ptr ss:[ebp-B0]
    158. 004DA6AA   push eax
    159. 004DA6AB   push edi
    160. 004DA6AC   lea edx,dword ptr ss:[ebp-D0]
    161. 004DA6B2   push ecx
    162. 004DA6B3   push edx
    163. 004DA6B4   call dword ptr ds:[<&MSVBVM60.#632>]  ; MSVBVM60.rtcMidCharVar
    164. 004DA6BA   mov dword ptr ss:[ebp-198],65         ; 固定字符串
    165. 004DA6C4   lea eax,dword ptr ss:[ebp-44]         ;
    166. 004DA6C7   push 3
    167. 004DA6C9   lea ecx,dword ptr ss:[ebp-100]
    168. 004DA6CF   mov dword ptr ss:[ebp-1B0],ebx
    169. 004DA6D5   mov ebx,dword ptr ds:[<&MSVBVM60.#617>; MSVBVM60.rtcLeftCharVar
    170. 004DA6DB   push eax                              ; 从左边开始取
    171. 004DA6DC   push ecx
    172. 004DA6DD   mov dword ptr ss:[ebp-1A0],edi
    173. 004DA6E3   mov dword ptr ss:[ebp-1A8],cardpro.00>
    174. 004DA6ED   call ebx                              ; 取用户名第一位
    175. 004DA6EF   lea edx,dword ptr ss:[ebp-44]         ;
    176. 004DA6F2   push 4
    177. 004DA6F4   lea eax,dword ptr ss:[ebp-130]
    178. 004DA6FA   push edx
    179. 004DA6FB   push eax
    180. 004DA6FC   mov dword ptr ss:[ebp-1B8],8
    181. 004DA706   mov dword ptr ss:[ebp-1C0],edi
    182. 004DA70C   call ebx
    183. 004DA70E   mov ebx,dword ptr ds:[<&MSVBVM60.__vb>; 取用户名第一位和第二位
    184. 004DA714   lea ecx,dword ptr ss:[ebp-D0]
    185. 004DA71A   lea edx,dword ptr ss:[ebp-1A0]
    186. 004DA720   push ecx
    187. 004DA721   lea eax,dword ptr ss:[ebp-E0]
    188. 004DA727   push edx
    189. 004DA728   push eax
    190. 004DA729   mov dword ptr ss:[ebp-1C8],edi
    191. 004DA72F   mov dword ptr ss:[ebp-1D0],edi
    192. 004DA735   call ebx                              ; 固定字符串101*A
    193. 004DA737   mov edi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaVarCat
    194. 004DA73D   lea ecx,dword ptr ss:[ebp-1B0]
    195. 004DA743   push eax
    196. 004DA744   lea edx,dword ptr ss:[ebp-F0]
    197. 004DA74A   push ecx
    198. 004DA74B   push edx
    199. 004DA74C   call edi
    200. 004DA74E   push eax
    201. 004DA74F   lea eax,dword ptr ss:[ebp-100]
    202. 004DA755   lea ecx,dword ptr ss:[ebp-1C0]
    203. 004DA75B   push eax
    204. 004DA75C   lea edx,dword ptr ss:[ebp-110]
    205. 004DA762   push ecx
    206. 004DA763   push edx
    207. 004DA764   call ebx                              ;8*(用户名第一位)D
    208. 004DA766   push eax
    209. 004DA767   lea eax,dword ptr ss:[ebp-120]
    210. 004DA76D   push eax
    211. 004DA76E   call edi
    212. 004DA770   lea ecx,dword ptr ss:[ebp-130]
    213. 004DA776   push eax
    214. 004DA777   lea edx,dword ptr ss:[ebp-1D0]
    215. 004DA77D   push ecx
    216. 004DA77E   lea eax,dword ptr ss:[ebp-140]
    217. 004DA784   push edx
    218. 004DA785   push eax
    219. 004DA786   call ebx                              ; 2*(用户名第一位和第二位)D的前四位
    220. 004DA788   lea ecx,dword ptr ss:[ebp-150]
    221. 004DA78E   push eax
    222. 004DA78F   push ecx
    223. 004DA790   call edi
    224. 004DA792   mov edx,eax
    225. 004DA794   lea ecx,dword ptr ss:[ebp-34]
    226. 004DA797   call esi                              ; 不要以为不是明码,其实进去就可以看见了,呵呵
    227. 004DA799   lea edx,dword ptr ss:[ebp-120]
    228. 004DA79F   lea eax,dword ptr ss:[ebp-130]
    229. 004DA7A5   push edx
    230. 004DA7A6   lea ecx,dword ptr ss:[ebp-F0]
    231. 004DA7AC   push eax
    232. 004DA7AD   lea edx,dword ptr ss:[ebp-100]
    233. 004DA7B3   push ecx
    234. 004DA7B4   lea eax,dword ptr ss:[ebp-D0]
    235. 004DA7BA   push edx
    236. 004DA7BB   lea ecx,dword ptr ss:[ebp-C0]
    237. 004DA7C1   push eax
    238. 004DA7C2   lea edx,dword ptr ss:[ebp-B0]
    239. 004DA7C8   push ecx
    240. 004DA7C9   lea eax,dword ptr ss:[ebp-90]
    241. 004DA7CF   push edx
    242. 004DA7D0   push eax
    243. 004DA7D1   push 8
    244. 004DA7D3   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVarList
    245. 004DA7D9   add esp,24
    246. 004DA7DC   mov ecx,dword ptr ss:[ebp+C]
    247. 004DA7DF   movsx eax,word ptr ds:[ecx]
    248. 004DA7E2   sub eax,0
    249. 004DA7E5   je cardpro.004DAB50
    250. 004DA7EB   dec eax
    251. 004DA7EC   je cardpro.004DA8DA
    252. 004DA7F2   dec eax
    253. 004DA7F3   jnz cardpro.004DAD2A
    254. 004DA7F9   mov eax,dword ptr ds:[4E1740]
    255. 004DA7FE   test eax,eax
    256. 004DA800   jnz short cardpro.004DA816
    257. 004DA802   mov ebx,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaNew2
    258. 004DA808   push cardpro.004E1740
    259. 004DA80D   push cardpro.0040B3DC
    260. 004DA812   call ebx
    261. 004DA814   jmp short cardpro.004DA81C
    262. 004DA816   mov ebx,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaNew2
    263. 004DA81C   mov edx,dword ptr ss:[ebp+8]
    264. 004DA81F   mov esi,dword ptr ds:[4E1740]
    265. 004DA825   lea eax,dword ptr ss:[ebp-7C]
    266. 004DA828   push edx
    267. 004DA829   mov edi,dword ptr ds:[esi]
    268. 004DA82B   push eax
    269. 004DA82C   call dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSetAddref
    270. 004DA832   push eax
    271. 004DA833   push esi
    272. 004DA834   call dword ptr ds:[edi+10]
    273. 004DA837   test eax,eax
    274. 004DA839   fclex
    275. 004DA83B   jge short cardpro.004DA850
    276. 004DA83D   mov edi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaHresultCheckObj
    277. 004DA843   push 10
    278. 004DA845   push cardpro.0040B3CC
    279. 004DA84A   push esi
    280. 004DA84B   push eax
    281. 004DA84C   call edi
    282. 004DA84E   jmp short cardpro.004DA856
    283. 004DA850   mov edi,dword ptr ds:[<&MSVBVM60.__vb>; MSVBVM60.__vbaHresultCheckObj
    284. 004DA856   lea ecx,dword ptr ss:[ebp-7C]
    285. 004DA859   call dword ptr ds:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeObj
    286. 004DA85F   mov eax,dword ptr ds:[4E1010]
    287. 004DA864   test eax,eax
    288. 004DA866   jnz short cardpro.004DA874
    289. 004DA868   push cardpro.004E1010
    290. 004DA86D   push cardpro.0040DBB0
    291. 004DA872   call ebx
    292. 004DA874   mov esi,dword ptr ds:[4E1010]
    293. 004DA87A   push -1
    294. 004DA87C   push esi
    295. 004DA87D   mov ecx,dword ptr ds:[esi]
    296. 004DA87F   call dword ptr ds:[ecx+94]
    297. 004DA885   test eax,eax
    298. 004DA887   fclex
    299. 004DA889   jge short cardpro.004DA899
    300. 004DA88B   push 94
    301. 004DA890   push cardpro.00409DCC
    302. 004DA895   push esi
    303. 004DA896   push eax
    304. 004DA897   call edi
    305. 004DA899   mov eax,dword ptr ds:[4E1010]
    306. 004DA89E   test eax,eax
    307. 004DA8A0   jnz short cardpro.004DA8AE
    308. 004DA8A2   push cardpro.004E1010
    309. 004DA8A7   push cardpro.0040DBB0
    310. 004DA8AC   call ebx
    311. 004DA8AE   mov esi,dword ptr ds:[4E1010]
    312. 004DA8B4   push esi
    313. 004DA8B5   mov edx,dword ptr ds:[esi]
    314. 004DA8B7   call dword ptr ds:[edx+2A8]
    315. 004DA8BD   test eax,eax
    316. 004DA8BF   fclex
    317. 004DA8C1   jge cardpro.004DAD2A
    318. 004DA8C7   push 2A8
    319. 004DA8CC   push cardpro.00409DCC
    320. 004DA8D1   push esi
    321. 004DA8D2   push eax
    322. 004DA8D3   call edi
    323. 004DA8D5   jmp cardpro.004DAD2A
    324. 004DA8DA   lea eax,dword ptr ss:[ebp-54]
    325. 004DA8DD   lea ecx,dword ptr ss:[ebp-34]
    326. 004DA8E0   push eax
    327. 004DA8E1   push ecx
    328. 004DA8E2   call dword ptr ds:[<&MSVBVM60.__vbaVa>; MSVBVM60.__vbaVarTstNe
    329. 004DA8E8   test ax,ax
    330. 004DA8EB   je cardpro.004DA9E9                   ; 爆破点
    331. 004DA8F1   lea edx,dword ptr ss:[ebp-90]
    332. 004DA8F7   push 0D


    333. ////////////////////////////////////////////////////////////////////////////////////////////
    334. ////////////////////////////////////////////////////////////////////////////////////////////

    335. 算法总结:

    336. 1) 识别码中间部分/5,取其2--5位,记为A
    337. 1) 固定字符串101*A = B
    338. 2) 8*(用户名第一位)D=C
    339. 3) 2*(用户名第一位和第二位)D的前四位=D
    340. 4) "B" - "CD" = 注册码

    复制代码

    --------------------------------------------------------------------------------
    【破解总结】


    复习看题目看得眼好花,不小心又捡了软东西~~~~
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-28 06:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2006-11-10 15:37:51 | 显示全部楼层
    ;P 支持冷血兄弟
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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