软件使用一机一码加密delphi怎样实现?
我自己做了个软件,有一定的使用价值,不知道怎样利用一机一码的技术稍微保护一下自己的成果,有这方面经验的大哥大姐能否给予指点,有现成的代码就最好了,万分感谢。
[解决办法]
这种方式还是防君子不防小人
http://www.delphibbs.com/keylife/iblog_show.asp?xid=30356
[解决办法]
根椐硬件配置生成对应序列号。
[解决办法]
获取CPU序列号的模块Unit CPUID;
- Delphi(Pascal) code
{************************************************ 这个模块是用来获取CPU序列号,调用方式: ** 在上层程序的uses子句中含CPUID模块,用函数 **调用 CPUID.GetCPUVendor 获得CPU的制造商名称; **调用 CPUID.GetCPUInfo 得到CPU的序列号. **************************************************}interfaceusesSysUtils;typeTCPUID = array[1..4] of Longint;TVendor = array [0..11] of char; function GetCPUID: TCPUID; assembler; register; function GetCPUVendor: TVendor; assembler; register;function GetCPUInfo: string;implementationFunction GetCPUID: TCPUID; assembler; register; asmPUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Resukt} MOV EAX,1 DW $A20F {CPUID Command}STOSD {CPUID[1]} MOV EAX,EBX STOSD {CPUID[2]} MOV EAX,ECX STOSD {CPUID[3]}MOV EAX,EDX STOSD {CPUID[4]} POP EDI {Restore registers} POP EBX end;Function GetCPUVendor: TVendor; assembler; register;asm PUSH EBX {Save affected register} PUSH EDIMOV EDI,EAX {@Result (TVendor)}MOV EAX,0 DW $A20F {CPUID Command} MOV EAX,EBX XCHG EBX,ECX {save ECX result}MOV ECX,4 @1: STOSB SHR EAX,8 LOOP @1MOV EAX,EDX MOV ECX,4 @2: STOSB SHR EAX,8LOOP @2 MOV EAX,EBX MOV ECX,4 @3: STOSBSHR EAX,8 LOOP @3 POP EDI {Restore registers} POP EBX end;Function GetCPUInfo: string; var CPUID: TCPUID; I: Integer;beginfor I := Low(CPUID) to High(CPUID) do CPUID[i]:=-1;CPUID := GetCPUID;Result := IntToHex(CPUID[1], 8) + IntToHex(CPUID[2], 8) + IntToHex(CPUID[3], 8) + IntToHex(CPUID[4], 8); end; end.