//软件内部自带的序列号生成算法,现成的,不用自己写算法哦
//新版的UE我怎么都不适应;据说这个不错;不过我还是没用过,
//习惯了UE和WinHex啊。
.text:004528D7 ; Seed1=1//Single User License
.text:004528D7 ; 1<Seed1<50//User License
.text:004528D7 ; 50<=Seed1<=1000//Site License
.text:004528D7 ; Seed2<>0//unknown
.text:004528D7 ; Attributes: bp-based frame
.text:004528D7
.text:004528D7 ?_MakeSiteLicense proc near
.text:004528D7
.text:004528D7 var_8 = word ptr -8
.text:004528D7 var_5 = byte ptr -5
.text:004528D7 crcsum = dword ptr -4
.text:004528D7 Name = dword ptr 8
.text:004528D7 seed1 = dword ptr 0Ch
.text:004528D7 seed2 = dword ptr 10h
.text:004528D7 outlicense = dword ptr 14h
.text:004528D7
.text:004528D7 push ebp
.text:004528D8 mov ebp, esp
.text:004528DA add esp, 0FFFFFFF8h
.text:004528DD push [ebp+seed2] ; seed2
.text:004528E0 push [ebp+seed1] ; seed1
.text:004528E3 push 1 ; licensetype
.text:004528E5 push [ebp+Name] ; buf
.text:004528E8 call GetChksum
.text:004528ED add esp, 10h
.text:004528F0 mov [ebp+crcsum], eax
.text:004528F3 mov al, byte ptr [ebp+seed1]
.text:004528F6 push eax
.text:004528F7 call _Get9C_1
.text:004528FC pop ecx
.text:004528FD mov [ebp+var_5], al
.text:00452900 mov dx, word ptr [ebp+seed2]
.text:00452904 push edx
.text:00452905 call _Get9C_2
.text:0045290A pop ecx
.text:0045290B mov [ebp+var_8], ax
.text:0045290F mov ecx, [ebp+outlicense]
.text:00452912 mov byte ptr [ecx+3], 9Ch
.text:00452916 mov al, byte ptr [ebp+crcsum]
.text:00452919 and al, 0FFh
.text:0045291B mov edx, [ebp+outlicense]
.text:0045291E mov [edx+4], al
.text:00452921 mov ecx, [ebp+crcsum]
.text:00452924 shr ecx, 8
.text:00452927 and cl, 0FFh
.text:0045292A mov eax, [ebp+outlicense]
.text:0045292D mov [eax+5], cl
.text:00452930 mov edx, [ebp+crcsum]
.text:00452933 shr edx, 10h
.text:00452936 and dl, 0FFh
.text:00452939 mov ecx, [ebp+outlicense]
.text:0045293C mov [ecx+6], dl
.text:0045293F mov eax, [ebp+crcsum]
.text:00452942 shr eax, 18h
.text:00452945 and al, 0FFh
.text:00452947 mov edx, [ebp+outlicense]
.text:0045294A mov [edx+7], al
.text:0045294D mov cl, [ebp+var_5]
.text:00452950 and cl, 0FFh
.text:00452953 mov eax, [ebp+outlicense]
.text:00452956 xor cl, [eax+6]
.text:00452959 mov edx, [ebp+outlicense]
.text:0045295C mov [edx], cl
.text:0045295E movzx ecx, [ebp+var_8]
.text:00452962 sar ecx, 8
.text:00452965 and cl, 0FFh
.text:00452968 mov eax, [ebp+outlicense]
.text:0045296B xor cl, [eax+7]
.text:0045296E mov edx, [ebp+outlicense]
.text:00452971 mov [edx+1], cl
.text:00452974 mov cl, byte ptr [ebp+var_8]
.text:00452977 and cl, 0FFh
.text:0045297A mov eax, [ebp+outlicense]
.text:0045297D xor cl, [eax+5]
.text:00452980 mov edx, [ebp+outlicense]
.text:00452983 mov [edx+2], cl
.text:00452986 pop ecx
.text:00452987 pop ecx
.text:00452988 pop ebp
.text:00452989 retn
.text:00452989 ?_MakeSiteLicense endp
.text:00452989
.text:0045298A
.text:0045298A ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
.text:0045298A
.text:0045298A ; Attributes: bp-based frame
.text:0045298A
.text:0045298A ?_MakeSingleUserLicense proc near
.text:0045298A
.text:0045298A _FC = dword ptr -8
.text:0045298A crcsum = dword ptr -4
.text:0045298A Name = dword ptr 8
.text:0045298A arg_4 = dword ptr 0Ch
.text:0045298A outlicense = dword ptr 10h
.text:0045298A
.text:0045298A push ebp
.text:0045298B mov ebp, esp
.text:0045298D add esp, 0FFFFFFF8h
.text:00452990 push 1 ; seed2
.text:00452992 push 0FFh ; seed1
.text:00452997 push 0 ; licensetype
.text:00452999 push [ebp+Name] ; buf
.text:0045299C call GetChksum
.text:004529A1 add esp, 10h
.text:004529A4 mov [ebp+crcsum], eax
.text:004529A7 push [ebp+crcsum]
.text:004529AA push [ebp+arg_4]
.text:004529AD call _GetFC
.text:004529B2 add esp, 8
.text:004529B5 mov [ebp+_FC], eax
.text:004529B8 mov al, byte ptr [ebp+_FC]
.text:004529BB and al, 0FFh
.text:004529BD mov edx, [ebp+outlicense]
.text:004529C0 mov [edx], al
.text:004529C2 mov ecx, [ebp+_FC]
.text:004529C5 shr ecx, 8
.text:004529C8 and cl, 0FFh
.text:004529CB mov eax, [ebp+outlicense]
.text:004529CE mov [eax+1], cl
.text:004529D1 mov edx, [ebp+_FC]
.text:004529D4 shr edx, 10h
.text:004529D7 and dl, 0FFh
.text:004529DA mov ecx, [ebp+outlicense]
.text:004529DD mov [ecx+2], dl
.text:004529E0 mov eax, [ebp+outlicense]
.text:004529E3 mov byte ptr [eax+3], 0FCh
.text:004529E7 mov dl, byte ptr [ebp+crcsum]
.text:004529EA and dl, 0FFh
.text:004529ED mov ecx, [ebp+outlicense]
.text:004529F0 mov [ecx+4], dl
.text:004529F3 mov eax, [ebp+crcsum]
.text:004529F6 shr eax, 8
.text:004529F9 and al, 0FFh
.text:004529FB mov edx, [ebp+outlicense]
.text:004529FE mov [edx+5], al
.text:00452A01 mov ecx, [ebp+crcsum]
.text:00452A04 shr ecx, 10h
.text:00452A07 and cl, 0FFh
.text:00452A0A mov eax, [ebp+outlicense]
.text:00452A0D mov [eax+6], cl
.text:00452A10 mov edx, [ebp+crcsum]
.text:00452A13 shr edx, 18h
.text:00452A16 and dl, 0FFh
.text:00452A19 mov ecx, [ebp+outlicense]
.text:00452A1C mov [ecx+7], dl
.text:00452A1F pop ecx
.text:00452A20 pop ecx
.text:00452A21 pop ebp
.text:00452A22 retn
.text:00452A22 ?_MakeSingleUserLicense endp
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!