吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4284|回复: 14

[原创逆向图文] 快乐园丁 离线注册分析与注册机核心代码

  [复制链接]
vipcrack 发表于 2014-12-17 06:53 | 显示全部楼层 |阅读模式

快乐园丁离线注册分析与注册机核心代码

软件可以直接去百度找,版本可能更新了,算法不知道变化没有,以手头的版本和程序进行调试分析,并简单记录如下:



  1. 程序在调试过程中发现有在线注册和离线注册两种方式,直接离线本地验证,分析算法。
  2. 00295635  |.  E8 2E790800         call    0031CF68                              ; \bdMain.013BCF68
  3. 0029563A  |.  803D 24B24900 00    cmp     byte ptr [0x49B224], 0x0
  4. 00295641  |.  C605 25B24900 00    mov     byte ptr [0x49B225], 0x0
  5. 00295648      0F85 AA000000       jnz     002956F8                              ;  nop 离线注册
  6. 0029564E  |.  68 A42D4600         push    00462DA4                              ; /OLDE
  7. 00295653  |.  68 8CB44900         push    0049B48C                              ; |Arg1 = 0049B48C
  8. 00295658  |.  E8 B3540000         call    0029AB10                              ; \bdMain.0133AB10
  9. 0029565D  |.  83C4 08             add     esp, 0x8
  10. 00295660  |.  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  11. 00295664  |.  84C0                test    al, al
  12. 00295666  |.  74 32               je      short 0029569A
  13. 00295668  |.  68 74B44900         push    0049B474                              ; /Arg3 = 0049B474
  14. 0029566D  |.  68 E02F4600         push    00462FE0                              ; |file:///
  15. 00295672  |.  51                  push    ecx                                   ; |Arg1
  16. 00295673  |.  E8 A84E0000         call    0029A520                              ; \bdMain.0133A520
  17. 00295678  |.  83C4 0C             add     esp, 0xC
  18. 0029567B  |.  68 B02F4600         push    00462FB0                              ; /\Data\Reg\register.html
  19. 00295680  |.  50                  push    eax                                   ; |Arg2
  20. 00295681  |.  8D5424 34           lea     edx, dword ptr [esp+0x34]             ; |
  21. 00295685  |.  52                  push    edx                                   ; |Arg1
  22. 00295686  |.  C64424 74 15        mov     byte ptr [esp+0x74], 0x15             ; |
  23. 0029568B  |.  E8 B0520000         call    0029A940                              ; \bdMain.0133A940
  24. 00295690  |.  83C4 0C             add     esp, 0xC
  25. 00295693  |.  C64424 68 16        mov     byte ptr [esp+0x68], 0x16
  26. 00295698  |.  EB 30               jmp     short 002956CA
  27. 0029569A  |>  68 B8B44900         push    0049B4B8                              ; /Arg3 = 0049B4B8
  28. 0029569F  |.  68 1C304600         push    0046301C                              ; |http://localhost:
  29. 002956A4  |.  51                  push    ecx                                   ; |Arg1
  30. 002956A5  |.  E8 764E0000         call    0029A520                              ; \bdMain.0133A520
  31. 002956AA  |.  83C4 0C             add     esp, 0xC
  32. 002956AD  |.  68 F42F4600         push    00462FF4                              ; //Reg/register.html
  33. 002956B2  |.  50                  push    eax                                   ; |Arg2
  34. 002956B3  |.  8D5424 34           lea     edx, dword ptr [esp+0x34]             ; |
  35. 002956B7  |.  52                  push    edx                                   ; |Arg1
  36. 002956B8  |.  C64424 74 17        mov     byte ptr [esp+0x74], 0x17             ; |
  37. 002956BD  |.  E8 7E520000         call    0029A940                              ; \bdMain.0133A940
  38. 002956C2  |.  83C4 0C             add     esp, 0xC
  39. 002956C5  |.  C64424 68 18        mov     byte ptr [esp+0x68], 0x18
  40. 002956CA  |>  8B00                mov     eax, dword ptr [eax]                  ;  堆栈 ds:[003EF3C8]=00AE9E18, (UNICODE "http://localhost:2719/Reg/register.html")
  41. 002956CC  |.  6A 00               push    0x0
  42. 002956CE  |.  6A 00               push    0x0
  43. 002956D0  |.  6A 00               push    0x0
  44. 002956D2  |.  6A 00               push    0x0
  45. 002956D4  |.  68 02040000         push    0x402
  46. 002956D9  |.  50                  push    eax
  47. 002956DA  |.  8BCF                mov     ecx, edi
  48. 002956DC  |.  E8 23AB0700         call    00310204
  49. 002956E1  |.  8D4C24 2C           lea     ecx, dword ptr [esp+0x2C]
  50. 002956E5  |.  E8 76D3FFFF         call    00292A60
  51. 002956EA  |.  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  52. 002956EE  |.  E8 6DD3FFFF         call    00292A60
  53. 002956F3  |.^ E9 A7FBFFFF         jmp     0029529F
  54. 002956F8  |>  68 70B44900         push    0049B470                              ; /Arg3 = 0049B470
  55. 002956FD  |.  8D4C24 20           lea     ecx, dword ptr [esp+0x20]             ; |
  56. 00295701  |.  68 A0304600         push    004630A0                              ; |http://
  57. 00295706  |.  51                  push    ecx                                   ; |Arg1
  58. 00295707  |.  E8 144E0000         call    0029A520                              ; \bdMain.0133A520
  59. 0029570C  |.  83C4 0C             add     esp, 0xC
  60. 0029570F  |.  68 58304600         push    00463058                              ; //Register/SoftReg.php?ProductCode=
  61. 00295714  |.  50                  push    eax                                   ; |Arg2
  62. 00295715  |.  8D5424 30           lea     edx, dword ptr [esp+0x30]             ; |
  63. 00295719  |.  52                  push    edx                                   ; |Arg1
  64. 0029571A  |.  C64424 74 19        mov     byte ptr [esp+0x74], 0x19             ; |
  65. 0029571F  |.  E8 1C520000         call    0029A940                              ; \bdMain.0133A940
  66. 00295724  |.  83C4 0C             add     esp, 0xC
  67. 00295727  |.  68 94B44900         push    0049B494                              ; /Arg3 = 0049B494
  68. 0029572C  |.  50                  push    eax                                   ; |Arg2
  69. 0029572D  |.  8D4424 1C           lea     eax, dword ptr [esp+0x1C]             ; |
  70. 00295731  |.  50                  push    eax                                   ; |Arg1
  71. 00295732  |.  C64424 74 1A        mov     byte ptr [esp+0x74], 0x1A             ; |
  72. 00295737  |.  E8 24470000         call    00299E60                              ; \bdMain.01339E60
  73. 0029573C  |.  83C4 0C             add     esp, 0xC
  74. 0029573F  |.  68 40304600         push    00463040                              ; /&MacCode=
  75. 00295744  |.  50                  push    eax                                   ; |Arg2
  76. 00295745  |.  8D4C24 20           lea     ecx, dword ptr [esp+0x20]             ; |
  77. 00295749  |.  51                  push    ecx                                   ; |Arg1
  78. 0029574A  |.  C64424 74 1B        mov     byte ptr [esp+0x74], 0x1B             ; |
  79. 0029574F  |.  E8 EC510000         call    0029A940                              ; \bdMain.0133A940
  80. 00295754  |.  83C4 0C             add     esp, 0xC
  81. 00295757  |.  68 78B44900         push    0049B478                              ; /Arg3 = 0049B478
  82. 0029575C  |.  50                  push    eax                                   ; |Arg2
  83. 0029575D  |.  8D5424 34           lea     edx, dword ptr [esp+0x34]             ; |
  84. 00295761  |.  52                  push    edx                                   ; |Arg1
  85. 00295762  |.  C64424 74 1C        mov     byte ptr [esp+0x74], 0x1C             ; |
  86. 00295767  |.  E8 F4460000         call    00299E60                              ; \bdMain.01339E60
  87. 0029576C  |.  83C4 0C             add     esp, 0xC
  88. 0029576F  |.  6A 00               push    0x0
  89. 00295771  |.  6A 00               push    0x0
  90. 00295773  |.  6A 00               push    0x0
  91. 00295775  |.  6A 00               push    0x0
  92. =======================================================
  93. 出现离线注册界面,输入16个0作为序列号,继续调试
  94. 0016658B   .  8B4424 14           mov     eax, dword ptr [esp+0x14]             ;  注册方式为离线注册 ss:[0044B528]=00C8B290, (UNICODE "OfflineReg")
  95. 0016658F   .  B9 80323300         mov     ecx, 00333280                         ;  GetRegFlag
  96. 00166594   .  33FF                xor     edi, edi
  97. 00166596   >  66:8B10             mov     dx, word ptr [eax]
  98. 00166599   .  66:3B11             cmp     dx, word ptr [ecx]
  99. 0016659C   .  75 1E               jnz     short 001665BC
  100. 0016659E   .  66:3BD7             cmp     dx, di
  101. 001665A1   .  74 15               je      short 001665B8
  102. 001665A3   .  66:8B50 02          mov     dx, word ptr [eax+0x2]
  103. 001665A7   .  66:3B51 02          cmp     dx, word ptr [ecx+0x2]
  104. 001665AB   .  75 0F               jnz     short 001665BC
  105. 001665AD   .  83C0 04             add     eax, 0x4
  106. 001665B0   .  83C1 04             add     ecx, 0x4
  107. 001665B3   .  66:3BD7             cmp     dx, di
  108. 001665B6   .^ 75 DE               jnz     short 00166596
  109. 001665B8   >  33C0                xor     eax, eax
  110. 001665BA   .  EB 05               jmp     short 001665C1
  111. 001665BC   >  1BC0                sbb     eax, eax
  112. 001665BE   .  83D8 FF             sbb     eax, -0x1
  113. 001665C1   >  3BC7                cmp     eax, edi
  114. 001665C3   .  0F94C0              sete    al
  115. 001665C6   .  84C0                test    al, al
  116. 001665C8   .  0F84 55010000       je      00166723                              ;  若AL=1则为注册,否则进行算法处理判断
  117. 001665CE   .  8D5424 18           lea     edx, dword ptr [esp+0x18]
  118. 001665D2   .  52                  push    edx                                   ; /Arg1
  119. 001665D3   .  B9 B0B43600         mov     ecx, 0036B4B0                         ; |
  120. 001665D8   .  E8 13C4FFFF         call    001629F0                              ; \bdMain.013329F0
  121. 001665DD   .  68 B0B43600         push    0036B4B0                              ; /Arg3 = 0036B4B0
  122. 001665E2   .  8D4424 2C           lea     eax, dword ptr [esp+0x2C]             ; |
  123. 001665E6   .  68 A0323300         push    003332A0                              ; |setRegFlag('
  124. 001665EB   .  50                  push    eax                                   ; |Arg1
  125. 001665EC   .  E8 2F3F0000         call    0016A520                              ; \bdMain.0133A520
  126. 001665F1   .  83C4 0C             add     esp, 0xC
  127. 001665F4   .  68 78B43600         push    0036B478                              ; /Arg3 = 0036B478
  128. 001665F9   .  50                  push    eax                                   ; |Arg2
  129. 001665FA   .  8D4C24 38           lea     ecx, dword ptr [esp+0x38]             ; |
  130. 001665FE   .  51                  push    ecx                                   ; |Arg1
  131. 001665FF   .  C68424 CC040000 06  mov     byte ptr [esp+0x4CC], 0x6             ; |
  132. 00166607   .  E8 54380000         call    00169E60                              ; \bdMain.01339E60
  133. 0016660C   .  83C4 0C             add     esp, 0xC
  134. 0016660F   .  68 94B43600         push    0036B494                              ; /Arg3 = 0036B494
  135. 00166614   .  50                  push    eax                                   ; |Arg2
  136. 00166615   .  8D5424 40           lea     edx, dword ptr [esp+0x40]             ; |
  137. 00166619   .  B3 07               mov     bl, 0x7                               ; |
  138. 0016661B   .  52                  push    edx                                   ; |Arg1
  139. 0016661C   .  889C24 CC040000     mov     byte ptr [esp+0x4CC], bl              ; |
  140. 00166623   .  E8 38380000         call    00169E60                              ; \bdMain.01339E60
  141. 00166628   .  83C4 0C             add     esp, 0xC
  142. 0016662B   .  68 98323300         push    00333298                              ; /');
  143. 00166630   .  50                  push    eax                                   ; |Arg2
  144. 00166631   .  8D4424 28           lea     eax, dword ptr [esp+0x28]             ; |
  145. 00166635   .  50                  push    eax                                   ; |Arg1
  146. 00166636   .  C68424 CC040000 08  mov     byte ptr [esp+0x4CC], 0x8             ; |
  147. 0016663E   .  E8 FD420000         call    0016A940                              ; \bdMain.0133A940
  148. 00166643   .  83C4 0C             add     esp, 0xC
  149. 00166646   .  50                  push    eax                                   ; /Arg1
  150. 00166647   .  B9 88B43600         mov     ecx, 0036B488                         ; |
  151. 0016664C   .  C68424 C4040000 09  mov     byte ptr [esp+0x4C4], 0x9             ; |
  152. ==========================================================================================
  153. 出现机器码  0000 0000 0000 0000 7001 6707 0030 1101
  154. 其中后面的7001 6707 0030  1101的前两端是根据CPUID进行MD5计算取值得到的,后两端时间长了忘了,好像是取主板BIOS还是CPUID计算的来的。
  155. 下一步,输入12个任意数字作为注册码,继续调试
  156. 00166723   > \8D4C24 14           lea     ecx, dword ptr [esp+0x14]             ;  离线注册
  157. 00166727   .  68 BC323300         push    003332BC                              ; /OfflineReg
  158. 0016672C   .  51                  push    ecx                                   ; |Arg1
  159. 0016672D   .  E8 DE430000         call    0016AB10                              ; \bdMain.0133AB10
  160. 00166732   .  83C4 08             add     esp, 0x8
  161. 00166735   .  84C0                test    al, al
  162. 00166737   .  0F84 AB050000       je      00166CE8
  163. 0016673D   .  E8 FB410700         call    001DA93D
  164. 00166742   .  33C9                xor     ecx, ecx
  165. 00166744   .  3BC7                cmp     eax, edi
  166. 00166746   .  0F95C1              setne   cl
  167. 00166749   .  3BCF                cmp     ecx, edi
  168. 0016674B   .  75 0A               jnz     short 00166757
  169. 0016674D   .  68 05400080         push    0x80004005                            ; /Arg1 = 80004005
  170. 00166752   .  E8 29C3FFFF         call    00162A80                              ; \bdMain.01332A80
  171. 00166757   >  8B10                mov     edx, dword ptr [eax]
  172. 00166759   .  8BC8                mov     ecx, eax
  173. 0016675B   .  8B42 0C             mov     eax, dword ptr [edx+0xC]
  174. 0016675E   .  FFD0                call    eax
  175. 00166760   .  83C0 10             add     eax, 0x10
  176. 00166763   .  894424 10           mov     dword ptr [esp+0x10], eax
  177. 00166767   .  68 B0B43600         push    0036B4B0                              ; /Arg3 = 0036B4B0
  178. 0016676C   .  8D4C24 2C           lea     ecx, dword ptr [esp+0x2C]             ; |
  179. 00166770   .  68 902F3300         push    00332F90                              ; |固定字符串013C2F90=013C2F90 (UNICODE "Reg2012zfbywfbj")
  180. 00166775   .  51                  push    ecx                                   ; |Arg1
  181. 00166776   .  C68424 CC040000 0A  mov     byte ptr [esp+0x4CC], 0xA             ; |
  182. 0016677E   .  E8 9D3D0000         call    0016A520                              ; \bdMain.0133A520
  183. 00166783   .  83C4 0C             add     esp, 0xC                              ;  连接上16位纯数字序列号  0044B53C   00CF5870  UNICODE "Reg2012zfbywfbj0000000000000000"
  184. 00166786   .  68 78B43600         push    0036B478                              ; /Arg3 = 0036B478
  185. 0016678B   .  50                  push    eax                                   ; |Arg2
  186. 0016678C   .  8D5424 38           lea     edx, dword ptr [esp+0x38]             ; |
  187. 00166790   .  52                  push    edx                                   ; |Arg1
  188. 00166791   .  C68424 CC040000 0B  mov     byte ptr [esp+0x4CC], 0xB             ; |
  189. 00166799   .  E8 C2360000         call    00169E60                              ; \去获取机器码的倒数4,3段
  190. 0016679E   .  83C4 0C             add     esp, 0xC                              ;   0044B544   00CE99D0  UNICODE "Reg2012zfbywfbj000000000000000070016707"
  191. 001667A1   .  68 94B43600         push    0036B494                              ; /00FFB494=00FFB494 (ASCII "p?")
  192. 001667A6   .  50                  push    eax                                   ; |Arg2
  193. 001667A7   .  8D4424 40           lea     eax, dword ptr [esp+0x40]             ; |
  194. 001667AB   .  50                  push    eax                                   ; |Arg1
  195. 001667AC   .  C68424 CC040000 0C  mov     byte ptr [esp+0x4CC], 0xC             ; |
  196. 001667B4      E8 A7360000         call    00169E60                              ; \去获取机器码的倒数2,1段
  197. 001667B9   .  83C4 0C             add     esp, 0xC                              ;  0044B54C   00C8C4D8  UNICODE "Reg2012zfbywfbj00000000000000007001670700301101"
  198. 001667BC   .  C68424 C0040000 0D  mov     byte ptr [esp+0x4C0], 0xD
  199. 001667C4   .  8B00                mov     eax, dword ptr [eax]                  ;  堆栈 ds:[0032E57C]=00B41568, (UNICODE "Reg2012zfbywfbj12345678909999995711315300301101")
  200. 001667C6   .  8DB424 B8000000     lea     esi, dword ptr [esp+0xB8]
  201. 001667CD   .  E8 FEAAFFFF         call    001612D0
  202. 001667D2   .  B3 0E               mov     bl, 0xE
  203. 001667D4   .  BF 10000000         mov     edi, 0x10
  204. 001667D9   .  889C24 C0040000     mov     byte ptr [esp+0x4C0], bl
  205. 001667E0   .  3978 14             cmp     dword ptr [eax+0x14], edi
  206. 001667E3   .  72 02               jb      short 001667E7
  207. 001667E5   .  8B00                mov     eax, dword ptr [eax]
  208. 001667E7   >  8BD0                mov     edx, eax                              ;  eax=00B17AD0, (ASCII "Reg2012zfbywfbj12345678909999995711315300301101")
  209. 001667E9   .  E8 72AFFFFF         call    00161760
  210. 001667EE   .  50                  push    eax                                   ; /求MD5结果 eax=00C8B310, (ASCII "3628edc06ee6771f365f047266e05a52")
  211. 001667EF   .  8D4C24 24           lea     ecx, dword ptr [esp+0x24]             ; |
  212. 001667F3   .  E8 E8BDFFFF         call    001625E0                              ; \bdMain.013325E0
  213. 001667F8   .  50                  push    eax                                   ; /Arg1
  214. 001667F9   .  8D4C24 14           lea     ecx, dword ptr [esp+0x14]             ; |
  215. 001667FD   .  C68424 C4040000 0F  mov     byte ptr [esp+0x4C4], 0xF             ; |
  216. 00166805   .  E8 E6C1FFFF         call    001629F0                              ; \bdMain.013329F0
  217. 0016680A   .  889C24 C0040000     mov     byte ptr [esp+0x4C0], bl
  218. 00166811   .  8B4424 20           mov     eax, dword ptr [esp+0x20]
  219. 00166815   .  83C0 F0             add     eax, -0x10
  220. 00166818   .  8D48 0C             lea     ecx, dword ptr [eax+0xC]
  221. 0016681B   .  83CA FF             or      edx, 0xFFFFFFFF
  222. 0016681E   .  F0:0FC111           lock xadd dword ptr [ecx], edx
  223. 00166822   .  4A                  dec     edx
  224. 00166823   .  85D2                test    edx, edx
  225. 00166825   .  7F 0A               jg      short 00166831
  226. 00166827   .  8B08                mov     ecx, dword ptr [eax]
  227. 00166829   .  8B11                mov     edx, dword ptr [ecx]
  228. 0016682B   .  50                  push    eax
  229. 0016682C   .  8B42 04             mov     eax, dword ptr [edx+0x4]
  230. 0016682F   .  FFD0                call    eax
  231. 00166831   >  39BC24 CC000000     cmp     dword ptr [esp+0xCC], edi
  232. 00166838   .  72 10               jb      short 0016684A
  233. 0016683A   .  8B8C24 B8000000     mov     ecx, dword ptr [esp+0xB8]             ;  堆栈 ss:[0044B5CC]=00C899E0, (ASCII "Reg2012zfbywfbj00000000000000007001670700301101")
  234. 00166841   .  51                  push    ecx
  235. 00166842   .  E8 8F400700         call    001DA8D6
  236. 00166847   .  83C4 04             add     esp, 0x4
  237. 0016684A   >  C68424 C0040000 0C  mov     byte ptr [esp+0x4C0], 0xC
  238. 00166852   .  8B4424 38           mov     eax, dword ptr [esp+0x38]
  239. 00166856   .  83C0 F0             add     eax, -0x10
  240. 00166859   .  C78424 CC000000 0F0>mov     dword ptr [esp+0xCC], 0xF
  241. 00166864   .  C78424 C8000000 000>mov     dword ptr [esp+0xC8], 0x0
  242. 0016686F   .  C68424 B8000000 00  mov     byte ptr [esp+0xB8], 0x0
  243. 00166877   .  8D50 0C             lea     edx, dword ptr [eax+0xC]
  244. 0016687A   .  83C9 FF             or      ecx, 0xFFFFFFFF
  245. 0016687D   .  F0:0FC10A           lock xadd dword ptr [edx], ecx
  246. 00166881   .  49                  dec     ecx
  247. 00166882   .  85C9                test    ecx, ecx
  248. 00166884   .  7F 0A               jg      short 00166890
  249. 00166886   .  8B08                mov     ecx, dword ptr [eax]
  250. 00166888   .  8B11                mov     edx, dword ptr [ecx]
  251. 0016688A   .  50                  push    eax
  252. 0016688B   .  8B42 04             mov     eax, dword ptr [edx+0x4]
  253. 0016688E   .  FFD0                call    eax
  254. 00166890   >  C68424 C0040000 0B  mov     byte ptr [esp+0x4C0], 0xB
  255. 00166898   .  8B4424 30           mov     eax, dword ptr [esp+0x30]
  256. 0016689C   .  83C0 F0             add     eax, -0x10
  257. 0016689F   .  8D48 0C             lea     ecx, dword ptr [eax+0xC]
  258. 001668A2   .  83CA FF             or      edx, 0xFFFFFFFF
  259. 001668A5   .  F0:0FC111           lock xadd dword ptr [ecx], edx
  260. 001668A9   .  4A                  dec     edx
  261. 001668AA   .  85D2                test    edx, edx
  262. 001668AC   .  7F 0A               jg      short 001668B8
  263. 001668AE   .  8B08                mov     ecx, dword ptr [eax]
  264. 001668B0   .  8B11                mov     edx, dword ptr [ecx]
  265. 001668B2   .  50                  push    eax
  266. 001668B3   .  8B42 04             mov     eax, dword ptr [edx+0x4]
  267. 001668B6   .  FFD0                call    eax
  268. 001668B8   >  C68424 C0040000 0A  mov     byte ptr [esp+0x4C0], 0xA
  269. 001668C0   .  8B4424 28           mov     eax, dword ptr [esp+0x28]
  270. 001668C4   .  83C0 F0             add     eax, -0x10
  271. 001668C7   .  8D48 0C             lea     ecx, dword ptr [eax+0xC]
  272. 001668CA   .  83CA FF             or      edx, 0xFFFFFFFF
  273. 001668CD   .  F0:0FC111           lock xadd dword ptr [ecx], edx
  274. 001668D1   .  4A                  dec     edx
  275. 001668D2   .  85D2                test    edx, edx
  276. 001668D4   .  7F 0A               jg      short 001668E0
  277. 001668D6   .  8B08                mov     ecx, dword ptr [eax]
  278. 001668D8   .  8B11                mov     edx, dword ptr [ecx]
  279. 001668DA   .  50                  push    eax
  280. 001668DB   .  8B42 04             mov     eax, dword ptr [edx+0x4]
  281. 001668DE   .  FFD0                call    eax                                   ;   把MD5结果里面的字符替换成数字,对照关系如下,开始替换字符
  282. 001668E0      68 442E3300         push    00332E44                              ;  1
  283. 001668E5   .  68 482E3300         push    00332E48                              ;  a
  284. 001668EA   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  285. 001668EE   .  E8 5D300000         call    00169950
  286. 001668F3   .  68 4C2E3300         push    00332E4C                              ;  3
  287. 001668F8   .  68 502E3300         push    00332E50                              ;  b
  288. 001668FD   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  289. 00166901   .  E8 4A300000         call    00169950
  290. 00166906   .  68 542E3300         push    00332E54                              ;  5
  291. 0016690B   .  68 582E3300         push    00332E58                              ;  c
  292. 00166910   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  293. 00166914   .  E8 37300000         call    00169950
  294. 00166919   .  68 5C2E3300         push    00332E5C                              ;  7
  295. 0016691E   .  68 602E3300         push    00332E60                              ;  d
  296. 00166923   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  297. 00166927   .  E8 24300000         call    00169950
  298. 0016692C   .  68 642E3300         push    00332E64                              ;  9
  299. 00166931   .  68 682E3300         push    00332E68                              ;  e
  300. 00166936   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  301. 0016693A   .  E8 11300000         call    00169950
  302. 0016693F   .  68 6C2E3300         push    00332E6C                              ;  0
  303. 00166944   .  68 702E3300         push    00332E70                              ;  f
  304. 00166949   .  8D4C24 18           lea     ecx, dword ptr [esp+0x18]
  305. 0016694D   .  E8 FE2F0000         call    00169950
  306. 00166952   .  6A 0C               push    0xC                                   ; /Arg3 = 0000000C
  307. 00166954   .  6A 08               push    0x8                                   ; |Arg2 = 00000008
  308. 00166956   .  8D4C24 28           lea     ecx, dword ptr [esp+0x28]             ; |替换字符后的结果9到20位,0044B524   00CECCD8  UNICODE "36289750699677103650047266905152"
  309. 0016695A   .  51                  push    ecx                                   ; |Arg1
  310. 0016695B   .  8D4C24 1C           lea     ecx, dword ptr [esp+0x1C]             ; |
  311. 0016695F   .  E8 0C3B0000         call    0016A470                              ; \bdMain.0133A470
  312. 00166964   .  50                  push    eax                                   ; /Arg1
  313. 00166965   .  8D4C24 14           lea     ecx, dword ptr [esp+0x14]             ; |
  314. 00166969   .  C68424 C4040000 10  mov     byte ptr [esp+0x4C4], 0x10            ; |
  315. 00166971   .  E8 7AC0FFFF         call    001629F0                              ; \bdMain.013329F0
  316. 00166976   .  C68424 C0040000 0A  mov     byte ptr [esp+0x4C0], 0xA
  317. 0016697E   .  8B4424 20           mov     eax, dword ptr [esp+0x20]             ;  取结果的第9-20位就是注册码 堆栈 ss:[0044B534]=00C899F0, (UNICODE "699677103650")
  318. 00166982   .  83C0 F0             add     eax, -0x10
  319. 00166985   .  8D50 0C             lea     edx, dword ptr [eax+0xC]
  320. 00166988   .  83C9 FF             or      ecx, 0xFFFFFFFF
  321. 0016698B   .  F0:0FC10A           lock xadd dword ptr [edx], ecx
  322. 0016698F   .  49                  dec     ecx
  323. 00166990   .  85C9                test    ecx, ecx
  324. 00166992   .  7F 0A               jg      short 0016699E
  325. 00166994   .  8B08                mov     ecx, dword ptr [eax]
  326. 00166996   .  8B11                mov     edx, dword ptr [ecx]
  327. 00166998   .  50                  push    eax
  328. 00166999   .  8B42 04             mov     eax, dword ptr [edx+0x4]
  329. 0016699C   .  FFD0                call    eax
  330. 0016699E   >  8D4C24 10           lea     ecx, dword ptr [esp+0x10]
  331. 001669A2   .  51                  push    ecx                                   ; /Arg2
  332. 001669A3   .  8D5424 1C           lea     edx, dword ptr [esp+0x1C]             ; |
  333. 001669A7   .  52                  push    edx                                   ; |Arg1
  334. 001669A8   .  E8 533C0000         call    0016A600                              ; \bdMain.0133A600
  335. 001669AD   .  83C4 08             add     esp, 0x8
  336. 001669B0   .  84C0                test    al, al
  337. 001669B2   .  0F84 F6020000       je      00166CAE
  338. 001669B8   .  68 78B43600         push    0036B478                              ; /Arg3 = 0036B478
  339. 001669BD   .  8D4424 50           lea     eax, dword ptr [esp+0x50]             ; |
  340. 001669C1   .  68 0C333300         push    0033330C                              ; |update UserData set MacCode='
  341. 001669C6   .  50                  push    eax                                   ; |Arg1
复制代码

DELPHI注册机核心代码

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.   m:MD5;
  4.   s,num,sn:String;
  5. begin
  6.   s:=StringReplace (Edit1.Text, ' ', '', [rfReplaceAll]);
  7.   s:='Reg2012zfbywfbj'+s;
  8.   m:=MD5.Create;
  9.   m.bmsj(s);
  10.   s:=m.MD5bm;
  11.   s:=copy(LowerCase(s),9,12);
  12.   s:=StringReplace (s, 'a', '1', [rfReplaceAll]);
  13.   s:=StringReplace (s, 'b', '3', [rfReplaceAll]);
  14.   s:=StringReplace (s, 'c', '5', [rfReplaceAll]);
  15.   s:=StringReplace (s, 'd', '7', [rfReplaceAll]);
  16.   s:=StringReplace (s, 'e', '9', [rfReplaceAll]);
  17.   s:=StringReplace (s, 'f', '0', [rfReplaceAll]);
  18.   edit2.Text:=s;
  19. end;
复制代码

源码用到了MD5模块,需要编译的自己去找个编译就行了,或者换别的语言别的模块。


评分

参与人数 25威望 +1 HB +44 THX +19 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
24567 + 2
Jawon + 1
一路走来不容易 + 1
Soul1999 + 1
消逝的过去 + 1
叶落花开 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
hnymsh + 2
lies + 1
雾里看花 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
快乐の神 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
狮子 + 1 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
奥特曼 + 1 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
雨季 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
亚轩 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
Shark恒 + 1 + 10 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
l0v3cr4ck + 1 + 1 论坛有你更精彩!感谢楼主!
浅醉。 + 1 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
Desire + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
岁月神偷 + 2 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
起凡第一华佗 + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!
逍遥枷锁 + 1 评分=感恩!简单却充满爱!感谢您的作品!
kasher + 2 + 1 因果报应:这么热心分享知识,以后活该你发财!!该!哈~
wushiguang + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
520Kelly + 2 评分=感恩!简单却充满爱!感谢您的作品!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
逍遥枷锁 发表于 2014-12-17 09:24 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| vipcrack 发表于 2014-12-17 10:51 | 显示全部楼层

逍遥枷锁 发表于 2014-12-17 09:24
VIP老师出几个视频教程呗,谢谢了。

不大会说话,声音不行,找机会吧,可以尝试下。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
逍遥枷锁 发表于 2014-12-17 11:11 | 显示全部楼层

vipcrack 发表于 2014-12-17 10:51
不大会说话,声音不行,找机会吧,可以尝试下。

VIP老师的声音很Perfect,听到过,不要谦虚了,看好你哦
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
岁月神偷 发表于 2014-12-17 11:19 | 显示全部楼层

很有用的教程
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
起凡第一华佗 发表于 2014-12-17 12:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
520Kelly 发表于 2014-12-17 12:36 | 显示全部楼层

VC++的源码也好啊、Delphi的说真的没接触
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
亚轩 发表于 2014-12-17 16:47 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
神秘客 发表于 2014-12-18 15:25 | 显示全部楼层

好教程,谢谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-2-24 04:06 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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