【文章标题】: **软件注册过程
【文章作者】: thdzhqg
【软件名称】: **管理软件
【软件大小】: 3.70 MB
【下载地址】: 华军软件园
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: od
【操作平台】: winxp
【软件介绍】: 一个销售管理软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
无壳,根据提示找到这里
005E58DC . 55 push ebp
005E58DD . 68 425B5E00 push 005E5B42
005E58E2 . 64:FF30 push dword ptr fs:[eax]
005E58E5 . 64:8920 mov fs:[eax], esp
005E58E8 . 8D55 F0 lea edx, [ebp-10]
005E58EB . 8B45 FC mov eax, [ebp-4]
005E58EE . 8B80 04030000 mov eax, [eax+304]
005E58F4 . E8 8390E6FF call 0044E97C
005E58F9 . 8B45 F0 mov eax, [ebp-10]
005E58FC . 8D55 F4 lea edx, [ebp-C]
005E58FF . E8 783DE2FF call 0040967C ; 检测用户名是否为空
005E5904 . 837D F4 00 cmp dword ptr [ebp-C], 0
005E5908 . 75 22 jnz short 005E592C
005E590A . 6A 00 push 0
005E590C . 68 505B5E00 push 005E5B50 ; 请填写用户名称!
005E5911 . E8 12FFFEFF call <jmp.&PunUnitLib.ShowMess>
005E5916 . 8B45 FC mov eax, [ebp-4]
005E5919 . 8B80 04030000 mov eax, [eax+304]
005E591F . 8B10 mov edx, [eax]
005E5921 . FF92 C0000000 call [edx+C0]
005E5927 . E9 B1010000 jmp 005E5ADD
005E592C > 8D55 E8 lea edx, [ebp-18]
005E592F . 8B45 FC mov eax, [ebp-4]
005E5932 . 8B80 FC020000 mov eax, [eax+2FC]
005E5938 . E8 3F90E6FF call 0044E97C ; 授权码位数
005E593D . 8B45 E8 mov eax, [ebp-18]
005E5940 . 8D55 EC lea edx, [ebp-14]
005E5943 . E8 343DE2FF call 0040967C
005E5948 . 837D EC 00 cmp dword ptr [ebp-14], 0 ; 检测授权码是否为空
005E594C . 75 22 jnz short 005E5970
005E594E . 6A 00 push 0
005E5950 . 68 645B5E00 push 005E5B64 ; 授权号不能为空,请填写授权号!
005E5955 . E8 CEFEFEFF call <jmp.&PunUnitLib.ShowMess>
005E595A . 8B45 FC mov eax, [ebp-4]
005E595D . 8B80 FC020000 mov eax, [eax+2FC]
005E5963 . 8B10 mov edx, [eax]
005E5965 . FF92 C0000000 call [edx+C0]
005E596B . E9 6D010000 jmp 005E5ADD
005E5970 > A1 EC056500 mov eax, [6505EC]
005E5975 . 8B00 mov eax, [eax] ; 常数C26D-Q638入eax
005E5977 . E8 C0F5E1FF call 00404F3C
005E597C . 50 push eax
005E597D . 8D55 E4 lea edx, [ebp-1C]
005E5980 . 8B45 FC mov eax, [ebp-4]
005E5983 . 8B80 F4020000 mov eax, [eax+2F4]
005E5989 . E8 EE8FE6FF call 0044E97C ; 取产品编号
005E598E . 8B45 E4 mov eax, [ebp-1C] ; 入eax
005E5991 . E8 A6F5E1FF call 00404F3C
005E5996 . 50 push eax
005E5997 . E8 BCFEFEFF call <jmp.&PunUnitLib.GetRegPass> ; 转换成授权号C26D-0383-Q638-8383
005E599C . 8BD0 mov edx, eax
005E599E . 8D45 F8 lea eax, [ebp-8]
005E59A1 . E8 D6F2E1FF call 00404C7C
005E59A6 . 8D55 DC lea edx, [ebp-24]
005E59A9 . 8B45 FC mov eax, [ebp-4]
005E59AC . 8B80 FC020000 mov eax, [eax+2FC]
005E59B2 . E8 C58FE6FF call 0044E97C ; 取授权码位数
005E59B7 . 8B45 DC mov eax, [ebp-24]
005E59BA . 8D55 E0 lea edx, [ebp-20]
005E59BD . E8 BA3CE2FF call 0040967C
005E59C2 . 8B45 E0 mov eax, [ebp-20]
005E59C5 . 8B55 F8 mov edx, [ebp-8]
005E59C8 . E8 BBF4E1FF call 00404E88 ; 关键比较call
005E59CD . 0F85 FE000000 jnz 005E5AD1 ; 关键跳
005E59D3 . 33C0 xor eax, eax
005E59D5 . 55 push ebp
005E59D6 . 68 BD5A5E00 push 005E5ABD
005E59DB . 64:FF30 push dword ptr fs:[eax]
005E59DE . 64:8920 mov fs:[eax], esp
005E59E1 . B2 01 mov dl, 1
005E59E3 . A1 A0294700 mov eax, [4729A0]
005E59E8 . E8 1FD1E8FF call 00472B0C
005E59ED . 8BD8 mov ebx, eax
005E59EF . BA 02000080 mov edx, 80000002
005E59F4 . 8BC3 mov eax, ebx
005E59F6 . E8 EDD1E8FF call 00472BE8
005E59FB . B1 01 mov cl, 1
005E59FD . 8B15 70F96400 mov edx, [64F970] ; saleMan.005E57E4
005E5A03 . 8BC3 mov eax, ebx
005E5A05 . E8 22D3E8FF call 00472D2C
005E5A0A . 8D55 D8 lea edx, [ebp-28]
005E5A0D . 8B45 FC mov eax, [ebp-4]
005E5A10 . 8B80 04030000 mov eax, [eax+304]
005E5A16 . E8 618FE6FF call 0044E97C
005E5A1B . 8B4D D8 mov ecx, [ebp-28]
005E5A1E . BA 8C5B5E00 mov edx, 005E5B8C ; username
005E5A23 . 8BC3 mov eax, ebx
005E5A25 . E8 9ED4E8FF call 00472EC8
005E5A2A . 8D55 D0 lea edx, [ebp-30]
005E5A2D . 8B45 FC mov eax, [ebp-4]
005E5A30 . 8B80 F4020000 mov eax, [eax+2F4]
005E5A36 . E8 418FE6FF call 0044E97C
005E5A3B . 8B45 D0 mov eax, [ebp-30]
005E5A3E . E8 F9F4E1FF call 00404F3C
005E5A43 . 50 push eax
005E5A44 . E8 07FEFEFF call <jmp.&PunUnitLib.SavePass>
005E5A49 . 8BD0 mov edx, eax
005E5A4B . 8D45 D4 lea eax, [ebp-2C]
005E5A4E . E8 29F2E1FF call 00404C7C
005E5A53 . 8B4D D4 mov ecx, [ebp-2C]
005E5A56 . BA A05B5E00 mov edx, 005E5BA0 ; signcode
005E5A5B . 8BC3 mov eax, ebx
005E5A5D . E8 66D4E8FF call 00472EC8
005E5A62 . 8B45 F8 mov eax, [ebp-8]
005E5A65 . E8 D2F4E1FF call 00404F3C
005E5A6A . 50 push eax
005E5A6B . E8 E0FDFEFF call <jmp.&PunUnitLib.SavePass>
005E5A70 . 8BD0 mov edx, eax
005E5A72 . 8D45 CC lea eax, [ebp-34]
005E5A75 . E8 02F2E1FF call 00404C7C
005E5A7A . 8B4D CC mov ecx, [ebp-34]
005E5A7D . BA B45B5E00 mov edx, 005E5BB4 ; ASCII "RegCode"
005E5A82 . 8BC3 mov eax, ebx
005E5A84 . E8 3FD4E8FF call 00472EC8
005E5A89 . 8BC3 mov eax, ebx
005E5A8B . E8 8CE1E1FF call 00403C1C
005E5A90 . 6A 00 push 0
005E5A92 . 68 BC5B5E00 push 005E5BBC ; 系统注册成功,欢迎你使用本软件!
005E5A97 . E8 8CFDFEFF call <jmp.&PunUnitLib.ShowMess>
005E5A9C . A1 E8056500 mov eax, [6505E8]
005E5AA1 . C700 02000000 mov dword ptr [eax], 2
005E5AA7 . A1 94036500 mov eax, [650394]
005E5AAC . 8B00 mov eax, [eax]
005E5AAE . E8 C5AAE8FF call 00470578
005E5AB3 . 33C0 xor eax, eax
005E5AB5 . 5A pop edx
005E5AB6 . 59 pop ecx
005E5AB7 . 59 pop ecx
005E5AB8 . 64:8910 mov fs:[eax], edx
005E5ABB . EB 20 jmp short 005E5ADD
005E5ABD .^ E9 3AE6E1FF jmp 004040FC
005E5AC2 . 8B45 FC mov eax, [ebp-4]
005E5AC5 . E8 FE71E8FF call 0046CCC8
005E5ACA . E8 59EAE1FF call 00404528
005E5ACF . EB 0C jmp short 005E5ADD
005E5AD1 > 6A 03 push 3
005E5AD3 . 68 E05B5E00 push 005E5BE0 ; 系统注册失败,请检查注册是否有误!
005E5AD8 . E8 4BFDFEFF call <jmp.&PunUnitLib.ShowMess>
----------------------------------------------------------------------------------------------------------
进入005E5997来到00839024
00839024 > 55 push ebp
00839025 8BEC mov ebp, esp
00839027 B9 06000000 mov ecx, 6
0083902C 6A 00 push 0
0083902E 6A 00 push 0
00839030 49 dec ecx
00839031 ^ 75 F9 jnz short 0083902C
00839033 53 push ebx
00839034 56 push esi
00839035 33C0 xor eax, eax
00839037 55 push ebp
00839038 68 F2918300 push 008391F2
0083903D 64:FF30 push dword ptr fs:[eax]
00839040 64:8920 mov fs:[eax], esp
00839043 8D45 EC lea eax, [ebp-14]
00839046 E8 65B5F8FF call 007C45B0
0083904B 8D45 F0 lea eax, [ebp-10]
0083904E 8B55 08 mov edx, [ebp+8]
00839051 E8 4AB7F8FF call 007C47A0
00839056 8B45 F0 mov eax, [ebp-10]
00839059 E8 0AB8F8FF call 007C4868
0083905E 8BF0 mov esi, eax
00839060 85F6 test esi, esi
00839062 7E 26 jle short 0083908A
00839064 BB 01000000 mov ebx, 1
00839069 8D4D E8 lea ecx, [ebp-18] ; /循环取出产品编号16进制数
0083906C 8B45 F0 mov eax, [ebp-10] ; |
0083906F 0FB64418 FF movzx eax, byte ptr [eax+ebx-1] ; |
00839074 33D2 xor edx, edx ; |
00839076 E8 F905F9FF call 007C9674 ; |
0083907B 8B55 E8 mov edx, [ebp-18] ; |
0083907E 8D45 FC lea eax, [ebp-4] ; |
00839081 E8 EAB7F8FF call 007C4870 ; |
00839086 43 inc ebx ; |
00839087 4E dec esi ; |
00839088 ^ 75 DF jnz short 00839069 ; \
0083908A 8B45 FC mov eax, [ebp-4]
0083908D E8 D6B7F8FF call 007C4868
00839092 8BF0 mov esi, eax
00839094 85F6 test esi, esi
00839096 7E 2C jle short 008390C4
00839098 BB 01000000 mov ebx, 1
0083909D 8B45 FC mov eax, [ebp-4] ; /把编号16进制数反过来即038383831333639305143475D24475
008390A0 E8 C3B7F8FF call 007C4868 ; |
008390A5 2BC3 sub eax, ebx ; |
008390A7 8B55 FC mov edx, [ebp-4] ; |
008390AA 8A1402 mov dl, [edx+eax] ; |
008390AD 8D45 E4 lea eax, [ebp-1C] ; |
008390B0 E8 DBB6F8FF call 007C4790 ; |
008390B5 8B55 E4 mov edx, [ebp-1C] ; |
008390B8 8D45 F8 lea eax, [ebp-8] ; |
008390BB E8 B0B7F8FF call 007C4870 ; |
008390C0 43 inc ebx ; |
008390C1 4E dec esi ; |
008390C2 ^ 75 D9 jnz short 0083909D ; \
008390C4 8D45 FC lea eax, [ebp-4]
008390C7 50 push eax
008390C8 B9 04000000 mov ecx, 4
008390CD BA 01000000 mov edx, 1
008390D2 8B45 F8 mov eax, [ebp-8]
008390D5 E8 E6B9F8FF call 007C4AC0 ; 取前四位
008390DA 8D45 F8 lea eax, [ebp-8]
008390DD 50 push eax
008390DE B9 04000000 mov ecx, 4
008390E3 BA 05000000 mov edx, 5
008390E8 8B45 F8 mov eax, [ebp-8]
008390EB E8 D0B9F8FF call 007C4AC0
008390F0 8B45 FC mov eax, [ebp-4]
008390F3 E8 70B7F8FF call 007C4868
008390F8 83F8 04 cmp eax, 4 ; 比较是不是4位
008390FB 7D 2F jge short 0083912C
008390FD 8B45 FC mov eax, [ebp-4]
00839100 E8 63B7F8FF call 007C4868
00839105 8BD8 mov ebx, eax
00839107 83FB 03 cmp ebx, 3
0083910A 7F 20 jg short 0083912C
0083910C 8D4D E0 lea ecx, [ebp-20]
0083910F 8BC3 mov eax, ebx
00839111 C1E0 02 shl eax, 2
00839114 33D2 xor edx, edx
00839116 E8 5905F9FF call 007C9674
0083911B 8B55 E0 mov edx, [ebp-20]
0083911E 8D45 FC lea eax, [ebp-4]
00839121 E8 4AB7F8FF call 007C4870
00839126 43 inc ebx
00839127 83FB 04 cmp ebx, 4
0083912A ^ 75 E0 jnz short 0083910C
0083912C 8B45 F8 mov eax, [ebp-8] ; 取5-8位
0083912F E8 34B7F8FF call 007C4868
00839134 83F8 04 cmp eax, 4 ; 比较是不是4位
00839137 7D 2F jge short 00839168
00839139 8B45 F8 mov eax, [ebp-8]
0083913C E8 27B7F8FF call 007C4868
00839141 8BD8 mov ebx, eax
00839143 83FB 03 cmp ebx, 3
00839146 7F 20 jg short 00839168
00839148 8D4D DC lea ecx, [ebp-24]
0083914B 8BC3 mov eax, ebx
0083914D C1E0 02 shl eax, 2
00839150 33D2 xor edx, edx
00839152 E8 1D05F9FF call 007C9674
00839157 8B55 DC mov edx, [ebp-24]
0083915A 8D45 F8 lea eax, [ebp-8]
0083915D E8 0EB7F8FF call 007C4870
00839162 43 inc ebx
00839163 83FB 04 cmp ebx, 4
00839166 ^ 75 E0 jnz short 00839148
00839168 8D45 D8 lea eax, [ebp-28]
0083916B 8B55 0C mov edx, [ebp+C] ; 常数C26D-Q638入edx
0083916E E8 2DB6F8FF call 007C47A0
00839173 8B45 D8 mov eax, [ebp-28]
00839176 8D55 F4 lea edx, [ebp-C]
00839179 E8 DE03F9FF call 007C955C
0083917E 8D45 D4 lea eax, [ebp-2C]
00839181 50 push eax
00839182 B9 04000000 mov ecx, 4
00839187 BA 01000000 mov edx, 1
0083918C 8B45 F4 mov eax, [ebp-C]
0083918F E8 2CB9F8FF call 007C4AC0
00839194 FF75 D4 push dword ptr [ebp-2C]
00839197 68 0C928300 push 0083920C
0083919C FF75 FC push dword ptr [ebp-4]
0083919F 8D45 D0 lea eax, [ebp-30]
008391A2 50 push eax
008391A3 B9 05000000 mov ecx, 5
008391A8 BA 05000000 mov edx, 5
008391AD 8B45 F4 mov eax, [ebp-C]
008391B0 E8 0BB9F8FF call 007C4AC0
008391B5 FF75 D0 push dword ptr [ebp-30]
008391B8 68 0C928300 push 0083920C
008391BD FF75 F8 push dword ptr [ebp-8]
008391C0 8D45 EC lea eax, [ebp-14]
008391C3 BA 06000000 mov edx, 6
008391C8 E8 5BB7F8FF call 007C4928 ; 插入前八位组成C26D-0383-Q638-8383
008391CD 8B45 EC mov eax, [ebp-14]
008391D0 E8 8BB8F8FF call 007C4A60
008391D5 8BD8 mov ebx, eax
008391D7 33C0 xor eax, eax
008391D9 5A pop edx
008391DA 59 pop ecx
008391DB 59 pop ecx
008391DC 64:8910 mov fs:[eax], edx
008391DF 68 F9918300 push 008391F9
008391E4 8D45 D0 lea eax, [ebp-30]
008391E7 BA 0C000000 mov edx, 0C
008391EC E8 E3B3F8FF call 007C45D4
008391F1 C3 retn
--------------------------------------------------------------------------------
【经验总结】
把产品编号16进制数反过来,取前八位分别插入常数C26D和Q638的后面
注册名:User
产品编号:WD-WCAP96318880
注册码:C26D-0383-Q638-8383
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!