飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6283|回复: 7

[原创] 秋风工资管理系统 1.0 算法分析(高手飘过)

[复制链接]

该用户从未签到

发表于 2008-3-6 17:55:34 | 显示全部楼层 |阅读模式
【破文标题】秋风工资管理系统 1.0 算法分析(高手飘过)
【破文作者】我的水平太菜就不写名字了
【作者邮箱】
【作者主页】
破解工具】PEID+DEDE+OD
【破解平台】WindowsXP
【软件名称】秋风工资管理系统 1.0
【软件大小】606KB
【原版下载】
【保护方式】注册码
【软件简介】功能说明:对员工工资进行登记、统计、管理。
特点:
1、可以打印工资条
2、可以按月、按人员进行汇总统计并打印。
【破解声明】只为讨论、学习与分享破解技术,勿用于非法用途,请多多支持软件开发者!
------------------------------------------------------------------------
【破解过程】   DELPHI程序,无壳,用DEDE查找按钮事件,代码如下:
  1. 005280A8  /.  55                 push ebp
  2. 005280A9  |.  8BEC               mov ebp,esp
  3. 005280AB  |.  6A 00              push 0
  4. 005280AD  |.  6A 00              push 0
  5. 005280AF  |.  6A 00              push 0
  6. 005280B1  |.  53                 push ebx
  7. 005280B2  |.  8BD8               mov ebx,eax
  8. 005280B4  |.  33C0               xor eax,eax
  9. 005280B6  |.  55                 push ebp
  10. 005280B7  |.  68 6B815200        push 秋风工资.0052816B
  11. 005280BC  |.  64:FF30            push dword ptr fs:[eax]
  12. 005280BF  |.  64:8920            mov dword ptr fs:[eax],esp
  13. 005280C2  |.  8D55 F8            lea edx,[local.2]
  14. 005280C5  |.  8B83 00030000      mov eax,dword ptr ds:[ebx+300]
  15. 005280CB  |.  E8 CCF0F1FF        call 秋风工资.0044719C                   ;  取注册码
  16. 005280D0  |.  8B45 F8            mov eax,[local.2]                    ;  注册码放到EAX中
  17. 005280D3  |.  8D55 FC            lea edx,[local.1]
  18. 005280D6  |.  E8 6910EEFF        call 秋风工资.00409144
  19. 005280DB  |.  8B45 FC            mov eax,[local.1]                    ;  注册码放到EAX中
  20. 005280DE  |.  E8 91F3FFFF        call 秋风工资.00527474
  21. 005280E3  |.  6A 19              push 19
  22. 005280E5  |.  8D45 F4            lea eax,[local.3]
  23. 005280E8  |.  50                 push eax
  24. 005280E9  |.  B9 36000000        mov ecx,36                           ;  ECX赋值为36(十进
  25. 制的52)
  26. 005280EE  |.  BA 30000000        mov edx,30                           ;  EDX赋值为30(十进
  27. 制的48)
  28. 005280F3  |.  B8 20000000        mov eax,20                           ;  EAX赋值为36(十进
  29. 制的32)
  30. 005280F8  |.  E8 63F6FFFF        call 秋风工资.00527760               ;  关键CALL,跟进
  31. 005280FD  |.  8B45 F4            mov eax,[local.3]
  32. 00528100  |.  E8 2F14EEFF        call 秋风工资.00409534
  33. 00528105  |.  83E8 01            sub eax,1                            ;  Switch (cases
  34. 0..2)
  35. 00528108  |.  72 07              jb short 秋风工资.00528111
  36. 0052810A  |.  74 17              je short 秋风工资.00528123
  37. 0052810C  |.  48                 dec eax
  38. 0052810D  |.  74 26              je short 秋风工资.00528135
  39. 0052810F  |.  EB 34              jmp short 秋风工资.00528145
  40. 00528111  |>  BA 80815200        mov edx,秋风工资.00528180                ;  Case 0 of
  41. switch 00528105
  42. 00528116  |.  8B83 F0020000      mov eax,dword ptr ds:[ebx+2F0]
  43. 0052811C  |.  E8 ABF0F1FF        call 秋风工资.004471CC
  44. 00528121  |.  EB 22              jmp short 秋风工资.00528145
  45. 00528123  |>  BA AC815200        mov edx,秋风工资.005281AC                ;  Case 1 of
  46. switch 00528105
  47. 00528128  |.  8B83 F0020000      mov eax,dword ptr ds:[ebx+2F0]
  48. 0052812E  |.  E8 99F0F1FF        call 秋风工资.004471CC
  49. 00528133  |.  EB 10              jmp short 秋风工资.00528145
  50. 00528135  |>  BA C4815200        mov edx,秋风工资.005281C4                ;  Case 2 of
  51. switch 00528105
  52. 0052813A  |.  8B83 F0020000      mov eax,dword ptr ds:[ebx+2F0]
  53. 00528140  |.  E8 87F0F1FF        call 秋风工资.004471CC
  54. 00528145  |>  33C0               xor eax,eax                          ;  Default case of
  55. switch 00528105
  56. 00528147  |>  5A                 pop edx
  57. 00528148  |.  59                 pop ecx
  58. 00528149  |.  59                 pop ecx
  59. 0052814A  |.  64:8910            mov dword ptr fs:[eax],edx
  60. 0052814D  |.  68 72815200        push 秋风工资.00528172
  61. 00528152  |>  8D45 F4            lea eax,[local.3]
  62. 00528155  |.  E8 96C7EDFF        call 秋风工资.004048F0
  63. 0052815A  |.  8D45 F8            lea eax,[local.2]
  64. 0052815D  |.  E8 8EC7EDFF        call 秋风工资.004048F0
  65. 00528162  |.  8D45 FC            lea eax,[local.1]
  66. 00528165  |.  E8 86C7EDFF        call 秋风工资.004048F0
  67. 0052816A  \.  C3                 retn
  68. ------------------------------------------------------------------------------------------
  69. 跟进上面说的关键CALL后来到这里
  70. 00527760   $  55                 push ebp
  71. 00527761   .  8BEC               mov ebp,esp
  72. 00527763   .  51                 push ecx
  73. 00527764   .  B9 05000000        mov ecx,5
  74. 00527769   >  6A 00              push 0
  75. 0052776B   .  6A 00              push 0
  76. 0052776D   .  49                 dec ecx
  77. 0052776E   .^ 75 F9              jnz short 秋风工资.00527769
  78. 00527770   .  874D FC            xchg dword ptr ss:[ebp-4],ecx
  79. 00527773   .  53                 push ebx
  80. 00527774   .  56                 push esi
  81. 00527775   .  57                 push edi
  82. 00527776   .  8BF9               mov edi,ecx
  83. 00527778   .  8BF2               mov esi,edx
  84. 0052777A   .  8BD8               mov ebx,eax
  85. 0052777C   .  33C0               xor eax,eax
  86. 0052777E   .  55                 push ebp
  87. 0052777F   .  68 2F7B5200        push 秋风工资.00527B2F
  88. 00527784   .  64:FF30            push dword ptr fs:[eax]
  89. 00527787   .  64:8920            mov dword ptr fs:[eax],esp
  90. 0052778A   .  33C0               xor eax,eax
  91. 0052778C   .  55                 push ebp
  92. 0052778D   .  68 F07A5200        push 秋风工资.00527AF0
  93. 00527792   .  64:FF30            push dword ptr fs:[eax]
  94. 00527795   .  64:8920            mov dword ptr fs:[eax],esp
  95. 00527798   .  8B45 08            mov eax,dword ptr ss:[ebp+8]
  96. 0052779B   .  BA 487B5200        mov edx,秋风工资.00527B48
  97. 005277A0   .  E8 9FD1EDFF        call 秋风工资.00404944
  98. 005277A5   .  BA 02000080        mov edx,80000002
  99. 005277AA   .  B8 547B5200        mov eax,秋风工资.00527B54                ;  ASCII
  100. "Software\Microsoft\Windows\CurrentVersion\Explorer\Install_GZ"
  101. 005277AF   .  E8 E4FBFFFF        call 秋风工资.00527398
  102. 005277B4   .  84C0               test al,al
  103. 005277B6   .  75 2A              jnz short 秋风工资.005277E2
  104. 005277B8   .  B8 547B5200        mov eax,秋风工资.00527B54                ;  ASCII
  105. "Software\Microsoft\Windows\CurrentVersion\Explorer\Install_GZ"
  106. 005277BD   .  BA 01000080        mov edx,80000001
  107. 005277C2   .  E8 D1FBFFFF        call 秋风工资.00527398
  108. 005277C7   .  84C0               test al,al
  109. 005277C9   .  75 17              jnz short 秋风工资.005277E2
  110. 005277CB   .  E8 54FDFFFF        call 秋风工资.00527524
  111. 005277D0   .  8B45 08            mov eax,dword ptr ss:[ebp+8]
  112. 005277D3   .  BA 9C7B5200        mov edx,秋风工资.00527B9C
  113. 005277D8   .  E8 67D1EDFF        call 秋风工资.00404944
  114. 005277DD   .  E9 04030000        jmp 秋风工资.00527AE6
  115. 005277E2   >  8D45 F4            lea eax,dword ptr ss:[ebp-C]
  116. 005277E5   .  50                 push eax
  117. 005277E6   .  B9 02000080        mov ecx,80000002
  118. 005277EB   .  BA A87B5200        mov edx,秋风工资.00527BA8                ;  ASCII
  119. "SerialNo"
  120. 005277F0   .  B8 BC7B5200        mov eax,秋风工资.00527BBC                ;  ASCII
  121. "Software\Microsoft\Windows\CurrentVersion\Explorer\Movecont_GZ"
  122. 005277F5   .  E8 AEFAFFFF        call 秋风工资.005272A8
  123. 005277FA   .  8D45 EC            lea eax,dword ptr ss:[ebp-14]
  124. 005277FD   .  50                 push eax
  125. 005277FE   .  8D45 E8            lea eax,dword ptr ss:[ebp-18]
  126. 00527801   .  50                 push eax
  127. 00527802   .  8D45 E4            lea eax,dword ptr ss:[ebp-1C]
  128. 00527805   .  E8 6AEAFFFF        call 秋风工资.00526274                   ;  取机器CUP的ID
  129. 0052780A   .  8B45 E4            mov eax,dword ptr ss:[ebp-1C]        ;  与CUP的ID有关的一
  130. 串ASCII
  131. 0052780D   .  8BCE               mov ecx,esi
  132. 0052780F   .  8BD3               mov edx,ebx
  133. 00527811   .  E8 36E8FFFF        call 秋风工资.0052604C                   ;  根据上面的CPU
  134. ID生成了机器码
  135. 00527816   .  8B45 E8            mov eax,dword ptr ss:[ebp-18]        ;  机器码放到EAX中
  136. 00527819   .  8B4D 0C            mov ecx,dword ptr ss:[ebp+C]
  137. 0052781C   .  8BD7               mov edx,edi
  138. 0052781E   .  E8 6DE6FFFF        call 秋风工资.00525E90               ;  算法CALL 进去看看
  139. 00527823   .  8B55 EC            mov edx,dword ptr ss:[ebp-14]        ;  真码出现
  140. 00527826   .  8B45 F4            mov eax,dword ptr ss:[ebp-C]         ;  注册码
  141. 00527829   .  E8 BED4EDFF        call 秋风工资.00404CEC                   ;  应该是两者比较
  142. 的CALL
  143. 0052782E   .  75 1A              jnz short 秋风工资.0052784A          ;  不等就跳走了
  144. ------------------------------------------------------------------------------------------
  145. 我们进算法CALL去看看:
  146. 00525E90  /$  55                 push ebp
  147. 00525E91  |.  8BEC               mov ebp,esp
  148. 00525E93  |.  51                 push ecx
  149. 00525E94  |.  B9 07000000        mov ecx,7
  150. 00525E99  |>  6A 00              /push 0
  151. 00525E9B  |.  6A 00              |push 0
  152. 00525E9D  |.  49                 |dec ecx
  153. 00525E9E  |.^ 75 F9              \jnz short 秋风工资.00525E99
  154. 00525EA0  |.  874D FC            xchg [local.1],ecx
  155. 00525EA3  |.  53                 push ebx
  156. 00525EA4  |.  56                 push esi
  157. 00525EA5  |.  8BF1               mov esi,ecx
  158. 00525EA7  |.  8BDA               mov ebx,edx
  159. 00525EA9  |.  8945 FC            mov [local.1],eax
  160. 00525EAC  |.  8B45 FC            mov eax,[local.1]
  161. 00525EAF  |.  E8 DCEEEDFF        call 秋风工资.00404D90
  162. 00525EB4  |.  33C0               xor eax,eax
  163. 00525EB6  |.  55                 push ebp
  164. 00525EB7  |.  68 23605200        push 秋风工资.00526023
  165. 00525EBC  |.  64:FF30            push dword ptr fs:[eax]
  166. 00525EBF  |.  64:8920            mov dword ptr fs:[eax],esp
  167. 00525EC2  |.  8D45 F8            lea eax,[local.2]
  168. 00525EC5  |.  50                 push eax
  169. 00525EC6  |.  8D45 E0            lea eax,[local.8]
  170. 00525EC9  |.  50                 push eax
  171. 00525ECA  |.  B9 02000000        mov ecx,2
  172. 00525ECF  |.  33D2               xor edx,edx
  173. 00525ED1  |.  8B45 FC            mov eax,[local.1]                    ;  机器码放到EAX中
  174. 00525ED4  |.  E8 27EFEDFF        call 秋风工资.00404E00
  175. 00525ED9  |.  8B45 E0            mov eax,[local.8]                    ;  机器码第1-第2位放
  176. 到EAX中
  177. 00525EDC  |.  E8 5336EEFF        call 秋风工资.00409534                   ;  这个CALL挺重要
  178. 的,我会单独说下
  179. 00525EE1  |.  F7EB               imul ebx                             ; |EAX乘以EBX(36)
  180. 00525EE3  |.  8945 E4            mov [local.7],eax                    ; |
  181. 00525EE6  |.  C645 E8 00         mov byte ptr ss:[ebp-18],0           ; |
  182. 00525EEA  |.  8D55 E4            lea edx,[local.7]                    ; |
  183. 00525EED  |.  33C9               xor ecx,ecx                          ; |
  184. 00525EEF  |.  B8 3C605200        mov eax,秋风工资.0052603C                ; |ASCII "%d"
  185. 00525EF4  |.  E8 5F42EEFF        call 秋风工资.0040A158                   ; \应该是16进制转
  186. 10进制
  187. 00525EF9  |.  8D45 F4            lea eax,[local.3]
  188. 00525EFC  |.  50                 push eax
  189. 00525EFD  |.  8D45 DC            lea eax,[local.9]
  190. 00525F00  |.  50                 push eax
  191. 00525F01  |.  B9 02000000        mov ecx,2
  192. 00525F06  |.  BA 02000000        mov edx,2
  193. 00525F0B  |.  8B45 FC            mov eax,[local.1]
  194. 00525F0E  |.  E8 EDEEEDFF        call 秋风工资.00404E00
  195. 00525F13  |.  8B45 DC            mov eax,[local.9]                    ;  取机器码第3-第4位
  196. 00525F16  |.  E8 1936EEFF        call 秋风工资.00409534                   ;  这个CALL挺重要
  197. 的,我会单独说下
  198. 00525F1B  |.  F7EE               imul esi                             ; |EAX乘以ESI(19)
  199. 00525F1D  |.  8945 E4            mov [local.7],eax                    ; |
  200. 00525F20  |.  C645 E8 00         mov byte ptr ss:[ebp-18],0           ; |
  201. 00525F24  |.  8D55 E4            lea edx,[local.7]                    ; |
  202. 00525F27  |.  33C9               xor ecx,ecx                          ; |
  203. 00525F29  |.  B8 3C605200        mov eax,秋风工资.0052603C                ; |ASCII "%d"
  204. 00525F2E  |.  E8 2542EEFF        call 秋风工资.0040A158                   ; \应该是16进制转
  205. 10进制
  206. 00525F33  |.  8D45 F0            lea eax,[local.4]
  207. 00525F36  |.  50                 push eax
  208. 00525F37  |.  8D45 D8            lea eax,[local.10]
  209. 00525F3A  |.  50                 push eax
  210. 00525F3B  |.  B9 02000000        mov ecx,2
  211. 00525F40  |.  BA 04000000        mov edx,4
  212. 00525F45  |.  8B45 FC            mov eax,[local.1]
  213. 00525F48  |.  E8 B3EEEDFF        call 秋风工资.00404E00
  214. 00525F4D  |.  8B45 D8            mov eax,[local.10]                   ;  取第5-第4位
  215. 00525F50  |.  E8 DF35EEFF        call 秋风工资.00409534                   ;  这个CALL挺重要
  216. 的,我会单独说下
  217. 00525F55  |.  F7EB               imul ebx                             ; |EAX乘以EBX(36)
  218. 00525F57  |.  8945 E4            mov [local.7],eax                    ; |
  219. 00525F5A  |.  C645 E8 00         mov byte ptr ss:[ebp-18],0           ; |
  220. 00525F5E  |.  8D55 E4            lea edx,[local.7]                    ; |
  221. 00525F61  |.  33C9               xor ecx,ecx                          ; |
  222. 00525F63  |.  B8 3C605200        mov eax,秋风工资.0052603C                ; |ASCII "%d"
  223. 00525F68  |.  E8 EB41EEFF        call 秋风工资.0040A158                   ; \应该是16进制转
  224. 10进制
  225. 00525F6D  |.  8D45 EC            lea eax,[local.5]
  226. 00525F70  |.  50                 push eax
  227. 00525F71  |.  8D45 D4            lea eax,[local.11]
  228. 00525F74  |.  50                 push eax
  229. 00525F75  |.  B9 03000000        mov ecx,3
  230. 00525F7A  |.  BA 06000000        mov edx,6
  231. 00525F7F  |.  8B45 FC            mov eax,[local.1]
  232. 00525F82  |.  E8 79EEEDFF        call 秋风工资.00404E00
  233. 00525F87  |.  8B45 D4            mov eax,[local.11]                   ;  取第6-第8位
  234. 00525F8A  |.  E8 A535EEFF        call 秋风工资.00409534                   ;  这个CALL挺重要
  235. 的,我会单独说下
  236. 00525F8F  |.  F7EE               imul esi                             ; |EAX乘以ESI(19)
  237. 00525F91  |.  8945 E4            mov [local.7],eax                    ; |
  238. 00525F94  |.  C645 E8 00         mov byte ptr ss:[ebp-18],0           ; |
  239. 00525F98  |.  8D55 E4            lea edx,[local.7]                    ; |
  240. 00525F9B  |.  33C9               xor ecx,ecx                          ; |
  241. 00525F9D  |.  B8 3C605200        mov eax,秋风工资.0052603C                ; |ASCII "%d"
  242. 00525FA2  |.  E8 B141EEFF        call 秋风工资.0040A158                   ; \应该是16进制转
  243. 10进制
  244. 00525FA7  |.  8D55 D0            lea edx,[local.12]
  245. 00525FAA  |.  8B45 EC            mov eax,[local.5]                    ;  注册码第一段放到
  246. EAX中
  247. 00525FAD  |.  E8 9231EEFF        call 秋风工资.00409144
  248. 00525FB2  |.  FF75 D0            push [local.12]
  249. 00525FB5  |.  68 48605200        push 秋风工资.00526048
  250. 00525FBA  |.  8D55 CC            lea edx,[local.13]
  251. 00525FBD  |.  8B45 F8            mov eax,[local.2]
  252. 00525FC0  |.  E8 7F31EEFF        call 秋风工资.00409144
  253. 00525FC5  |.  FF75 CC            push [local.13]
  254. 00525FC8  |.  68 48605200        push 秋风工资.00526048
  255. 00525FCD  |.  8D55 C8            lea edx,[local.14]
  256. 00525FD0  |.  8B45 F0            mov eax,[local.4]                    ;  注册码第3段放到EAX

  257. 00525FD3  |.  E8 6C31EEFF        call 秋风工资.00409144
  258. 00525FD8  |.  FF75 C8            push [local.14]
  259. 00525FDB  |.  68 48605200        push 秋风工资.00526048
  260. 00525FE0  |.  8D55 C4            lea edx,[local.15]
  261. 00525FE3  |.  8B45 F4            mov eax,[local.3]                    ;  注册码第4段放到EAX

  262. 00525FE6  |.  E8 5931EEFF        call 秋风工资.00409144
  263. 00525FEB  |.  FF75 C4            push [local.15]
  264. 00525FEE  |.  8B45 08            mov eax,[arg.1]
  265. 00525FF1  |.  BA 07000000        mov edx,7
  266. 00525FF6  |.  E8 6DECEDFF        call 秋风工资.00404C68
  267. 00525FFB  |.  33C0               xor eax,eax
  268. 00525FFD  |.  5A                 pop edx
  269. 00525FFE  |.  59                 pop ecx
  270. 00525FFF  |.  59                 pop ecx
  271. 00526000  |.  64:8910            mov dword ptr fs:[eax],edx
  272. 00526003  |.  68 2A605200        push 秋风工资.0052602A
  273. 00526008  |>  8D45 C4            lea eax,[local.15]
  274. 0052600B  |.  BA 08000000        mov edx,8
  275. 00526010  |.  E8 FFE8EDFF        call 秋风工资.00404914
  276. 00526015  |.  8D45 EC            lea eax,[local.5]
  277. 00526018  |.  BA 05000000        mov edx,5
  278. 0052601D  |.  E8 F2E8EDFF        call 秋风工资.00404914
  279. 00526022  \.  C3                 retn
  280. ------------------------------------------------------------------------------------------
  281. 我们现在来看下我上面说要单独讲的call 秋风工资.00409534,我们F7进去看看:(真累人啊)
  282. 00403328  /$  53                 push ebx
  283. 00403329  |.  56                 push esi
  284. 0040332A  |.  57                 push edi
  285. 0040332B  |.  89C6               mov esi,eax
  286. 0040332D  |.  50                 push eax
  287. 0040332E  |.  85C0               test eax,eax
  288. 00403330  |.  74 6C              je short 秋风工资.0040339E
  289. 00403332  |.  31C0               xor eax,eax
  290. 00403334  |.  31DB               xor ebx,ebx
  291. 00403336  |.  BF CCCCCC0C        mov edi,0CCCCCCC
  292. 0040333B  |>  8A1E               /mov bl,byte ptr ds:[esi]            ;  按位取一位放到bl中
  293. 0040333D  |.  46                 |inc esi                             ;  指向下一位
  294. 0040333E  |.  80FB 20            |cmp bl,20                           ;  比较是否为空格
  295. 00403341  |.^ 74 F8              \je short 秋风工资.0040333B
  296. 00403343  |.  B5 00              mov ch,0
  297. 00403345  |.  80FB 2D            cmp bl,2D                            ;  比较是否为符号“-”;
  298. 00403348  |.  74 62              je short 秋风工资.004033AC
  299. 0040334A  |.  80FB 2B            cmp bl,2B                            ;  比较是否为符号“+”
  300. 0040334D  |.  74 5F              je short 秋风工资.004033AE
  301. 0040334F  |.  80FB 24            cmp bl,24                            ;  比较是否为符号“$”
  302. 00403352  |.  74 5F              je short 秋风工资.004033B3
  303. 00403354  |.  80FB 78            cmp bl,78                            ;  比较是否为符号“x”
  304. 00403357  |.  74 5A              je short 秋风工资.004033B3
  305. 00403359  |.  80FB 58            cmp bl,58                            ;  比较是否为符号“X”
  306. 0040335C  |.  74 55              je short 秋风工资.004033B3
  307. 0040335E  |.  80FB 30            cmp bl,30                            ;  比较是否为符号“0”
  308. 00403361  |.  75 13              jnz short 秋风工资.00403376              ;  不是则跳
  309. 00403363  |.  8A1E               mov bl,byte ptr ds:[esi]             ;  下一位的放到bl中;
  310. 00403365  |.  46                 inc esi
  311. 00403366  |.  80FB 78            cmp bl,78                            ;  比较是否为符号“x”
  312. 00403369  |.  74 48              je short 秋风工资.004033B3
  313. 0040336B  |.  80FB 58            cmp bl,58                            ;  比较是否为符号“X”
  314. 0040336E  |.  74 43              je short 秋风工资.004033B3
  315. 00403370  |.  84DB               test bl,bl
  316. 00403372  |.  74 20              je short 秋风工资.00403394
  317. 00403374  |.  EB 04              jmp short 秋风工资.0040337A
  318. 00403376  |>  84DB               test bl,bl                           ;  
  319. 00403378  |.  74 2D              je short 秋风工资.004033A7
  320. 0040337A  |>  80EB 30            /sub bl,30                           ;  减30,ASCII转数字
  321. 0040337D  |.  80FB 09            |cmp bl,9                            ;  和9相比
  322. 00403380  |.  77 25              |ja short 秋风工资.004033A7              ;  比9大就跳
  323. 00403382  |.  39F8               |cmp eax,edi
  324. 00403384  |.  77 21              |ja short 秋风工资.004033A7
  325. 00403386  |.  8D0480             |lea eax,dword ptr ds:[eax+eax*4]    ;  EAX*5,值放回到EAX中
  326. 00403389  |.  01C0               |add eax,eax                         ;  EAX自己加上自己
  327. 0040338B  |.  01D8               |add eax,ebx                         ;  EBX加到EAX
  328. 0040338D  |.  8A1E               |mov bl,byte ptr ds:[esi]            ;  机器码取下一位
  329. 0040338F  |.  46                 |inc esi
  330. 00403390  |.  84DB               |test bl,bl
  331. 00403392  |.^ 75 E6              \jnz short 秋风工资.0040337A
  332. 00403394  |>  FECD               dec ch
  333. 00403396  |.  74 09              je short 秋风工资.004033A1
  334. 00403398  |.  85C0               test eax,eax
  335. 0040339A  |.  7D 4E              jge short 秋风工资.004033EA
  336. 0040339C  |.  EB 09              jmp short 秋风工资.004033A7
  337. 0040339E  |>  46                 inc esi
  338. 0040339F  |.  EB 06              jmp short 秋风工资.004033A7
  339. 004033A1  |>  F7D8               neg eax
  340. 004033A3  |.  7E 45              jle short 秋风工资.004033EA
  341. 004033A5  |.  78 43              js short 秋风工资.004033EA
  342. 004033A7  |>  5B                 pop ebx                              
  343. 004033A8  |.  29DE               sub esi,ebx
  344. 004033AA  |.  EB 41              jmp short 秋风工资.004033ED
  345. 004033AC  |>  FEC5               inc ch                               ;
  346. 004033AE  |>  8A1E               mov bl,byte ptr ds:[esi]             ;  Case 2B ('+') of
  347. switch 00403345
  348. 004033B0  |.  46                 inc esi
  349. 004033B1  |.^ EB C3              jmp short 秋风工资.00403376
  350. 004033B3  |>  BF FFFFFF0F        mov edi,0FFFFFFF                     ;  Cases 24
  351. ('X'),78 ('x') of switch 00403345
  352. 004033B8  |.  8A1E               mov bl,byte ptr ds:[esi]
  353. 004033BA  |.  46                 inc esi
  354. 004033BB  |.  84DB               test bl,bl
  355. 004033BD  |.^ 74 DF              je short 秋风工资.0040339E
  356. 004033BF  |>  80FB 61            /cmp bl,61
  357. 004033C2  |.  72 03              |jb short 秋风工资.004033C7
  358. 004033C4  |.  80EB 20            |sub bl,20
  359. 004033C7  |>  80EB 30            |sub bl,30                           
  360. 004033CA  |.  80FB 09            |cmp bl,9
  361. 004033CD  |.  76 0B              |jbe short 秋风工资.004033DA
  362. 004033CF  |.  80EB 11            |sub bl,11
  363. 004033D2  |.  80FB 05            |cmp bl,5
  364. 004033D5  |.^ 77 D0              |ja short 秋风工资.004033A7
  365. 004033D7  |.  80C3 0A            |add bl,0A                           ;  Cases 41 ('A'),42
  366. ('B'),43 ('C'),44 ('D'),45 ('E'),46 ('F') of switch 004033C7
  367. 004033DA  |>  39F8               |cmp eax,edi                         ;  Cases 30 ('0'),31
  368. ('1'),32 ('2'),33 ('3'),34 ('4'),35 ('5'),36 ('6'),37 ('7'),38 ('8'),39 ('9') of switch
  369. 004033C7
  370. 004033DC  |.^ 77 C9              |ja short 秋风工资.004033A7
  371. 004033DE  |.  C1E0 04            |shl eax,4
  372. 004033E1  |.  01D8               |add eax,ebx
  373. 004033E3  |.  8A1E               |mov bl,byte ptr ds:[esi]
  374. 004033E5  |.  46                 |inc esi
  375. 004033E6  |.  84DB               |test bl,bl
  376. 004033E8  |.^ 75 D5              \jnz short 秋风工资.004033BF
  377. 004033EA  |>  59                 pop ecx
  378. 004033EB  |.  31F6               xor esi,esi
  379. 004033ED  |>  8932               mov dword ptr ds:[edx],esi
  380. 004033EF  |.  5F                 pop edi
  381. 004033F0  |.  5E                 pop esi
  382. 004033F1  |.  5B                 pop ebx
  383. 004033F2  \.  C3                 retn
  384. ------------------------------------------------------------------------------------------
复制代码
不知道大家看晕了没有,我也挺晕的。我现在来整理一下,这个软件是根据CUP的ID来生成机器码的(软
件里面叫注册串号),生成的机器码分别取第1-2位、第3-4位、第5-4位,第6-8位进行变换,这部分的
代码从00403328-004033F2。
变换后出来分别与ESI(19)或者EBP(36)相乘 代码段是00525E90-00526022这段,相乘后再从16进制
变成10进制,同时顺序调整调整成:第6-8位变换后-第1-2位变换后-第5-4位变换后-第3-4位变换后 这
种形式的注册码就是最后的结果了。太晕了,我自己写都觉得挺晕的,应该没多少人能看懂吧(水平差
请见谅)
------------------------------------------------------------------------
【破解总结】 这个软件的算法也比较简单,要的只是不怕晕的精神,汗!适合我这样的菜鸟学习,不敢
私藏,愿与像我这样的菜鸟分享,最后感谢PYG的培养!
如果有什么错漏之处欢迎大家批评指正*^_^*
------------------------------------------------------------------------
【版权声明】【版权声明】破文版权归我,转载版权归你。欢迎转载,盗版不究。如果能帮我改正和补充一下的话我
会更高兴的*^_^*

[ 本帖最后由 傻人有傻福 于 2008-3-6 17:57 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2008-3-6 18:00:50 | 显示全部楼层
又是您的文章啊,写的还是比较详细的,但我这样的菜鸟还是看不太懂哦。
005280CB  |.  E8 CCF0F1FF        call 秋风工资.0044719C                   ;  取注册码
你怎么知道这一步是取注册码呢????
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2008-3-6 18:45:03 | 显示全部楼层
回答楼上的 其实我也不是太懂啊 不过你跟一遍应该就心里有数了 记得要先看看前辈们的关于算法的基础讲解 提示:一般EAX是保存返回值的
不过楼主给我提了个醒 我不太清楚的东西不应该写出来 会误导别人 这个以后要改下 等真正明白了再写上去 谢谢了:loveliness:
多谢tianxj大哥的指点 这个CALL确实是取注册码的

[ 本帖最后由 傻人有傻福 于 2008-3-6 20:44 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2008-3-6 18:48:34 | 显示全部楼层
很好,很强大!!
PYG19周年生日快乐!

该用户从未签到

发表于 2008-3-6 20:24:47 | 显示全部楼层
/:012 不知道算法怎么入门。。。。还是喜欢爆破
PYG19周年生日快乐!

该用户从未签到

发表于 2008-3-6 21:59:49 | 显示全部楼层
看着有点混乱 建议自己跟一遍的话比较清楚 感谢楼主分享了
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-4-21 10:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-3-6 23:08:35 | 显示全部楼层
    呵呵 楼主 辛苦了~~~~~~~~
       写得非常详细了~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-3-7 08:44:37 | 显示全部楼层
    原帖由 magic659117852 于 2008-3-6 20:24 发表
    /:0122" />2" /> 不知道算法怎么入门。。。。还是喜欢爆破


    跟是不是用F8单步走?/:013/:014
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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