【破文标题】佳宜销售管理软件 1.67 企业版算法分析(软件更新时间8月23日)
【破文作者】学习破解(辉)
【作者邮箱】wxh9833@163.com
【作者主页】wxh9833
【破解工具】PEiD,,OD
【破解平台】Windows 2K&XP
【软件名称】佳宜销售管理软件1.67
【软件大小】3.66M
【原版下载】http://www.newhua.com/soft/39873.htm
【保护方式】无壳
【软件简介】
一、适应对象:
本软件提供了完备的销售业务管理功能,包括销售管理(销售订单、销售出货、销售退货、收款登记)、基本信息(公司基本资料、客户资料、货品资料、员工档案、其他基础设置)、单据查询(订货单查询、收货单查询、付款单查询)、系统维护(操作权限、数据备份及恢复、数据压缩、数据清理)等功能。
二、软件特点:
1。导航式的界面
2。高效强大的查询工具
3。稳定安全的数据库
4。完全的网络化操作
5。开放式的打印设置
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【破解声明】请各位指教!!!:)
------------------------------------------------------------------------
一、PEID查壳,为Borland Delphi 6.0 - 7.0
二、运行软件,注册,有错误提示:“系统注册失败,请检查注册是不明有误”OD载入,查找字符串。
特别提示:(分析程序要来到程序入口的地方)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
005E093B . 51 PUSH ECX ; 注册程序的入口,下断在这里!!!!
005E093C . 53 PUSH EBX
005E093D . 56 PUSH ESI
005E093E . 57 PUSH EDI
005E093F . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
005E0942 . 33C0 XOR EAX,EAX
005E0944 . 55 PUSH EBP
005E0945 . 68 AA0B5E00 PUSH saleMan.005E0BAA
005E094A . 64:FF30 PUSH DWORD PTR FS:[EAX]
005E094D . 64:8920 MOV DWORD PTR FS:[EAX],ESP
005E0950 . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
005E0953 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0956 . 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
005E095C . E8 1BE0E6FF CALL saleMan.0044E97C
005E0961 . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
005E0964 . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C] ; 这里是我们输入的用户名!!!!
005E0967 . E8 108DE2FF CALL saleMan.0040967C
005E096C . 837D F4 00 CMP DWORD PTR SS:[EBP-C],0 ; 这个是用户名的位数与0比较,等于就死了.
005E0970 . 75 22 JNZ SHORT saleMan.005E0994
005E0972 . 6A 00 PUSH 0
005E0974 . 68 B80B5E00 PUSH saleMan.005E0BB8 ; 请填写用户名称!
005E0979 . E8 0E00FFFF CALL <JMP.&PunUnitLib.ShowMess>
005E097E . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0981 . 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
005E0987 . 8B10 MOV EDX,DWORD PTR DS:[EAX]
005E0989 . FF92 C0000000 CALL DWORD PTR DS:[EDX+C0]
005E098F . E9 B1010000 JMP saleMan.005E0B45
005E0994 > 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
005E0997 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E099A . 8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
005E09A0 . E8 D7DFE6FF CALL saleMan.0044E97C
005E09A5 . 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] ; 这是我们输入的假授权号!!!(123456789)
005E09A8 . 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
005E09AB . E8 CC8CE2FF CALL saleMan.0040967C
005E09B0 . 837D EC 00 CMP DWORD PTR SS:[EBP-14],0 ; 授权号与0比较,不等于0就往下走,等于就死。
005E09B4 . 75 22 JNZ SHORT saleMan.005E09D8
005E09B6 . 6A 00 PUSH 0
005E09B8 . 68 CC0B5E00 PUSH saleMan.005E0BCC ; 授权号不能为空,请填写授权号!
005E09BD . E8 CAFFFEFF CALL <JMP.&PunUnitLib.ShowMess>
005E09C2 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E09C5 . 8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
005E09CB . 8B10 MOV EDX,DWORD PTR DS:[EAX]
005E09CD . FF92 C0000000 CALL DWORD PTR DS:[EDX+C0]
005E09D3 . E9 6D010000 JMP saleMan.005E0B45
005E09D8 > A1 E8856400 MOV EAX,DWORD PTR DS:[6485E8]
005E09DD . 8B00 MOV EAX,DWORD PTR DS:[EAX] ; 看这里是一组预码!!(C26D-Q638)
005E09DF . E8 5845E2FF CALL saleMan.00404F3C
005E09E4 . 50 PUSH EAX
005E09E5 . 8D55 E4 LEA EDX,DWORD PTR SS:[EBP-1C]
005E09E8 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; C26D-Q638放EAX中。
005E09EB . 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
005E09F1 . E8 86DFE6FF CALL saleMan.0044E97C
005E09F6 . 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C] ; 取注册代码号,进行运行
005E09F9 . E8 3E45E2FF CALL saleMan.00404F3C
005E09FE . 50 PUSH EAX
005E09FF . E8 B8FFFEFF CALL <JMP.&PunUnitLib.GetRegPass> ; 关键算法CALL 要F7跟进!!!
005E0A04 . 8BD0 MOV EDX,EAX ; 这里是真的注册码放在EAX中,并传送到EDX中。
005E0A06 . 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
005E0A09 . E8 6E42E2FF CALL saleMan.00404C7C
005E0A0E . 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
005E0A11 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0A14 . 8B80 FC020000 MOV EAX,DWORD PTR DS:[EAX+2FC]
005E0A1A . E8 5DDFE6FF CALL saleMan.0044E97C
005E0A1F . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] ; 这里是我们输入的假注册码!!!!
005E0A22 . 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
005E0A25 . E8 528CE2FF CALL saleMan.0040967C
005E0A2A . 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20] ; 这里是我们输入的假注册码!!!!
005E0A2D . 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8] ; 真码!!
005E0A30 . E8 5344E2FF CALL saleMan.00404E88 ; 比较CALL,不等就结束了。
005E0A35 . 0F85 FE000000 JNZ saleMan.005E0B39 ; 爆破点。
005E0A3B . 33C0 XOR EAX,EAX
005E0A3D . 55 PUSH EBP
005E0A3E . 68 250B5E00 PUSH saleMan.005E0B25
005E0A43 . 64:FF30 PUSH DWORD PTR FS:[EAX]
005E0A46 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
005E0A49 . B2 01 MOV DL,1
005E0A4B . A1 A0294700 MOV EAX,DWORD PTR DS:[4729A0]
005E0A50 . E8 B720E9FF CALL saleMan.00472B0C
005E0A55 . 8BD8 MOV EBX,EAX
005E0A57 . BA 02000080 MOV EDX,80000002
005E0A5C . 8BC3 MOV EAX,EBX
005E0A5E . E8 8521E9FF CALL saleMan.00472BE8
005E0A63 . B1 01 MOV CL,1
005E0A65 . 8B15 70796400 MOV EDX,DWORD PTR DS:[647970] ; saleMan.005E088C
005E0A6B . 8BC3 MOV EAX,EBX
005E0A6D . E8 BA22E9FF CALL saleMan.00472D2C
005E0A72 . 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
005E0A75 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0A78 . 8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
005E0A7E . E8 F9DEE6FF CALL saleMan.0044E97C
005E0A83 . 8B4D D8 MOV ECX,DWORD PTR SS:[EBP-28]
005E0A86 . BA F40B5E00 MOV EDX,saleMan.005E0BF4 ; username
005E0A8B . 8BC3 MOV EAX,EBX
005E0A8D . E8 3624E9FF CALL saleMan.00472EC8
005E0A92 . 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
005E0A95 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0A98 . 8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
005E0A9E . E8 D9DEE6FF CALL saleMan.0044E97C
005E0AA3 . 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30]
005E0AA6 . E8 9144E2FF CALL saleMan.00404F3C
005E0AAB . 50 PUSH EAX
005E0AAC . E8 03FFFEFF CALL <JMP.&PunUnitLib.SavePass>
005E0AB1 . 8BD0 MOV EDX,EAX
005E0AB3 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
005E0AB6 . E8 C141E2FF CALL saleMan.00404C7C
005E0ABB . 8B4D D4 MOV ECX,DWORD PTR SS:[EBP-2C]
005E0ABE . BA 080C5E00 MOV EDX,saleMan.005E0C08 ; signcode
005E0AC3 . 8BC3 MOV EAX,EBX
005E0AC5 . E8 FE23E9FF CALL saleMan.00472EC8
005E0ACA . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
005E0ACD . E8 6A44E2FF CALL saleMan.00404F3C
005E0AD2 . 50 PUSH EAX
005E0AD3 . E8 DCFEFEFF CALL <JMP.&PunUnitLib.SavePass>
005E0AD8 . 8BD0 MOV EDX,EAX
005E0ADA . 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
005E0ADD . E8 9A41E2FF CALL saleMan.00404C7C
005E0AE2 . 8B4D CC MOV ECX,DWORD PTR SS:[EBP-34]
005E0AE5 . BA 1C0C5E00 MOV EDX,saleMan.005E0C1C ; regcode
005E0AEA . 8BC3 MOV EAX,EBX
005E0AEC . E8 D723E9FF CALL saleMan.00472EC8
005E0AF1 . 8BC3 MOV EAX,EBX
005E0AF3 . E8 2431E2FF CALL saleMan.00403C1C
005E0AF8 . 6A 00 PUSH 0
005E0AFA . 68 240C5E00 PUSH saleMan.005E0C24 ; 系统注册成功,欢迎你使用本软件!
005E0AFF . E8 88FEFEFF CALL <JMP.&PunUnitLib.ShowMess>
005E0B04 . A1 E4856400 MOV EAX,DWORD PTR DS:[6485E4]
005E0B09 . C700 02000000 MOV DWORD PTR DS:[EAX],2
005E0B0F . A1 90836400 MOV EAX,DWORD PTR DS:[648390]
005E0B14 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
005E0B16 . E8 5DFAE8FF CALL saleMan.00470578
005E0B1B . 33C0 XOR EAX,EAX
005E0B1D . 5A POP EDX
005E0B1E . 59 POP ECX
005E0B1F . 59 POP ECX
005E0B20 . 64:8910 MOV DWORD PTR FS:[EAX],EDX
005E0B23 . EB 20 JMP SHORT saleMan.005E0B45
005E0B25 .^ E9 D235E2FF JMP saleMan.004040FC
005E0B2A . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
005E0B2D . E8 96C1E8FF CALL saleMan.0046CCC8
005E0B32 . E8 F139E2FF CALL saleMan.00404528
005E0B37 . EB 0C JMP SHORT saleMan.005E0B45
005E0B39 > 6A 03 PUSH 3
005E0B3B . 68 480C5E00 PUSH saleMan.005E0C48 ; 系统注册失败,请检查注册是否有误!
005E0B40 . E8 47FEFEFF CALL <JMP.&PunUnitLib.ShowMess> ; 这里是程序报错的地方!!!
005E0B45 > 33C0 XOR EAX,EAX
005E0B47 . 5A POP EDX
005E0B48 . 59 POP ECX
005E0B49 . 59 POP ECX
005E0B4A . 64:8910 MOV DWORD PTR FS:[EAX],EDX
005E0B4D . 68 B10B5E00 PUSH saleMan.005E0BB1
005E0B52 > 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
005E0B55 . E8 323FE2FF CALL saleMan.00404A8C
005E0B5A . 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
005E0B5D . E8 2A3FE2FF CALL saleMan.00404A8C
005E0B62 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
005E0B65 . E8 223FE2FF CALL saleMan.00404A8C
005E0B6A . 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
005E0B6D . BA 02000000 MOV EDX,2
005E0B72 . E8 393FE2FF CALL saleMan.00404AB0
005E0B77 . 8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]
005E0B7A . E8 0D3FE2FF CALL saleMan.00404A8C
005E0B7F . 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
005E0B82 . BA 02000000 MOV EDX,2
005E0B87 > E8 243FE2FF CALL saleMan.00404AB0
005E0B8C . 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
005E0B8F . E8 F83EE2FF CALL saleMan.00404A8C
005E0B94 . 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
005E0B97 . E8 F03EE2FF CALL saleMan.00404A8C
005E0B9C . 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
005E0B9F . BA 02000000 MOV EDX,2
005E0BA4 . E8 073FE2FF CALL saleMan.00404AB0
005E0BA9 . C3 RETN
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法CALL部分跟进
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
003E9024 > 55 PUSH EBP
003E9025 8BEC MOV EBP,ESP
003E9027 B9 06000000 MOV ECX,6
003E902C 6A 00 PUSH 0
003E902E 6A 00 PUSH 0
003E9030 49 DEC ECX
003E9031 ^ 75 F9 JNZ SHORT PunUnitL.003E902C
003E9033 53 PUSH EBX
003E9034 56 PUSH ESI
003E9035 33C0 XOR EAX,EAX
003E9037 55 PUSH EBP
003E9038 68 F2913E00 PUSH PunUnitL.003E91F2
003E903D 64:FF30 PUSH DWORD PTR FS:[EAX]
003E9040 64:8920 MOV DWORD PTR FS:[EAX],ESP
003E9043 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
003E9046 E8 65B5F8FF CALL PunUnitL.003745B0
003E904B 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
003E904E 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] ; 取产品编号放入EDX中。
003E9051 E8 4AB7F8FF CALL PunUnitL.003747A0
003E9056 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 取产品编号放入EAX中。
003E9059 E8 0AB8F8FF CALL PunUnitL.00374868
003E905E 8BF0 MOV ESI,EAX ; 取产品编号的位数放入EAX中。
003E9060 85F6 TEST ESI,ESI
003E9062 7E 26 JLE SHORT PunUnitL.003E908A
003E9064 BB 01000000 MOV EBX,1 ; 这里把EBX设置为1为了下面的运算!!!
003E9069 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
003E906C 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ; 产品编号放EAX中!!!!!
003E906F 0FB64418 FF MOVZX EAX,BYTE PTR DS:[EAX+EBX-1] ; 逐位产品编号的ASCII码进行并排连接。
003E9074 33D2 XOR EDX,EDX
003E9076 E8 F905F9FF CALL PunUnitL.00379674
003E907B 8B55 E8 MOV EDX,DWORD PTR SS:[EBP-18]
003E907E 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
003E9081 E8 EAB7F8FF CALL PunUnitL.00374870
003E9086 43 INC EBX
003E9087 4E DEC ESI
003E9088 ^ 75 DF JNZ SHORT PunUnitL.003E9069 ; 如果没有取完就跳回重新取!!!!
003E908A 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 把取到的产品编号的ASCII并排放入EAX中。
003E908D E8 D6B7F8FF CALL PunUnitL.00374868
003E9092 8BF0 MOV ESI,EAX
003E9094 85F6 TEST ESI,ESI
003E9096 7E 2C JLE SHORT PunUnitL.003E90C4
003E9098 BB 01000000 MOV EBX,1
003E909D 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 产品编号ASCII放EAX
003E90A0 E8 C3B7F8FF CALL PunUnitL.00374868
003E90A5 2BC3 SUB EAX,EBX
003E90A7 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ; 产品编号ASCII码并连放EDX中。
003E90AA 8A1402 MOV DL,BYTE PTR DS:[EDX+EAX] ; 逐位取产品编号的ASCII码进行取反操作。
003E90AD 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
003E90B0 E8 DBB6F8FF CALL PunUnitL.00374790
003E90B5 8B55 E4 MOV EDX,DWORD PTR SS:[EBP-1C]
003E90B8 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
003E90BB E8 B0B7F8FF CALL PunUnitL.00374870
003E90C0 43 INC EBX
003E90C1 4E DEC ESI
003E90C2 ^ 75 D9 JNZ SHORT PunUnitL.003E909D ; 如果没有取完就反回重新取!!
003E90C4 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
003E90C7 50 PUSH EAX
003E90C8 B9 04000000 MOV ECX,4
003E90CD BA 01000000 MOV EDX,1
003E90D2 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 取反后的ASCII放入EAX中。
003E90D5 E8 E6B9F8FF CALL PunUnitL.00374AC0
003E90DA 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
003E90DD 50 PUSH EAX
003E90DE B9 04000000 MOV ECX,4
003E90E3 BA 05000000 MOV EDX,5
003E90E8 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
003E90EB E8 D0B9F8FF CALL PunUnitL.00374AC0 ; 下面说明下,取完值后,把这个值实际上转为字符了。。。
003E90F0 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; 这里是取产品编号ASCII取反后的前四位(十六进制)。放EAX中。
003E90F3 E8 70B7F8FF CALL PunUnitL.00374868
003E90F8 83F8 04 CMP EAX,4 ; 与4比较
003E90FB 7D 2F JGE SHORT PunUnitL.003E912C ; 等于就跳过了。
003E90FD 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
003E9100 E8 63B7F8FF CALL PunUnitL.00374868
003E9105 8BD8 MOV EBX,EAX
003E9107 83FB 03 CMP EBX,3
003E910A 7F 20 JG SHORT PunUnitL.003E912C
003E910C 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
003E910F 8BC3 MOV EAX,EBX
003E9111 C1E0 02 SHL EAX,2
003E9114 33D2 XOR EDX,EDX
003E9116 E8 5905F9FF CALL PunUnitL.00379674
003E911B 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20]
003E911E 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
003E9121 E8 4AB7F8FF CALL PunUnitL.00374870
003E9126 43 INC EBX
003E9127 83FB 04 CMP EBX,4
003E912A ^ 75 E0 JNZ SHORT PunUnitL.003E910C
003E912C 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8] ; 这里是取产品编号(十六进制)ASCII的第五位到第八位的取反值。
003E912F E8 34B7F8FF CALL PunUnitL.00374868
003E9134 83F8 04 CMP EAX,4 ; 与4比较。/
003E9137 7D 2F JGE SHORT PunUnitL.003E9168
003E9139 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
003E913C E8 27B7F8FF CALL PunUnitL.00374868
003E9141 8BD8 MOV EBX,EAX
003E9143 83FB 03 CMP EBX,3
003E9146 7F 20 JG SHORT PunUnitL.003E9168
003E9148 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24]
003E914B 8BC3 MOV EAX,EBX
003E914D C1E0 02 SHL EAX,2
003E9150 33D2 XOR EDX,EDX
003E9152 E8 1D05F9FF CALL PunUnitL.00379674
003E9157 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24]
003E915A 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
003E915D E8 0EB7F8FF CALL PunUnitL.00374870
003E9162 43 INC EBX
003E9163 83FB 04 CMP EBX,4
003E9166 ^ 75 E0 JNZ SHORT PunUnitL.003E9148
003E9168 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
003E916B 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] ; C26D-Q638又是这个值。呵呵。
003E916E E8 2DB6F8FF CALL PunUnitL.003747A0
003E9173 8B45 D8 MOV EAX,DWORD PTR SS:[EBP-28]
003E9176 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
003E9179 E8 DE03F9FF CALL PunUnitL.0037955C
003E917E 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
003E9181 50 PUSH EAX
003E9182 B9 04000000 MOV ECX,4
003E9187 BA 01000000 MOV EDX,1
003E918C 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
003E918F E8 2CB9F8FF CALL PunUnitL.00374AC0
003E9194 FF75 D4 PUSH DWORD PTR SS:[EBP-2C] ; 取出C26D-Q638的前四位。
003E9197 68 0C923E00 PUSH PunUnitL.003E920C
003E919C FF75 FC PUSH DWORD PTR SS:[EBP-4] ; 这里是取产品编号(十六进制)ASCII取反后的前四位。
003E919F 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
003E91A2 50 PUSH EAX
003E91A3 B9 05000000 MOV ECX,5
003E91A8 BA 05000000 MOV EDX,5
003E91AD 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; C26D-Q638又是这个值放EAX中。呵呵。
003E91B0 E8 0BB9F8FF CALL PunUnitL.00374AC0
003E91B5 FF75 D0 PUSH DWORD PTR SS:[EBP-30] ; C26D-Q638的后四位。
003E91B8 68 0C923E00 PUSH PunUnitL.003E920C
003E91BD FF75 F8 PUSH DWORD PTR SS:[EBP-8] ; 这里是取产品编号(十六进制)ASCII取反后的第五位到第八位的取反值。
003E91C0 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
003E91C3 BA 06000000 MOV EDX,6
003E91C8 E8 5BB7F8FF CALL PunUnitL.00374928
003E91CD 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14] ; 真码出现,C26D---前四位取反值---Q638---第五位到第八位取反值。
003E91D0 E8 8BB8F8FF CALL PunUnitL.00374A60
003E91D5 8BD8 MOV EBX,EAX
003E91D7 33C0 XOR EAX,EAX
003E91D9 5A POP EDX
003E91DA 59 POP ECX
003E91DB 59 POP ECX
003E91DC 64:8910 MOV DWORD PTR FS:[EAX],EDX
003E91DF 68 F9913E00 PUSH PunUnitL.003E91F9
003E91E4 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
003E91E7 BA 0C000000 MOV EDX,0C
003E91EC E8 E3B3F8FF CALL PunUnitL.003745D4
003E91F1 C3 RETN
------------------------------------------------------------------------
1、给一个预字符 C26D-Q638 (记为A)
2、取产品编号的ASCII值并转化为字符,并且取反。(记为B)
3、把A的前四位(C26D),与B的前四位相连。再连接上一个A的后四位(Q638)再连接上B的5到八位。
小结:注册码的格式为:C26D-(B前四位)-Q638-(B的五至八位)
特别说明:产品编号转为的ASCII都应该是十六进制的值,
------------------------------------------------------------------------
【版权声明】本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!