挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 13135|回复: 16
打印 上一主题 下一主题

[分享] 考无忧2017实战破解+注册机

[复制链接]
6高级会员
624/1100

624

积分

193

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
431
海币
7388
交易币
0
跳转到指定楼层
楼主
发表于 2017-6-2 12:08:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


考无忧2017实战破解+注册机
考无忧2017是用DELPHI XE2写的,所以还是习惯性的用IDR做剖析。其间涉及到注册码算法的有些,我用OD做了盯梢,并且写了注释,便利我们的了解。
首要,依照原贴中,断网,注册转入离线注册。这儿需要输入的内容如下图:


考生名字,手机号,邮箱等都是随意输的,软件也没有做合法性的判断。
注册码一定要输入25位,不符合条件软件会给出相应的提示。
注册科目是软件主动填好的,因为我下载的是winxp的卷子,所以这儿的科目即是winxp。
机器码也是软件主动填好的。
剩余的工作即是咱们自己输入离线注册码了。
在IDR中,查看离线注册按钮的点击事情。


  1. register.TregisterForm.BitmapButton5Click
  2. 00893A00        push        ebp
  3. 00893A01        mov         ebp,esp
  4. 00893A03        mov         ecx,11
  5. 00893A08        push        0
  6. 00893A0A        push        0
  7. 00893A0C        dec         ecx
  8. 00893A0D>       jne         00893A08
  9. 00893A0F        push        ecx
  10. 00893A10        push        ebx
  11. 00893A11        mov         ebx,eax
  12. 00893A13        xor         eax,eax
  13. 00893A15        push        ebp
  14. 00893A16        push        893EFB
  15. 00893A1B        push        dword ptr fs:[eax]
  16. 00893A1E        mov         dword ptr fs:[eax],esp
  17. 00893A21        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  18. 00893A28        push        eax
  19. 00893A29        lea         eax,[ebp-4]
  20. 00893A2C        push        eax
  21. 00893A2D        lea         edx,[ebp-8]
  22. 00893A30        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit   //Edit6就是我们输入的离线注册码
  23. 00893A36        call        TControl.GetText
  24. 00893A3B        mov         eax,dword ptr [ebp-8]
  25. 00893A3E        xor         ecx,ecx
  26. 00893A40        mov         edx,893F1C;' '
  27. 00893A45        call        StringReplace               //去掉空格
  28. 00893A4A        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  29. 00893A51        push        eax
  30. 00893A52        lea         eax,[ebp-4]
  31. 00893A55        push        eax
  32. 00893A56        lea         edx,[ebp-0C]
  33. 00893A59        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  34. 00893A5F        call        TControl.GetText
  35. 00893A64        mov         eax,dword ptr [ebp-0C]
  36. 00893A67        xor         ecx,ecx
  37. 00893A69        mov         edx,893F2C;' '
  38. 00893A6E        call        StringReplace               //去掉全角空格
  39. 00893A73        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  40. 00893A7A        push        eax
  41. 00893A7B        lea         eax,[ebp-4]
  42. 00893A7E        push        eax
  43. 00893A7F        lea         edx,[ebp-10]
  44. 00893A82        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  45. 00893A88        call        TControl.GetText
  46. 00893A8D        mov         eax,dword ptr [ebp-10]
  47. 00893A90        mov         ecx,893F3C;'0'
  48. 00893A95        mov         edx,893F4C;'o'
  49. 00893A9A        call        StringReplace               //把小写字母o换成0
  50. 00893A9F        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  51. 00893AA6        push        eax
  52. 00893AA7        lea         eax,[ebp-4]
  53. 00893AAA        push        eax
  54. 00893AAB        lea         edx,[ebp-14]
  55. 00893AAE        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  56. 00893AB4        call        TControl.GetText
  57. 00893AB9        mov         eax,dword ptr [ebp-14]
  58. 00893ABC        mov         ecx,893F3C;'0'
  59. 00893AC1        mov         edx,893F5C;'o'
  60. 00893AC6        call        StringReplace               //把全角小写字母o换成0
  61. 00893ACB        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  62. 00893AD2        push        eax
  63. 00893AD3        lea         eax,[ebp-4]
  64. 00893AD6        push        eax
  65. 00893AD7        lea         edx,[ebp-18]
  66. 00893ADA        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  67. 00893AE0        call        TControl.GetText
  68. 00893AE5        mov         eax,dword ptr [ebp-18]
  69. 00893AE8        mov         ecx,893F3C;'0'
  70. 00893AED        mov         edx,893F6C;'O'
  71. 00893AF2        call        StringReplace               //把大写字母O换成0
  72. 00893AF7        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  73. 00893AFE        push        eax
  74. 00893AFF        lea         eax,[ebp-4]
  75. 00893B02        push        eax
  76. 00893B03        lea         edx,[ebp-1C]
  77. 00893B06        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  78. 00893B0C        call        TControl.GetText
  79. 00893B11        mov         eax,dword ptr [ebp-1C]
  80. 00893B14        mov         ecx,893F3C;'0'
  81. 00893B19        mov         edx,893F7C;'O'
  82. 00893B1E        call        StringReplace               //把全角大写字母O换成0
  83. 00893B23        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  84. 00893B2A        push        eax
  85. 00893B2B        lea         eax,[ebp-4]
  86. 00893B2E        push        eax
  87. 00893B2F        lea         edx,[ebp-20]
  88. 00893B32        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  89. 00893B38        call        TControl.GetText
  90. 00893B3D        mov         eax,dword ptr [ebp-20]
  91. 00893B40        mov         ecx,893F8C;'-'
  92. 00893B45        mov         edx,893F9C;'_'
  93. 00893B4A        call        StringReplace               //把下划线换成减号-
  94. 00893B4F        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  95. 00893B56        push        eax
  96. 00893B57        lea         eax,[ebp-4]
  97. 00893B5A        push        eax
  98. 00893B5B        lea         edx,[ebp-24]
  99. 00893B5E        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  100. 00893B64        call        TControl.GetText
  101. 00893B69        mov         eax,dword ptr [ebp-24]
  102. 00893B6C        mov         ecx,893F8C;'-'
  103. 00893B71        mov         edx,893FAC;'——'             //把破折号换成减号-
  104. 00893B76        call        StringReplace
  105. 00893B7B        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  106. 00893B82        push        eax
  107. 00893B83        lea         eax,[ebp-4]
  108. 00893B86        push        eax
  109. 00893B87        lea         edx,[ebp-28]
  110. 00893B8A        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  111. 00893B90        call        TControl.GetText
  112. 00893B95        mov         eax,dword ptr [ebp-28]
  113. 00893B98        mov         ecx,893F8C;'-'
  114. 00893B9D        mov         edx,893FC0;'—'              //把全角横线线换成减号-
  115. 00893BA2        call        StringReplace
  116. 00893BA7        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  117. 00893BAE        push        eax
  118. 00893BAF        lea         eax,[ebp-4]
  119. 00893BB2        push        eax
  120. 00893BB3        lea         edx,[ebp-2C]
  121. 00893BB6        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  122. 00893BBC        call        TControl.GetText
  123. 00893BC1        mov         eax,dword ptr [ebp-2C]
  124. 00893BC4        mov         ecx,893F8C;'-'
  125. 00893BC9        mov         edx,893FD0;'-'              //把全角减号换成减号-
  126. 00893BCE        call        StringReplace
  127. 00893BD3        movzx       eax,byte ptr ds:[893F0C];0x1 gvar_00893F0C
  128. 00893BDA        push        eax
  129. 00893BDB        lea         eax,[ebp-4]
  130. 00893BDE        push        eax
  131. 00893BDF        lea         edx,[ebp-30]
  132. 00893BE2        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  133. 00893BE8        call        TControl.GetText
  134. 00893BED        mov         eax,dword ptr [ebp-30]
  135. 00893BF0        mov         ecx,893F8C;'-'
  136. 00893BF5        mov         edx,893FE0;'_'
  137. 00893BFA        call        StringReplace               //把下划线换成减号-
  138. 00893BFF        lea         ecx,[ebp-34]
  139. 00893C02        mov         edx,dword ptr [ebp-4]
  140. 00893C05        mov         eax,[007944CC];TZhou
  141. 00893C0A        call        TZhou.sbctoDbc
  142. 00893C0F        mov         edx,dword ptr [ebp-34]
  143. 00893C12        lea         eax,[ebp-4]
  144. 00893C15        call        @UStrLAsg
  145. 00893C1A        lea         edx,[ebp-38]
  146. 00893C1D        mov         eax,dword ptr [ebp-4]
  147. 00893C20        call        AnsiUpperCase
  148. 00893C25        mov         edx,dword ptr [ebp-38]
  149. 00893C28        lea         eax,[ebp-4]
  150. 00893C2B        call        @UStrLAsg
  151. 00893C30        mov         edx,dword ptr [ebp-4]
  152. 00893C33        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  153. 00893C39        call        TControl.SetText
  154. 00893C3E        lea         edx,[ebp-3C]
  155. 00893C41        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  156. 00893C47        call        TControl.GetText
  157. 00893C4C        cmp         dword ptr [ebp-3C],0
  158. 00893C50>       jne         00893C7D
  159. 00893C52        push        0
  160. 00893C54        mov         ecx,893FE4
  161. 00893C59        mov         edx,893FF0
  162. 00893C5E        mov         eax,[009295CC];^Application:TApplication
  163. 00893C63        mov         eax,dword ptr [eax]
  164. 00893C65        call        TApplication.MessageBox
  165. 00893C6A        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  166. 00893C70        mov         edx,dword ptr [eax]
  167. 00893C72        call        dword ptr [edx+0F4];TWinControl.SetFocus
  168. 00893C78>       jmp         00893E54
  169. 00893C7D        call        00892D40                //这里是判断函数
  170.                                 //理由,第一,这个CALL后面就是判断加跳转;
  171.                                 //第二,这个跳转的地址也在这个段,所以应该是判断注册码的地方。
  172. 00893C82        cmp         dword ptr ds:[0A343D4],1;gvar_00A343D4
  173. 00893C89>       jne         00893E2E
  174. 00893C8F        lea         edx,[ebp-4C]
  175. 00893C92        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  176. 00893C98        call        TControl.GetText
  177. 00893C9D        mov         eax,dword ptr [ebp-4C]
  178. 00893CA0        lea         edx,[ebp-48]
  179. 00893CA3        call        EncodeString
  180. 00893CA8        mov         eax,dword ptr [ebp-48]
  181. 00893CAB        lea         edx,[ebp-44]
  182. 00893CAE        call        0043121C
  183. 00893CB3        mov         ecx,dword ptr [ebp-44]
  184. 00893CB6        lea         eax,[ebp-40]
  185. 00893CB9        mov         edx,894010;'update user set Rcode='
  186. 00893CBE        call        @UStrCat3
  187. 00893CC3        mov         edx,dword ptr [ebp-40]
  188. 00893CC6        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  189. 00893CCB        mov         eax,dword ptr [eax]
  190. 00893CCD        call        TCtl.exeSQLStatement
  191. 00893CD2        lea         edx,[ebp-5C]
  192. 00893CD5        mov         eax,dword ptr [ebx+3C4];TregisterForm.Edit1:TEdit
  193. 00893CDB        call        TControl.GetText
  194. 00893CE0        mov         eax,dword ptr [ebp-5C]
  195. 00893CE3        lea         edx,[ebp-58]
  196. 00893CE6        call        EncodeString
  197. 00893CEB        mov         eax,dword ptr [ebp-58]
  198. 00893CEE        lea         edx,[ebp-54]
  199. 00893XF1        call        0043121C
  200. 00893XF6        mov         ecx,dword ptr [ebp-54]
  201. 00893XF9        lea         eax,[ebp-50]
  202. 00893XFC        mov         edx,89404C;'update user set Acode='
  203. 00893D01        call        @UStrCat3
  204. 00893D06        mov         edx,dword ptr [ebp-50]
  205. 00893D09        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  206. 00893D0E        mov         eax,dword ptr [eax]
  207. 00893D10        call        TCtl.exeSQLStatement
  208. 00893D15        lea         edx,[ebp-6C]
  209. 00893D18        mov         eax,dword ptr [ebx+3B8];TregisterForm.Edit2:TEdit
  210. 00893D1E        call        TControl.GetText
  211. 00893D23        mov         eax,dword ptr [ebp-6C]
  212. 00893D26        lea         edx,[ebp-68]
  213. 00893D29        call        Trim
  214. 00893D2E        mov         eax,dword ptr [ebp-68]
  215. 00893D31        lea         edx,[ebp-64]
  216. 00893D34        call        0043121C
  217. 00893D39        mov         ecx,dword ptr [ebp-64]
  218. 00893D3C        lea         eax,[ebp-60]
  219. 00893D3F        mov         edx,894088;'update user set Name='
  220. 00893D44        call        @UStrCat3
  221. 00893D49        mov         edx,dword ptr [ebp-60]
  222. 00893D4C        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  223. 00893D51        mov         eax,dword ptr [eax]
  224. 00893D53        call        TCtl.exeSQLStatement
  225. 00893D58        lea         edx,[ebp-7C]
  226. 00893D5B        mov         eax,dword ptr [ebx+3BC];TregisterForm.Edit4:TEdit
  227. 00893D61        call        TControl.GetText
  228. 00893D66        mov         eax,dword ptr [ebp-7C]
  229. 00893D69        lea         edx,[ebp-78]
  230. 00893D6C        call        Trim
  231. 00893D71        mov         eax,dword ptr [ebp-78]
  232. 00893D74        lea         edx,[ebp-74]
  233. 00893D77        call        0043121C
  234. 00893D7C        mov         ecx,dword ptr [ebp-74]
  235. 00893D7F        lea         eax,[ebp-70]
  236. 00893D82        mov         edx,8940C0;'update user set Phone='
  237. 00893D87        call        @UStrCat3
  238. 00893D8C        mov         edx,dword ptr [ebp-70]
  239. 00893D8F        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  240. 00893D94        mov         eax,dword ptr [eax]
  241. 00893D96        call        TCtl.exeSQLStatement
  242. 00893D9B        lea         edx,[ebp-8C]
  243. 00893DA1        mov         eax,dword ptr [ebx+3C0];TregisterForm.Edit5:TEdit
  244. 00893DA7        call        TControl.GetText
  245. 00893DAC        mov         eax,dword ptr [ebp-8C]
  246. 00893DB2        lea         edx,[ebp-88]
  247. 00893DB8        call        Trim
  248. 00893DBD        mov         eax,dword ptr [ebp-88]
  249. 00893DC3        lea         edx,[ebp-84]
  250. 00893DC9        call        0043121C
  251. 00893DCE        mov         ecx,dword ptr [ebp-84]
  252. 00893DD4        lea         eax,[ebp-80]
  253. 00893DD7        mov         edx,8940FC;'update user set Email='
  254. 00893DDC        call        @UStrCat3
  255. 00893DE1        mov         edx,dword ptr [ebp-80]
  256. 00893DE4        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  257. 00893DE9        mov         eax,dword ptr [eax]
  258. 00893DEB        call        TCtl.exeSQLStatement
  259. 00893DF0        push        0
  260. 00893DF2        mov         ecx,893FE4
  261. 00893DF7        mov         edx,89412C
  262. 00893DFC        mov         eax,[009295CC];^Application:TApplication
  263. 00893E01        mov         eax,dword ptr [eax]
  264. 00893E03        call        TApplication.MessageBox
  265. 00893E08        mov         eax,[0092946C];^gvar_00A345C8:TCtl
  266. 00893E0D        mov         eax,dword ptr [eax]
  267. 00893E0F        call        TCtl.clearTryHistroy
  268. 00893E14        push        1
  269. 00893E16        push        894154;'start.exe'
  270. 00893E1B        call        kernel32.WinExec
  271. 00893E20        mov         eax,[009295CC];^Application:TApplication
  272. 00893E25        mov         eax,dword ptr [eax]
  273. 00893E27        call        TApplication.Terminate
  274. 00893E2C>       jmp         00893E54
  275. 00893E2E        push        0
  276. 00893E30        mov         ecx,893FE4
  277. 00893E35        mov         edx,894160
  278. 00893E3A        mov         eax,[009295CC];^Application:TApplication
  279. 00893E3F        mov         eax,dword ptr [eax]
  280. 00893E41        call        TApplication.MessageBox
  281. 00893E46        mov         eax,dword ptr [ebx+3D0];TregisterForm.Edit6:TEdit
  282. 00893E4C        mov         edx,dword ptr [eax]
  283. 00893E4E        call        dword ptr [edx+0F4];TWinControl.SetFocus
  284. 00893E54        xor         eax,eax
  285. 00893E56        pop         edx
  286. 00893E57        pop         ecx
  287. 00893E58        pop         ecx
  288. 00893E59        mov         dword ptr fs:[eax],edx
  289. 00893E5C        push        893F05
  290. 00893E61        lea         eax,[ebp-8C]
  291. 00893E67        call        @UStrClr
  292. 00893E6C        lea         eax,[ebp-88]
  293. 00893E72        mov         edx,3
  294. 00893E77        call        @UStrArrayClr
  295. 00893E7C        lea         eax,[ebp-7C]
  296. 00893E7F        call        @UStrClr
  297. 00893E84        lea         eax,[ebp-78]
  298. 00893E87        mov         edx,3
  299. 00893E8C        call        @UStrArrayClr
  300. 00893E91        lea         eax,[ebp-6C]
  301. 00893E94        call        @UStrClr
  302. 00893E99        lea         eax,[ebp-68]
  303. 00893E9C        mov         edx,3
  304. 00893EA1        call        @UStrArrayClr
  305. 00893EA6        lea         eax,[ebp-5C]
  306. 00893EA9        call        @UStrClr
  307. 00893EAE        lea         eax,[ebp-58]
  308. 00893EB1        mov         edx,3
  309. 00893EB6        call        @UStrArrayClr
  310. 00893EBB        lea         eax,[ebp-4C]
  311. 00893EBE        call        @UStrClr
  312. 00893EC3        lea         eax,[ebp-48]
  313. 00893EC6        mov         edx,3
  314. 00893ECB        call        @UStrArrayClr
  315. 00893ED0        lea         eax,[ebp-3C]
  316. 00893ED3        call        @UStrClr
  317. 00893ED8        lea         eax,[ebp-38]
  318. 00893EDB        mov         edx,2
  319. 00893EE0        call        @UStrArrayClr
  320. 00893EE5        lea         eax,[ebp-30]
  321. 00893EE8        mov         edx,0B
  322. 00893EED        call        @UStrArrayClr
  323. 00893EF2        lea         eax,[ebp-4]
  324. 00893EF5        call        @UStrClr
  325. 00893EFA        ret
  326. 00893EFB>       jmp         @HandleFinally
  327. 00893F00>       jmp         00893E61
  328. 00893F05        pop         ebx
  329. 00893F06        mov         esp,ebp
  330. 00893F08        pop         ebp
  331. 00893F09        ret
复制代码


代码的前面一大段是对输入的离线注册码进行一些小的处理,首要即是把字符变为半角罢了,到后边有个函数的判别,我也标示出来了。并且为何要关注这个函数,作为破解的经历,也同时共享给咱们。
那么咱们就持续看那个函数,假如只剖析代码,也许咱们不太好了解,我把OD盯梢的示例也同时加进去,方便咱们了解。

  1. register.sub_00892D40
  2. 00892D40        push        ebp
  3. 00892D41        mov         ebp,esp
  4. 00892D43        mov         ecx,8
  5. 00892D48        push        0
  6. 00892D4A        push        0
  7. 00892D4C        dec         ecx
  8. 00892D4D>       jne         00892D48
  9. 00892D4F        push        ecx
  10. 00892D50        push        ebx
  11. 00892D51        push        esi
  12. 00892D52        push        edi
  13. 00892D53        xor         eax,eax
  14. 00892D55        push        ebp
  15. 00892D56        push        892F39
  16. 00892D5B        push        dword ptr fs:[eax]
  17. 00892D5E        mov         dword ptr fs:[eax],esp
  18. 00892D61        xor         eax,eax
  19. 00892D63        push        ebp
  20. 00892D64        push        892EFF
  21. 00892D69        push        dword ptr fs:[eax]
  22. 00892D6C        mov         dword ptr fs:[eax],esp
  23. 00892D6F        mov         dl,1
  24. 00892D71        mov         eax,[00765BD8];TIdHashMessageDigest5
  25. 00892D76        call        TIdHashMessageDigest4.Create;TIdHashMessageDigest5.Create
  26. 00892D7B        mov         ebx,eax
  27. 00892D7D        lea         edx,[ebp-4]
  28. 00892D80        mov         eax,[00A343A8];gvar_00A343A8:TregisterForm
  29. 00892D85        mov         eax,dword ptr [eax+3C4]
  30. 00892D8B        call        TControl.GetText
  31. 00892D90        movzx       eax,byte ptr ds:[892F4C];0x1 gvar_00892F4C
  32. 00892D97        push        eax
  33. 00892D98        lea         eax,[ebp-1C]
  34. 00892D9B        push        eax
  35. 00892D9C        movzx       eax,byte ptr ds:[892F4C];0x1 gvar_00892F4C
  36. 00892DA3        push        eax
  37. 00892DA4        lea         eax,[ebp-20]
  38. 00892DA7        push        eax
  39. 00892DA8        push        dword ptr ds:[0A343B4];gvar_00A343B4:UnicodeString          //4700D-936AF-CEB02-9A5B8,也就是机器码
  40. 00892DAE        push        892F5C;'&'                              //&字符
  41. 00892DB3        push        dword ptr [ebp-4]                           //1234567890123456789012345,我们输入的注册码
  42. 00892DB6        push        892F5C;'&'                              //&字符
  43. 00892DBB        lea         eax,[ebp-2C]
  44. 00892DBE        mov         edx,4                               //一共4个部分
  45. 00892DC3        call        @UStrCatN                               //4个部分合并,机器码 & 注册码 &
  46. 00892DC8        mov         edx,dword ptr [ebp-2C]                      //合并后的字符串是4700D-936AF-CEB02-9A5B8&1234567890123456789012345&
  47. 00892DCB        lea         ecx,[ebp-28]
  48. 00892DCE        mov         eax,[007944CC];TZhou
  49. 00892DD3        call        TZhou.sbctoDbc                          //这里是干嘛的暂时不知,应该是对字符串做处理的函数,但是好像对我们这个字符串没有影响,先跳过
  50.                                                 //百度了一下,sbctoDbc应该是全角转半角的函数,所以这里直接忽略了
  51. 00892DD8        mov         eax,dword ptr [ebp-28]
  52. 00892DDB        lea         edx,[ebp-24]
  53. 00892DDE        call        AnsiUpperCase
  54. 00892DE3        mov         eax,dword ptr [ebp-24]
  55. 00892DE6        xor         ecx,ecx
  56. 00892DE8        mov         edx,892F6C;'-'
  57. 00892DED        call        StringReplace                           //去掉减号-
  58. 00892DF2        mov         eax,dword ptr [ebp-20]
  59. 00892DF5        xor         ecx,ecx
  60. 00892DF7        mov         edx,892F7C;' '
  61. 00892DFC        call        StringReplace                           //去掉空格
  62. 00892E01        mov         edx,dword ptr [ebp-1C]                      //于是我们得到了字符串4700D936AFCEB029A5B8&1234567890123456789012345&
  63. 00892E04        lea         eax,[ebp-8]
  64. 00892E07        mov         ecx,dword ptr ds:[0A343C0];gvar_00A343C0:UnicodeString      //这里是注册科目winxp
  65. 00892E0D        call        @UStrCat3                               //再合并
  66. 00892E12        lea         eax,[ebp-0C]
  67. 00892E15        push        eax
  68. 00892E16        xor         ecx,ecx
  69. 00892E18        mov         edx,dword ptr [ebp-8]                       //于是就得到了新的字符串4700D936AFCEB029A5B8&1234567890123456789012345&winxp
  70. 00892E1B        mov         eax,ebx
  71. 00892E1D        call        TIdHash.HashStringAsHex                     //这个字符串做MD5转换,得到FF154F7AFB41E7B90B99D975625C6A57
  72. 00892E22        lea         eax,[ebp-10]
  73. 00892E25        push        eax
  74. 00892E26        lea         eax,[ebp-30]
  75. 00892E29        push        eax
  76. 00892E2A        mov         ecx,14                              //0x14=20
  77. 00892E2F        xor         edx,edx
  78. 00892E31        mov         eax,dword ptr [ebp-0C]
  79. 00892E34        call        @UStrCopy                               //取前20位,得到字符串FF154F7AFB41E7B90B99
  80. 00892E39        mov         edx,dword ptr [ebp-30]
  81. 00892E3C        xor         ecx,ecx
  82. 00892E3E        mov         eax,ebx
  83. 00892E40        call        TIdHash.HashStringAsHex                     //再做MD5转换,得到A3122F54C1523C53FE1XF250E62D7BC9
  84. 00892E45        lea         eax,[ebp-34]
  85. 00892E48        push        eax
  86. 00892E49        mov         ecx,5
  87. 00892E4E        xor         edx,edx
  88. 00892E50        mov         eax,dword ptr [ebp-10]
  89. 00892E53        call        @UStrCopy                               //取前5位A3122
  90. 00892E58        push        dword ptr [ebp-34]
  91. 00892E5B        push        892F6C;'-'                              //合并上-
  92. 00892E60        lea         eax,[ebp-38]
  93. 00892E63        push        eax
  94. 00892E64        mov         ecx,5                               //取5位
  95. 00892E69        mov         edx,6                               //从第6位开始取
  96. 00892E6E        mov         eax,dword ptr [ebp-10]
  97. 00892E71        call        @UStrCopy                               //得到F54C1
  98. 00892E76        push        dword ptr [ebp-38]
  99. 00892E79        push        892F6C;'-'                              //再合并上-
  100. 00892E7E        lea         eax,[ebp-3C]
  101. 00892E81        push        eax
  102. 00892E82        mov         ecx,5                               //取5位
  103. 00892E87        mov         edx,0B                              //从第11位开始取
  104. 00892E8C        mov         eax,dword ptr [ebp-10]
  105. 00892E8F        call        @UStrCopy                               //得到523C5
  106. 00892E94        push        dword ptr [ebp-3C]
  107. 00892E97        push        892F6C;'-'                              //再合并上-
  108. 00892E9C        lea         eax,[ebp-40]
  109. 00892E9F        push        eax
  110. 00892EA0        mov         ecx,5                               //取5位
  111. 00892EA5        mov         edx,10                              //从第16位开始取
  112. 00892EAA        mov         eax,dword ptr [ebp-10]
  113. 00892EAD        call        @UStrCopy                               //得到3FE1C
  114. 00892EB2        push        dword ptr [ebp-40]
  115. 00892EB5        lea         eax,[ebp-14]
  116. 00892EB8        mov         edx,7                               //一共7个部分
  117. 00892EBD        call        @UStrCatN                               //合并,得到A3122-F54C1-523C5-3FE1C
  118. 00892EC2        lea         edx,[ebp-44]
  119. 00892EC5        mov         eax,[00A343A8];gvar_00A343A8:TregisterForm
  120. 00892ECA        mov         eax,dword ptr [eax+3D0]
  121. 00892ED0        call        TControl.GetText
  122. 00892ED5        mov         edx,dword ptr [ebp-44]                      //输入的离线注册码ABCDE
  123. 00892ED8        mov         eax,dword ptr [ebp-14]                      //刚才算出来的离线注册码A3122-F54C1-523C5-3FE1C
  124. 00892EDB        call        @UStrEqual                              //判断是不是相等
  125. 00892EE0>       jne         00892EEE
  126. 00892EE2        mov         dword ptr ds:[0A343D4],1;gvar_00A343D4
  127. 00892EEC>       jmp         00892EF5
  128. 00892EEE        xor         eax,eax
  129. 00892EF0        mov         [00A343D4],eax;gvar_00A343D4
  130. 00892EF5        xor         eax,eax
  131. 00892EF7        pop         edx
  132. 00892EF8        pop         ecx
  133. 00892EF9        pop         ecx
  134. 00892EFA        mov         dword ptr fs:[eax],edx
  135. 00892EFD>       jmp         00892F09
  136. 00892EFF>       jmp         @HandleAnyException
  137. 00892F04        call        @DoneExcept
  138. 00892F09        xor         eax,eax
  139. 00892F0B        pop         edx
  140. 00892F0C        pop         ecx
  141. 00892F0D        pop         ecx
  142. 00892F0E        mov         dword ptr fs:[eax],edx
  143. 00892F11        push        892F40
  144. 00892F16        lea         eax,[ebp-44]
  145. 00892F19        call        @UStrClr
  146. 00892F1E        lea         eax,[ebp-40]
  147. 00892F21        mov         edx,0A
  148. 00892F26        call        @UStrArrayClr
  149. 00892F2B        lea         eax,[ebp-14]
  150. 00892F2E        mov         edx,5
  151. 00892F33        call        @UStrArrayClr
  152. 00892F38        ret
  153. 00892F39>       jmp         @HandleFinally
  154. 00892F3E>       jmp         00892F16
  155. 00892F40        mov         eax,dword ptr [ebp-18]
  156. 00892F43        pop         edi
  157. 00892F44        pop         esi
  158. 00892F45        pop         ebx
  159. 00892F46        mov         esp,ebp
  160. 00892F48        pop         ebp
  161. 00892F49        ret
复制代码
这个代码我们应当能看懂了吧?算法本来很简单,字符串拼到一起,MD5处理,取前20位,再MD5处理一下,然后再取前20位,每5位一组分隔,中心用-衔接即为真正的离线注册码。
注册机也趁便写出来了,用注册机的成果如下:


通用注册机
K51_KeyGen.rar (55.39 KB, 下载次数: 132)



联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:au3反编译方法不错的AU3反编译教程
下一篇:MindView 6.0版破解分析记录
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

1

积分

0

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
7
交易币
0
沙发
发表于 2017-6-2 15:17:46 | 只看该作者
{:じοじ:}{:じοじ:}{:じοじ:}
这么块就出注册机了

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
3
交易币
0
板凳
发表于 2017-6-2 21:49:48 | 只看该作者
想下载。。。。。。。。。
回复

使用道具 举报

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
7
交易币
0
地板
发表于 2017-6-3 13:25:12 | 只看该作者
楼主,解压密码是多少啊?

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
3
交易币
0
5#
发表于 2017-6-9 09:14:53 | 只看该作者
谢谢分享,下载过来看看是否可用

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
1
交易币
0
6#
发表于 2017-6-9 17:46:35 | 只看该作者

谢谢分享,下载过来看看是否可用

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
5
交易币
0
7#
发表于 2017-6-10 19:28:17 | 只看该作者
有解压密码耶

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
9
交易币
0
8#
发表于 2017-6-11 10:23:35 | 只看该作者
解压密码是什么啊

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
46
交易币
0
9#
发表于 2017-7-25 21:00:41 | 只看该作者
解压缩密码、??

1

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
1
海币
50
交易币
0
10#
发表于 2017-9-10 21:44:47 | 只看该作者
本帖最后由 空心萝卜 于 2017-9-10 21:54 编辑

楼主辛苦了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-29 11:54 , Processed in 0.615045 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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