00444B3E |. 8B06 mov eax, dword ptr [esi] ; 序列号 堆栈 ds:[0012F038]=073F1C07
00444B40 |. 03C0 add eax, eax ; 序列号+序列号
00444B42 |. 8BF0 mov esi, eax
00444B44 |. 8D95 ECFEFFFF lea edx, dword ptr [ebp-114]
00444B4A |. 8BC6 mov eax, esi
00444B4C |. E8 9F2FFCFF call 00407AF0
00444B51 |. 8B95 ECFEFFFF mov edx, dword ptr [ebp-114] ; 转换为10进制(ASCII "243152910")
00444B57 |. 8B83 E8020000 mov eax, dword ptr [ebx+2E8] ; ds:[00D51A9C]=00D54D9C
00444B5D |. E8 6EF2FDFF call 00423DD0
00444B62 |. 8D55 F8 lea edx, dword ptr [ebp-8]
00444B65 |. 8B83 E8020000 mov eax, dword ptr [ebx+2E8]
00444B6B |. E8 30F2FDFF call 00423DA0
00444B70 |. 8D45 FC lea eax, dword ptr [ebp-4]
00444B73 |. 8B55 F8 mov edx, dword ptr [ebp-8] ; 堆栈 ss:[0012EE7C]=00D51D78, (ASCII "243152910")
00444B76 |. 8A52 03 mov dl, byte ptr [edx+3] ; 取数据第4位字符HEX
00444B79 |. E8 0AEFFBFF call 00403A88
00444B7E |. 8B45 FC mov eax, dword ptr [ebp-4]
00444B81 |. E8 D62FFCFF call 00407B5C
00444B86 |. F7EE imul esi ; eax=1(机器码第4位)*esi=0E7E380E 243152910的16进制数据
00444B88 |. 8D0440 lea eax, dword ptr [eax+eax*2] ; eax+eax*2=0E7E380E 地址=2B7AA82A
00444B8B |. A3 48784400 mov dword ptr [447848], eax
00444B90 |. 8D95 E8FEFFFF lea edx, dword ptr [ebp-118]
00444B96 |. A1 48784400 mov eax, dword ptr [447848] ; ds:[00447848]=2B7AA82A 10进制729458730
00444B9B |. E8 502FFCFF call 00407AF0
00444BA0 |. 8B95 E8FEFFFF mov edx, dword ptr [ebp-118]
00444BA6 |. B8 4C784400 mov eax, 0044784C
00444BAB |. E8 84EDFBFF call 00403934
00444BB0 |. 33C0 xor eax, eax
00444BB2 |. 5A pop edx
00444BB3 |. 59 pop ecx
00444BB4 |. 59 pop ecx
00444BB5 |. 64:8910 mov dword ptr fs:[eax], edx
00444BB8 |. 68 E24B4400 push 00444BE2
00444BBD |> 8D85 E8FEFFFF lea eax, dword ptr [ebp-118]
00444BC3 |. BA 02000000 mov edx, 2
00444BC8 |. E8 37EDFBFF call 00403904
00444BCD |. 8D45 F8 lea eax, dword ptr [ebp-8]
00444BD0 |. BA 02000000 mov edx, 2
00444BD5 |. E8 2AEDFBFF call 00403904
00444BDA \. C3 retn
00444BDB .- E9 98E7FBFF jmp 00403378
00444BE0 .^ EB DB jmp short 00444BBD
00444BE2 . 5E pop esi
00444BE3 . 5B pop ebx
00444BE4 . 8BE5 mov esp, ebp
00444BE6 . 5D pop ebp
00444BE7 . C3 retn
00444BE8 . 63 3A 5C 00 ascii "c:\",0
00444BEC /. 55 push ebp
00444BED |. 8BEC mov ebp, esp
00444BEF |. 33C9 xor ecx, ecx
00444BF1 |. 51 push ecx
00444BF2 |. 51 push ecx
00444BF3 |. 51 push ecx
00444BF4 |. 51 push ecx
00444BF5 |. 51 push ecx
00444BF6 |. 51 push ecx
00444BF7 |. 51 push ecx
00444BF8 |. 53 push ebx
00444BF9 |. 56 push esi
00444BFA |. 57 push edi
00444BFB |. 8BF8 mov edi, eax
00444BFD |. 33C0 xor eax, eax
00444BFF |. 55 push ebp
00444C00 |. 68 EB4C4400 push 00444CEB
00444C05 |. 64:FF30 push dword ptr fs:[eax]
00444C08 |. 64:8920 mov dword ptr fs:[eax], esp
00444C0B |. 8D55 FC lea edx, dword ptr [ebp-4]
00444C0E |. 8B87 D0020000 mov eax, dword ptr [edi+2D0]
00444C14 |. E8 87F1FDFF call 00423DA0
00444C19 |. 8B45 FC mov eax, dword ptr [ebp-4]
00444C1C |. E8 3FEFFBFF call 00403B60
00444C21 |. 83F8 03 cmp eax, 3
00444C24 |. 7D 15 jge short 00444C3B
00444C26 |. 6A 00 push 0 ; /Arg1 = 00000000
00444C28 |. 66:8B0D FC4C4>mov cx, word ptr [444CFC] ; |
00444C2F |. B2 01 mov dl, 1 ; |
00444C31 |. B8 084D4400 mov eax, 00444D08 ; |ASCII "Name must be more than 2 characters!"
00444C36 |. E8 E5F9FFFF call 00444620 ; \unpacked.00444620
00444C3B |> 8B45 FC mov eax, dword ptr [ebp-4]
00444C3E |. E8 1DEFFBFF call 00403B60
00444C43 |. 8BD8 mov ebx, eax ; 用户名长度
00444C45 |. 85DB test ebx, ebx
00444C47 |. 7E 29 jle short 00444C72
00444C49 |. BE 01000000 mov esi, 1
00444C4E |> 8D4D E8 /lea ecx, dword ptr [ebp-18]
00444C51 |. 8B45 FC |mov eax, dword ptr [ebp-4] ; 用户名
00444C54 |. 0FB64430 FF |movzx eax, byte ptr [eax+esi-1] ; 取用户名HEX
00444C59 |. BA 02000000 |mov edx, 2
00444C5E |. E8 BD2EFCFF |call 00407B20
00444C63 |. 8B55 E8 |mov edx, dword ptr [ebp-18] ; 转换为字符
00444C66 |. 8D45 F8 |lea eax, dword ptr [ebp-8]
00444C69 |. E8 FAEEFBFF |call 00403B68
00444C6E |. 46 |inc esi
00444C6F |. 4B |dec ebx
00444C70 |.^ 75 DC \jnz short 00444C4E
00444C72 |> 8D55 F0 lea edx, dword ptr [ebp-10]
00444C75 |. A1 48784400 mov eax, dword ptr [447848] ; 00447848 2A A8 7A 2B *?+? 序列号处理结果
00444C7A |. E8 712EFCFF call 00407AF0
00444C7F |. 8D45 F4 lea eax, dword ptr [ebp-C]
00444C82 |. 8B55 F8 mov edx, dword ptr [ebp-8] ; 用户名HEX连接起来的字符串堆栈(ASCII "6368696E61")
00444C85 |. E8 EEECFBFF call 00403978
00444C8A |. 8D45 EC lea eax, dword ptr [ebp-14]
00444C8D |. 8B4D F4 mov ecx, dword ptr [ebp-C]
00444C90 |. 8B55 F0 mov edx, dword ptr [ebp-10] ; 堆栈 ss:[0012F3FC]=00D51D4C, (ASCII "729458730")
00444C93 |. E8 14EFFBFF call 00403BAC
00444C98 |. 8D55 E4 lea edx, dword ptr [ebp-1C]
00444C9B |. 8B87 D4020000 mov eax, dword ptr [edi+2D4]
00444CA1 |. E8 FAF0FDFF call 00423DA0
00444CA6 |. 8B45 E4 mov eax, dword ptr [ebp-1C]
00444CA9 |. 8B55 EC mov edx, dword ptr [ebp-14] ; 机器码跟用户名HEX连接起来作为注册码
堆栈 ss:[0012F3F8]=00D51E38, (ASCII "7294587306368696E61")
edx=00140608
===========================
delphi code
var
VolumeName,FileSystemName:array[0..255]of char;
size1,size2:cardinal;
VolumeSerialNumber:DWORD;
i:Integer;
s1,s2,sn:String;
begin
GetVolumeInformation('c:\',VolumeName,256,@VolumeSerialNumber,size1,size2,FileSystemName,256);
s1:=inttostr(VolumeSerialNumber*2);
s1:=inttostr(strtoint(s1)*strtoint(s1[4])*3);
s2:=edit1.text;
sn:='';
for i:=1 to length(s2) do
begin
sn:=sn+inttohex(ord(s2[i]),2);
end;
edit2.text:=s1+sn;
end;
上传的附件: