飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5467|回复: 5

驱动精灵2005算法简单分析(初学者)

[复制链接]

该用户从未签到

发表于 2006-1-28 00:15:09 | 显示全部楼层 |阅读模式

【破文标题】驱动精灵2005算法简单分析
【破文作者】surge[PYG]
【作者邮箱】[email protected]
【作者主页】www.chinapyg.com
破解工具】OllyDbg IDA
【破解平台】xp+sp2
【软件名称】驱动精灵2005 简体中文专业版Version 3.11 (Build 2600)
【原版下载】http://www.softreg.com.cn/shareware_view.asp?id=/2D69A406-6C14-4F9A-997A-C220DFF50EF3/
【保护方式】序列号,明码比较。
【软件简介】为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。

------------------------------------------------------------------------

用IDA生成MAP文件用OD载入并用loadmap插件载入生成的MAP文件。
找到关键的地方如下:
可以看出对一些敏感的用户名做了测试,看来作者对破解组织及一些cracker是有一些了解的。


  1. 0049DA1C   .  55            push    ebp
  2. 0049DA1D   .  8BEC          mov     ebp, esp
  3. 0049DA1F   .  B9 14000000   mov     ecx, 14
  4. 0049DA24   >  6A 00         push    0
  5. 0049DA26   .  6A 00         push    0
  6. 0049DA28   .  49            dec     ecx
  7. 0049DA29   .^ 75 F9         jnz     short 0049DA24
  8. 0049DA2B   .  53            push    ebx
  9. 0049DA2C   .  56            push    esi
  10. 0049DA2D   .  57            push    edi
  11. 0049DA2E   .  8945 FC       mov     dword ptr ss:[ebp-4], eax
  12. 0049DA31   .  33C0          xor     eax, eax
  13. 0049DA33   .  55            push    ebp
  14. 0049DA34   .  68 23E14900   push    0049E123
  15. 0049DA39   .  64:FF30       push    dword ptr fs:[eax]
  16. 0049DA3C   .  64:8920       mov     dword ptr fs:[eax], esp
  17. 0049DA3F   .  8D55 E4       lea     edx, dword ptr ss:[ebp-1C]
  18. 0049DA42   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  19. 0049DA45   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  20. 0049DA4B   .  E8 4C5BFAFF   call    <@TControl@GetText$qqrv>                         ;  取用户名
  21. 0049DA50   .  8B45 E4       mov     eax, dword ptr ss:[ebp-1C]
  22. 0049DA53   .  E8 2074F6FF   call    <@System@_16823>                                 ;  计算长度
  23. 0049DA58   .  05 AE080000   add     eax, 8AE                                         ;  用户名字符串的长度加上0x8ae(2222d),下面要用到这个结果
  24. 0049DA5D   .  8D55 E8       lea     edx, dword ptr ss:[ebp-18]
  25. 0049DA60   .  E8 87B9F6FF   call    <@Sysutils@IntToStr$qqri>
  26. 0049DA65   .  8D55 E0       lea     edx, dword ptr ss:[ebp-20]
  27. 0049DA68   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  28. 0049DA6B   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  29. 0049DA71   .  E8 265BFAFF   call    <@TControl@GetText$qqrv>
  30. 0049DA76   .  8B45 E0       mov     eax, dword ptr ss:[ebp-20]
  31. 0049DA79   .  BA 3CE14900   mov     edx, 0049E13C                                    ;  distinct
  32. 0049DA7E   .  E8 3975F6FF   call    <@System@@LStrCmp$qqrv>
  33. 0049DA83   .  0F84 BF050000 je      0049E048
  34. 0049DA89   .  8D55 DC       lea     edx, dword ptr ss:[ebp-24]
  35. 0049DA8C   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  36. 0049DA8F   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  37. 0049DA95   .  E8 025BFAFF   call    <@TControl@GetText$qqrv>
  38. 0049DA9A   .  8B45 DC       mov     eax, dword ptr ss:[ebp-24]
  39. 0049DA9D   .  BA 50E14900   mov     edx, 0049E150                                    ;  team insane
  40. 0049DAA2   .  E8 1575F6FF   call    <@System@@LStrCmp$qqrv>
  41. 0049DAA7   .  0F84 9B050000 je      0049E048
  42. 0049DAAD   .  8D55 D8       lea     edx, dword ptr ss:[ebp-28]
  43. 0049DAB0   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  44. 0049DAB3   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  45. 0049DAB9   .  E8 DE5AFAFF   call    <@TControl@GetText$qqrv>
  46. 0049DABE   .  8B45 D8       mov     eax, dword ptr ss:[ebp-28]
  47. 0049DAC1   .  BA 64E14900   mov     edx, 0049E164                                    ;  tnt!2000
  48. 0049DAC6   .  E8 F174F6FF   call    <@System@@LStrCmp$qqrv>
  49. 0049DACB   .  0F84 77050000 je      0049E048
  50. 0049DAD1   .  8D55 D4       lea     edx, dword ptr ss:[ebp-2C]
  51. 0049DAD4   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  52. 0049DAD7   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  53. 0049DADD   .  E8 BA5AFAFF   call    <@TControl@GetText$qqrv>
  54. 0049DAE2   .  8B45 D4       mov     eax, dword ptr ss:[ebp-2C]
  55. 0049DAE5   .  BA 78E14900   mov     edx, 0049E178                                    ;  -=demian/tnt!=-
  56. 0049DAEA   .  E8 CD74F6FF   call    <@System@@LStrCmp$qqrv>
  57. 0049DAEF   .  0F84 53050000 je      0049E048
  58. 0049DAF5   .  8D55 D0       lea     edx, dword ptr ss:[ebp-30]
  59. 0049DAF8   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  60. 0049DAFB   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  61. 0049DB01   .  E8 965AFAFF   call    <@TControl@GetText$qqrv>
  62. 0049DB06   .  8B45 D0       mov     eax, dword ptr ss:[ebp-30]
  63. 0049DB09   .  BA 90E14900   mov     edx, 0049E190                                    ;  -=demian/tnt!=-
  64. 0049DB0E   .  E8 A974F6FF   call    <@System@@LStrCmp$qqrv>
  65. 0049DB13   .  0F84 2F050000 je      0049E048
  66. 0049DB19   .  8D55 CC       lea     edx, dword ptr ss:[ebp-34]
  67. 0049DB1C   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  68. 0049DB1F   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  69. 0049DB25   .  E8 725AFAFF   call    <@TControl@GetText$qqrv>
  70. 0049DB2A   .  8B45 CC       mov     eax, dword ptr ss:[ebp-34]
  71. 0049DB2D   .  BA ACE14900   mov     edx, 0049E1AC                                    ;  北极熊
  72. 0049DB32   .  E8 8574F6FF   call    <@System@@LStrCmp$qqrv>
  73. 0049DB37   .  0F84 0B050000 je      0049E048
  74. 0049DB3D   .  8D55 C8       lea     edx, dword ptr ss:[ebp-38]
  75. 0049DB40   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  76. 0049DB43   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  77. 0049DB49   .  E8 4E5AFAFF   call    <@TControl@GetText$qqrv>
  78. 0049DB4E   .  8B45 C8       mov     eax, dword ptr ss:[ebp-38]
  79. 0049DB51   .  BA BCE14900   mov     edx, 0049E1BC                                    ;  tsrh team
  80. 0049DB56   .  E8 6174F6FF   call    <@System@@LStrCmp$qqrv>
  81. 0049DB5B   .  0F84 E7040000 je      0049E048
  82. 0049DB61   .  8D55 C4       lea     edx, dword ptr ss:[ebp-3C]
  83. 0049DB64   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  84. 0049DB67   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  85. 0049DB6D   .  E8 2A5AFAFF   call    <@TControl@GetText$qqrv>
  86. 0049DB72   .  8B45 C4       mov     eax, dword ptr ss:[ebp-3C]
  87. 0049DB75   .  BA D0E14900   mov     edx, 0049E1D0                                    ;  ttdown
  88. 0049DB7A   .  E8 3D74F6FF   call    <@System@@LStrCmp$qqrv>
  89. 0049DB7F   .  0F84 C3040000 je      0049E048
  90. 0049DB85   .  8D55 C0       lea     edx, dword ptr ss:[ebp-40]
  91. 0049DB88   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  92. 0049DB8B   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  93. 0049DB91   .  E8 065AFAFF   call    <@TControl@GetText$qqrv>
  94. 0049DB96   .  8B45 C0       mov     eax, dword ptr ss:[ebp-40]
  95. 0049DB99   .  BA E0E14900   mov     edx, 0049E1E0                                    ;  tmg
  96. 0049DB9E   .  E8 1974F6FF   call    <@System@@LStrCmp$qqrv>
  97. 0049DBA3   .  0F84 9F040000 je      0049E048
  98. 0049DBA9   .  8D55 BC       lea     edx, dword ptr ss:[ebp-44]
  99. 0049DBAC   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  100. 0049DBAF   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  101. 0049DBB5   .  E8 E259FAFF   call    <@TControl@GetText$qqrv>
  102. 0049DBBA   .  8B45 BC       mov     eax, dword ptr ss:[ebp-44]
  103. 0049DBBD   .  BA ECE14900   mov     edx, 0049E1EC                                    ;  gory
  104. 0049DBC2   .  E8 F573F6FF   call    <@System@@LStrCmp$qqrv>
  105. 0049DBC7   .  0F84 7B040000 je      0049E048
  106. 0049DBCD   .  8D55 B8       lea     edx, dword ptr ss:[ebp-48]
  107. 0049DBD0   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  108. 0049DBD3   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  109. 0049DBD9   .  E8 BE59FAFF   call    <@TControl@GetText$qqrv>
  110. 0049DBDE   .  8B45 B8       mov     eax, dword ptr ss:[ebp-48]
  111. 0049DBE1   .  BA FCE14900   mov     edx, 0049E1FC                                    ;  masterpower
  112. 0049DBE6   .  E8 D173F6FF   call    <@System@@LStrCmp$qqrv>
  113. 0049DBEB   .  0F84 57040000 je      0049E048
  114. 0049DBF1   .  8D55 B4       lea     edx, dword ptr ss:[ebp-4C]
  115. 0049DBF4   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  116. 0049DBF7   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  117. 0049DBFD   .  E8 9A59FAFF   call    <@TControl@GetText$qqrv>
  118. 0049DC02   .  8B45 B4       mov     eax, dword ptr ss:[ebp-4C]
  119. 0049DC05   .  BA 10E24900   mov     edx, 0049E210                                    ;  snd team
  120. 0049DC0A   .  E8 AD73F6FF   call    <@System@@LStrCmp$qqrv>
  121. 0049DC0F   .  0F84 33040000 je      0049E048
  122. 0049DC15   .  8D55 B0       lea     edx, dword ptr ss:[ebp-50]
  123. 0049DC18   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  124. 0049DC1B   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  125. 0049DC21   .  E8 7659FAFF   call    <@TControl@GetText$qqrv>
  126. 0049DC26   .  8B55 B0       mov     edx, dword ptr ss:[ebp-50]
  127. 0049DC29   .  B8 24E24900   mov     eax, 0049E224                                    ;  fff
  128. 0049DC2E   .  E8 8175F6FF   call    <@System@@LStrPos$qqrv>
  129. 0049DC33   .  85C0          test    eax, eax
  130. 0049DC35   .  0F8F 0D040000 jg      0049E048
  131. 0049DC3B   .  8D55 AC       lea     edx, dword ptr ss:[ebp-54]
  132. 0049DC3E   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  133. 0049DC41   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  134. 0049DC47   .  E8 5059FAFF   call    <@TControl@GetText$qqrv>
  135. 0049DC4C   .  8B55 AC       mov     edx, dword ptr ss:[ebp-54]
  136. 0049DC4F   .  B8 30E24900   mov     eax, 0049E230                                    ;  cluster
  137. 0049DC54   .  E8 5B75F6FF   call    <@System@@LStrPos$qqrv>
  138. 0049DC59   .  85C0          test    eax, eax
  139. 0049DC5B   .  0F8F E7030000 jg      0049E048
  140. 0049DC61   .  8D55 A8       lea     edx, dword ptr ss:[ebp-58]
  141. 0049DC64   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  142. 0049DC67   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  143. 0049DC6D   .  E8 2A59FAFF   call    <@TControl@GetText$qqrv>
  144. 0049DC72   .  8B55 A8       mov     edx, dword ptr ss:[ebp-58]
  145. 0049DC75   .  B8 40E24900   mov     eax, 0049E240                                    ;  .com
  146. 0049DC7A   .  E8 3575F6FF   call    <@System@@LStrPos$qqrv>
  147. 0049DC7F   .  85C0          test    eax, eax
  148. 0049DC81   .  0F8F C1030000 jg      0049E048
  149. 0049DC87   .  8D55 A4       lea     edx, dword ptr ss:[ebp-5C]
  150. 0049DC8A   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  151. 0049DC8D   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  152. 0049DC93   .  E8 0459FAFF   call    <@TControl@GetText$qqrv>
  153. 0049DC98   .  8B55 A4       mov     edx, dword ptr ss:[ebp-5C]
  154. 0049DC9B   .  B8 50E24900   mov     eax, 0049E250                                    ;  rth77
  155. 0049DCA0   .  E8 0F75F6FF   call    <@System@@LStrPos$qqrv>
  156. 0049DCA5   .  85C0          test    eax, eax
  157. 0049DCA7   .  0F8F 9B030000 jg      0049E048
  158. 0049DCAD   .  8D55 9C       lea     edx, dword ptr ss:[ebp-64]
  159. 0049DCB0   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  160. 0049DCB3   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  161. 0049DCB9   .  E8 DE58FAFF   call    <@TControl@GetText$qqrv>
  162. 0049DCBE   .  8B45 9C       mov     eax, dword ptr ss:[ebp-64]
  163. 0049DCC1   .  8D55 A0       lea     edx, dword ptr ss:[ebp-60]
  164. 0049DCC4   .  E8 BFB2F6FF   call    00408F88
  165. 0049DCC9   .  8B55 A0       mov     edx, dword ptr ss:[ebp-60]
  166. 0049DCCC   .  B8 60E24900   mov     eax, 0049E260                                    ;  team
  167. 0049DCD1   .  E8 DE74F6FF   call    <@System@@LStrPos$qqrv>
  168. 0049DCD6   .  85C0          test    eax, eax
  169. 0049DCD8   .  0F8F 6A030000 jg      0049E048
  170. 0049DCDE   .  8D55 98       lea     edx, dword ptr ss:[ebp-68]
  171. 0049DCE1   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  172. 0049DCE4   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  173. 0049DCEA   .  E8 AD58FAFF   call    <@TControl@GetText$qqrv>
  174. 0049DCEF   .  8B55 98       mov     edx, dword ptr ss:[ebp-68]
  175. 0049DCF2   .  B8 70E24900   mov     eax, 0049E270                                    ;  destroy
  176. 0049DCF7   .  E8 B874F6FF   call    <@System@@LStrPos$qqrv>
  177. 0049DCFC   .  85C0          test    eax, eax
  178. 0049DCFE   .  0F8F 44030000 jg      0049E048
  179. 0049DD04   .  8D55 94       lea     edx, dword ptr ss:[ebp-6C]
  180. 0049DD07   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  181. 0049DD0A   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  182. 0049DD10   .  E8 8758FAFF   call    <@TControl@GetText$qqrv>
  183. 0049DD15   .  8B55 94       mov     edx, dword ptr ss:[ebp-6C]
  184. 0049DD18   .  B8 80E24900   mov     eax, 0049E280                                    ;  registered
  185. 0049DD1D   .  E8 9274F6FF   call    <@System@@LStrPos$qqrv>
  186. 0049DD22   .  85C0          test    eax, eax
  187. 0049DD24   .  0F8F 1E030000 jg      0049E048
  188. 0049DD2A   .  8D55 90       lea     edx, dword ptr ss:[ebp-70]
  189. 0049DD2D   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  190. 0049DD30   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  191. 0049DD36   .  E8 6158FAFF   call    <@TControl@GetText$qqrv>
  192. 0049DD3B   .  8B55 90       mov     edx, dword ptr ss:[ebp-70]
  193. 0049DD3E   .  B8 94E24900   mov     eax, 0049E294                                    ;  orion
  194. 0049DD43   .  E8 6C74F6FF   call    <@System@@LStrPos$qqrv>
  195. 0049DD48   .  85C0          test    eax, eax
  196. 0049DD4A   .  0F8F F8020000 jg      0049E048
  197. 0049DD50   .  8D55 8C       lea     edx, dword ptr ss:[ebp-74]
  198. 0049DD53   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  199. 0049DD56   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  200. 0049DD5C   .  E8 3B58FAFF   call    <@TControl@GetText$qqrv>
  201. 0049DD61   .  8B55 8C       mov     edx, dword ptr ss:[ebp-74]
  202. 0049DD64   .  B8 70E24900   mov     eax, 0049E270                                    ;  destroy
  203. 0049DD69   .  E8 4674F6FF   call    <@System@@LStrPos$qqrv>
  204. 0049DD6E   .  85C0          test    eax, eax
  205. 0049DD70   .  0F8F D2020000 jg      0049E048
  206. 0049DD76   .  8D55 88       lea     edx, dword ptr ss:[ebp-78]
  207. 0049DD79   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  208. 0049DD7C   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  209. 0049DD82   .  E8 1558FAFF   call    <@TControl@GetText$qqrv>
  210. 0049DD87   .  8B45 88       mov     eax, dword ptr ss:[ebp-78]
  211. 0049DD8A   .  BA A4E24900   mov     edx, 0049E2A4                                    ;  sponge uk
  212. 0049DD8F   .  E8 2872F6FF   call    <@System@@LStrCmp$qqrv>
  213. 0049DD94   .  0F84 AE020000 je      0049E048
  214. 0049DD9A   .  8D55 84       lea     edx, dword ptr ss:[ebp-7C]
  215. 0049DD9D   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  216. 0049DDA0   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  217. 0049DDA6   .  E8 F157FAFF   call    <@TControl@GetText$qqrv>
  218. 0049DDAB   .  8B45 84       mov     eax, dword ptr ss:[ebp-7C]
  219. 0049DDAE   .  BA B8E24900   mov     edx, 0049E2B8                                    ;  sponge uk
  220. 0049DDB3   .  E8 0472F6FF   call    <@System@@LStrCmp$qqrv>
  221. 0049DDB8   .  0F84 8A020000 je      0049E048
  222. 0049DDBE   .  8D55 80       lea     edx, dword ptr ss:[ebp-80]
  223. 0049DDC1   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  224. 0049DDC4   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  225. 0049DDCA   .  E8 CD57FAFF   call    <@TControl@GetText$qqrv>
  226. 0049DDCF   .  8B45 80       mov     eax, dword ptr ss:[ebp-80]
  227. 0049DDD2   .  BA CCE24900   mov     edx, 0049E2CC                                    ;  scf
  228. 0049DDD7   .  E8 E071F6FF   call    <@System@@LStrCmp$qqrv>
  229. 0049DDDC   .  0F84 66020000 je      0049E048
  230. 0049DDE2   .  8D95 7CFFFFFF lea     edx, dword ptr ss:[ebp-84]
  231. 0049DDE8   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  232. 0049DDEB   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  233. 0049DDF1   .  E8 A657FAFF   call    <@TControl@GetText$qqrv>
  234. 0049DDF6   .  8B85 7CFFFFFF mov     eax, dword ptr ss:[ebp-84]
  235. 0049DDFC   .  BA D8E24900   mov     edx, 0049E2D8                                    ;  nokedli [ims]
  236. 0049DE01   .  E8 B671F6FF   call    <@System@@LStrCmp$qqrv>
  237. 0049DE06   .  0F84 3C020000 je      0049E048
  238. 0049DE0C   .  68 F0E24900   push    0049E2F0                                         ;  w
  239. 0049DE11   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  240. 0049DE14   .  FFB0 40030000 push    dword ptr ds:[eax+340]                           ;  dw
  241. 0049DE1A   .  68 FCE24900   push    0049E2FC                                         ;  22
  242. 0049DE1F   .  FF75 E8       push    dword ptr ss:[ebp-18]                            ;  2232(用户名长度加上2222)
  243. 0049DE22   .  68 08E34900   push    0049E308                                         ;  -
  244. 0049DE27   .  8D95 74FFFFFF lea     edx, dword ptr ss:[ebp-8C]
  245. 0049DE2D   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  246. 0049DE30   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  247. 0049DE36   .  E8 6157FAFF   call    <@TControl@GetText$qqrv>                         ;  取用户名字符串
  248. 0049DE3B   .  8B85 74FFFFFF mov     eax, dword ptr ss:[ebp-8C]
  249. 0049DE41   .  8D95 78FFFFFF lea     edx, dword ptr ss:[ebp-88]
  250. 0049DE47   .  E8 30FBFFFF   call    0049D97C                                         ;  转换成ascii数值
  251. 0049DE4C   .  FFB5 78FFFFFF push    dword ptr ss:[ebp-88]                            ;  转换结果入栈
  252. 0049DE52   .  8D45 EC       lea     eax, dword ptr ss:[ebp-14]
  253. 0049DE55   .  BA 06000000   mov     edx, 6
  254. 0049DE5A   .  E8 D970F6FF   call    00404F38                                         ;  联接字符串放在eax指向的地址处
  255. 0049DE5F   .  8D45 E8       lea     eax, dword ptr ss:[ebp-18]
  256. 0049DE62   .  BA 14E34900   mov     edx, 0049E314                                    ;  \system32\spool\drivers\w32x86\2\riched20.dll setactiveeditcontrolfont, arial, 30
  257. 0049DE67   .  E8 EC6DF6FF   call    <@System@@LStrLAsg$qqrv>
  258. 0049DE6C   .  8D95 70FFFFFF lea     edx, dword ptr ss:[ebp-90]
  259. 0049DE72   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  260. 0049DE75   .  8B80 04030000 mov     eax, dword ptr ds:[eax+304]
  261. 0049DE7B   .  E8 1C57FAFF   call    <@TControl@GetText$qqrv>                         ;  取输入的注册码
  262. 0049DE80   .  8B95 70FFFFFF mov     edx, dword ptr ss:[ebp-90]                       ;  假码
  263. 0049DE86   .  8B45 EC       mov     eax, dword ptr ss:[ebp-14]                       ;  真码(明码!)
  264. 0049DE89   .  E8 2673F6FF   call    <@System@@LStrPos$qqrv>                          ;  算出的注册码和输入的注册码比较。
  265. 0049DE8E   .  85C0          test    eax, eax
  266. 0049DE90   .  0F84 B2010000 je      0049E048                                         ;  跳走就失败了。
  267. 0049DE96   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  268. 0049DE99   .  8B80 04030000 mov     eax, dword ptr ds:[eax+304]
  269. 0049DE9F   .  33D2          xor     edx, edx
  270. 0049DEA1   .  E8 2657FAFF   call    <@Controls@TControl@SetText$qqrx17System@AnsiStr>
  271. 0049DEA6   .  8D45 EC       lea     eax, dword ptr ss:[ebp-14]
  272. 0049DEA9   .  E8 126DF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  273. 0049DEAE   .  6A 00         push    0
  274. 0049DEB0   .  68 68E34900   push    0049E368                                         ;  registration success!
  275. 0049DEB5   .  68 80E34900   push    <Text>                                           ;   thank you for your support.\nwe will work even harder and\nnotify you future releases.
  276. 0049DEBA   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  277. 0049DEBD   .  E8 7EBEFAFF   call    <@Controls@TWinControl@GetHandle$qqrv>
  278. 0049DEC2   .  50            push    eax                                              ; |hOwner
  279. 0049DEC3   .  E8 849CF6FF   call    <MessageBoxA>                                    ; \提示注册成功
  280. 0049DEC8   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  281. 0049DECB   .  C680 45030000>mov     byte ptr ds:[eax+345], 0
  282. 0049DED2   .  B2 01         mov     dl, 1
  283. 0049DED4   .  A1 485B4600   mov     eax, dword ptr ds:[465B48]
  284. 0049DED9   .  E8 6A7DFCFF   call    <@Registry@TRegistry@$bctr$qqrv>
  285. 0049DEDE   .  8945 F8       mov     dword ptr ss:[ebp-8], eax
  286. 0049DEE1   .  33C0          xor     eax, eax
  287. 0049DEE3   .  55            push    ebp
  288. 0049DEE4   .  68 FDDF4900   push    0049DFFD
  289. 0049DEE9   .  64:FF30       push    dword ptr fs:[eax]
  290. 0049DEEC   .  64:8920       mov     dword ptr fs:[eax], esp
  291. 0049DEEF   .  BA 01000080   mov     edx, 80000001
  292. 0049DEF4   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  293. 0049DEF7   .  E8 EC7DFCFF   call    <@Registry@TRegistry@SetRootKey$qqrui>
  294. 0049DEFC   .  B1 01         mov     cl, 1
  295. 0049DEFE   .  BA E0E34900   mov     edx, 0049E3E0                                    ;  \software\microsoft\windows\currentversion\ipsec
  296. 0049DF03   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  297. 0049DF06   .  E8 457EFCFF   call    <@Registry@TRegistry@OpenKey$qqrx17System@AnsiSt>
  298. 0049DF0B   .  84C0          test    al, al
  299. 0049DF0D   .  74 0C         je      short 0049DF1B
  300. 0049DF0F   .  33C0          xor     eax, eax
  301. 0049DF11   .  8945 F0       mov     dword ptr ss:[ebp-10], eax
  302. 0049DF14   .  C745 F4 00000>mov     dword ptr ss:[ebp-C], 400E0000
  303. 0049DF1B   >  33C0          xor     eax, eax
  304. 0049DF1D   .  55            push    ebp
  305. 0049DF1E   .  68 7EDF4900   push    0049DF7E
  306. 0049DF23   .  64:FF30       push    dword ptr fs:[eax]
  307. 0049DF26   .  64:8920       mov     dword ptr fs:[eax], esp
  308. 0049DF29   .  FF75 F4       push    dword ptr ss:[ebp-C]                             ; /Arg2
  309. 0049DF2C   .  FF75 F0       push    dword ptr ss:[ebp-10]                            ; |Arg1
  310. 0049DF2F   .  8D85 6CFFFFFF lea     eax, dword ptr ss:[ebp-94]                       ; |
  311. 0049DF35   .  E8 26DEF6FF   call    0040BD60                                         ; \MyDriver.0040BD60
  312. 0049DF3A   .  8B8D 6CFFFFFF mov     ecx, dword ptr ss:[ebp-94]
  313. 0049DF40   .  BA 1CE44900   mov     edx, 0049E41C                                    ;  riscx86
  314. 0049DF45   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  315. 0049DF48   .  E8 4782FCFF   call    00466194
  316. 0049DF4D   .  8D95 68FFFFFF lea     edx, dword ptr ss:[ebp-98]
  317. 0049DF53   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  318. 0049DF56   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  319. 0049DF5C   .  E8 3B56FAFF   call    <@TControl@GetText$qqrv>
  320. 0049DF61   .  8B8D 68FFFFFF mov     ecx, dword ptr ss:[ebp-98]
  321. 0049DF67   .  BA 2CE44900   mov     edx, 0049E42C                                    ;  username
  322. 0049DF6C   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  323. 0049DF6F   .  E8 2082FCFF   call    00466194
  324. 0049DF74   .  33C0          xor     eax, eax
  325. 0049DF76   .  5A            pop     edx
  326. 0049DF77   .  59            pop     ecx
  327. 0049DF78   .  59            pop     ecx
  328. 0049DF79   .  64:8910       mov     dword ptr fs:[eax], edx
  329. 0049DF7C   .  EB 61         jmp     short 0049DFDF
  330. 0049DF7E   .^ E9 5964F6FF   jmp     004043DC
  331. 0049DF83      01            db      01
  332. 0049DF84      00            db      00
  333. 0049DF85      00            db      00
  334. 0049DF86      00            db      00
  335. 0049DF87      E85A4600      dd      MyDriver.00465AE8
  336. 0049DF8B      8FDF4900      dd      MyDriver.0049DF8F
  337. 0049DF8F   .  FF75 F4       push    dword ptr ss:[ebp-C]                             ; /Arg2
  338. 0049DF92   .  FF75 F0       push    dword ptr ss:[ebp-10]                            ; |Arg1
  339. 0049DF95   .  8D85 64FFFFFF lea     eax, dword ptr ss:[ebp-9C]                       ; |
  340. 0049DF9B   .  E8 C0DDF6FF   call    0040BD60                                         ; \MyDriver.0040BD60
  341. 0049DFA0   .  8B8D 64FFFFFF mov     ecx, dword ptr ss:[ebp-9C]
  342. 0049DFA6   .  BA 1CE44900   mov     edx, 0049E41C                                    ;  riscx86
  343. 0049DFAB   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  344. 0049DFAE   .  E8 E181FCFF   call    00466194
  345. 0049DFB3   .  8D95 60FFFFFF lea     edx, dword ptr ss:[ebp-A0]
  346. 0049DFB9   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  347. 0049DFBC   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  348. 0049DFC2   .  E8 D555FAFF   call    <@TControl@GetText$qqrv>
  349. 0049DFC7   .  8B8D 60FFFFFF mov     ecx, dword ptr ss:[ebp-A0]
  350. 0049DFCD   .  BA 2CE44900   mov     edx, 0049E42C                                    ;  username
  351. 0049DFD2   .  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  352. 0049DFD5   .  E8 BA81FCFF   call    00466194
  353. 0049DFDA   .  E8 3966F6FF   call    <@@DoneExcept$qqrv>
  354. 0049DFDF   >  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  355. 0049DFE2   .  E8 D17CFCFF   call    00465CB8
  356. 0049DFE7   .  33C0          xor     eax, eax
  357. 0049DFE9   .  5A            pop     edx
  358. 0049DFEA   .  59            pop     ecx
  359. 0049DFEB   .  59            pop     ecx
  360. 0049DFEC   .  64:8910       mov     dword ptr fs:[eax], edx
  361. 0049DFEF   .  68 04E04900   push    0049E004
  362. 0049DFF4   >  8B45 F8       mov     eax, dword ptr ss:[ebp-8]
  363. 0049DFF7   .  E8 D45DF6FF   call    00403DD0
  364. 0049DFFC   .  C3            retn
  365. 0049DFFD   .^ E9 6265F6FF   jmp     <@System@@HandleFinally$qqrv>
  366. 0049E002   .^ EB F0         jmp     short 0049DFF4
  367. 0049E004   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  368. 0049E007   .  8B80 04030000 mov     eax, dword ptr ds:[eax+304]
  369. 0049E00D   .  33D2          xor     edx, edx
  370. 0049E00F   .  E8 B855FAFF   call    <@Controls@TControl@SetText$qqrx17System@AnsiStr>
  371. 0049E014   .  8D45 EC       lea     eax, dword ptr ss:[ebp-14]
  372. 0049E017   .  E8 A46BF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  373. 0049E01C   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  374. 0049E01F   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  375. 0049E025   .  33D2          xor     edx, edx
  376. 0049E027   .  E8 A055FAFF   call    <@Controls@TControl@SetText$qqrx17System@AnsiStr>
  377. 0049E02C   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  378. 0049E02F   .  C680 44030000>mov     byte ptr ds:[eax+344], 0
  379. 0049E036   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  380. 0049E039   .  8B80 24030000 mov     eax, dword ptr ds:[eax+324]
  381. 0049E03F   .  B2 01         mov     dl, 1
  382. 0049E041   .  E8 06C1F9FF   call    <unknown_libname_202>
  383. 0049E046   .  EB 54         jmp     short 0049E09C
  384. 0049E048   >  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  385. 0049E04B   .  8B80 04030000 mov     eax, dword ptr ds:[eax+304]
  386. 0049E051   .  33D2          xor     edx, edx
  387. 0049E053   .  E8 7455FAFF   call    <@Controls@TControl@SetText$qqrx17System@AnsiStr>
  388. 0049E058   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  389. 0049E05B   .  8B80 00030000 mov     eax, dword ptr ds:[eax+300]
  390. 0049E061   .  33D2          xor     edx, edx
  391. 0049E063   .  E8 6455FAFF   call    <@Controls@TControl@SetText$qqrx17System@AnsiStr>
  392. 0049E068   .  8D45 EC       lea     eax, dword ptr ss:[ebp-14]
  393. 0049E06B   .  BA 03000000   mov     edx, 3
  394. 0049E070   .  E8 8771F6FF   call    004051FC
  395. 0049E075   .  8D45 EC       lea     eax, dword ptr ss:[ebp-14]
  396. 0049E078   .  BA 40E44900   mov     edx, 0049E440                                    ;  $%^
  397. 0049E07D   .  E8 D66BF6FF   call    <@System@@LStrLAsg$qqrv>
  398. 0049E082   .  6A 00         push    0
  399. 0049E084   .  68 44E44900   push    0049E444                                         ;  invalid registration code
  400. 0049E089   .  68 60E44900   push    0049E460                                         ;  please make sure the registration\ncode and the registration name are\ncorrect.
  401. 0049E08E   .  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
  402. 0049E091   .  E8 AABCFAFF   call    <@Controls@TWinControl@GetHandle$qqrv>
  403. 0049E096   .  50            push    eax                                              ; |hOwner
  404. 0049E097   .  E8 B09AF6FF   call    <MessageBoxA>                                    ; \MessageBoxA
  405. 0049E09C   >  33C0          xor     eax, eax
  406. 0049E09E   .  5A            pop     edx
  407. 0049E09F   .  59            pop     ecx
  408. 0049E0A0   .  59            pop     ecx
  409. 0049E0A1   .  64:8910       mov     dword ptr fs:[eax], edx
  410. 0049E0A4   .  68 2DE14900   push    0049E12D
  411. 0049E0A9   >  8D85 60FFFFFF lea     eax, dword ptr ss:[ebp-A0]
  412. 0049E0AF   .  E8 0C6BF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  413. 0049E0B4   .  8D85 64FFFFFF lea     eax, dword ptr ss:[ebp-9C]
  414. 0049E0BA   .  E8 016BF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  415. 0049E0BF   .  8D85 68FFFFFF lea     eax, dword ptr ss:[ebp-98]
  416. 0049E0C5   .  E8 F66AF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  417. 0049E0CA   .  8D85 6CFFFFFF lea     eax, dword ptr ss:[ebp-94]
  418. 0049E0D0   .  E8 EB6AF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  419. 0049E0D5   .  8D85 70FFFFFF lea     eax, dword ptr ss:[ebp-90]
  420. 0049E0DB   .  BA 02000000   mov     edx, 2
  421. 0049E0E0   .  E8 FF6AF6FF   call    <@System@@LStrArrayClr$qqrv>
  422. 0049E0E5   .  8D85 78FFFFFF lea     eax, dword ptr ss:[ebp-88]
  423. 0049E0EB   .  E8 D06AF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  424. 0049E0F0   .  8D85 7CFFFFFF lea     eax, dword ptr ss:[ebp-84]
  425. 0049E0F6   .  BA 09000000   mov     edx, 9
  426. 0049E0FB   .  E8 E46AF6FF   call    <@System@@LStrArrayClr$qqrv>
  427. 0049E100   .  8D45 A0       lea     eax, dword ptr ss:[ebp-60]
  428. 0049E103   .  E8 B86AF6FF   call    <@System@@LStrClr$qqrr17System@AnsiString>
  429. 0049E108   .  8D45 A4       lea     eax, dword ptr ss:[ebp-5C]
  430. 0049E10B   .  BA 11000000   mov     edx, 11
  431. 0049E110   .  E8 CF6AF6FF   call    <@System@@LStrArrayClr$qqrv>
  432. 0049E115   .  8D45 E8       lea     eax, dword ptr ss:[ebp-18]
  433. 0049E118   .  BA 02000000   mov     edx, 2
  434. 0049E11D   .  E8 C26AF6FF   call    <@System@@LStrArrayClr$qqrv>
  435. 0049E122   .  C3            retn
  436. 0049E123   .^ E9 3C64F6FF   jmp     <@System@@HandleFinally$qqrv>
  437. 0049E128   .^ E9 7CFFFFFF   jmp     0049E0A9
  438. 0049E12D   .  5F            pop     edi
  439. 0049E12E   .  5E            pop     esi
  440. 0049E12F   .  5B            pop     ebx
  441. 0049E130   .  8BE5          mov     esp, ebp
  442. 0049E132   .  5D            pop     ebp
  443. 0049E133   .  C3            retn
复制代码

------------------------------------------------------------------------

注册码由下面四部分组成:

WDW22
2222加上用户名长度
-
用户名的ascii十六进制值串

我的注册信息:
surge[PYG]
WDW222232-73757267655B5059475D

注册成功后的注册表信息保存在注册表中。
软件还有其它验证(估计是网络),因为打开几次之后还会提示注册,但功力有限,加上最近工作
上的生活上的事情另我好烦,静不下心来找了。

------------------------------------------------------------------------

【版权声明】本文纯属技术交流,转载请注明作者信息并保持文章的完整,谢谢!
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2006-1-28 00:17:54 | 显示全部楼层
忘了说明:软件加了upx壳。脱后是delphi程序。
PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2019-3-20 20:06
  • 签到天数: 258 天

    [LV.8]以坛为家I

    发表于 2006-1-28 05:42:53 | 显示全部楼层
    要用IDA先分析? why OD?
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2006-1-28 08:56:13 | 显示全部楼层
    原帖由 yyjpcx 于 2006-1-27 21:42 发表
    要用IDA先分析? why OD?

    是这样子的,IDA能够识别大量的库函数,生成MAP文件后,用在调试器中对一些Call就可以望文生意了,省去不少心思。我最近比较燥。
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2019-3-25 06:30
  • 签到天数: 1096 天

    [LV.10]以坛为家III

    发表于 2006-1-30 17:17:42 | 显示全部楼层
    原帖由 yyjpcx 于 2006-1-27 21:42 发表
    要用IDA先分析? why OD?

    现在很多高手都喜欢用这种方法,我也准备试一试.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-3-19 20:55
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2006-2-1 10:47:44 | 显示全部楼层
    这个方法我倒没试过,听起来很不错啊~!又学了些东西。good
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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