有哪些免费的加密exe文件的软件呢?且加密后的软件的注册码只能在一部机上使用
如果有,请提供下载地址。加密狗好像要钱买的 问题点数:20、回复次数:5Top
1 楼yqdragon(小布点)回复于 2005-01-24 13:08:13 得分 4
楼主自己写个吧.....Top
2 楼dengpingyy(dp)回复于 2005-01-24 14:53:21 得分 4
自已写个吧,和硬件邦定!Top
3 楼jackie168(http://soft.eastrise.net)回复于 2005-01-24 14:57:20 得分 4
用壳Top
4 楼zzllabc(抱朴子--清心释累,绝率忘情)回复于 2005-01-24 14:59:22 得分 4
我有一个,是取硬盘序列号做加密的,楼主想要的话给我发邮件,zlong_ts@hotmail.com,不过要记得加分啊。Top
5 楼jackie168(http://soft.eastrise.net)回复于 2005-01-24 15:08:22 得分 4
软件加密:一机一码
//取硬盘系列号:
function GetIdeSerialNumber: pchar; //获取硬盘的出厂系列号;
const IDENTIFY_BUFFER_SIZE = 512;
type
TIDERegs = packed record
bFeaturesReg: BYTE;
bSectorCountReg: BYTE;
bSectorNumberReg: BYTE;
bCylLowReg: BYTE;
bCylHighReg: BYTE;
bDriveHeadReg: BYTE;
bCommandReg: BYTE;
bReserved: BYTE;
end;
TSendCmdInParams = packed record
cBufferSize: DWORD;
irDriveRegs: TIDERegs;
bDriveNumber: BYTE;
bReserved: array[0..2] of Byte;
dwReserved: array[0..3] of DWORD;
bBuffer: array[0..0] of Byte;
end;
TIdSector = packed record
wGenConfig: Word;
wNumCyls: Word;
wReserved: Word;
wNumHeads: Word;
wBytesPerTrack: Word;
wBytesPerSector: Word;
wSectorsPerTrack: Word;
wVendorUnique: array[0..2] of Word;
sSerialNumber: array[0..19] of CHAR;
wBufferType: Word;
wBufferSize: Word;
wECCSize: Word;
sFirmwareRev: array[0..7] of Char;
sModelNumber: array[0..39] of Char;
wMoreVendorUnique: Word;
wDoubleWordIO: Word;
wCapabilities: Word;
wReserved1: Word;
wPIOTiming: Word;
wDMATiming: Word;
wBS: Word;
wNumCurrentCyls: Word;
wNumCurrentHeads: Word;
wNumCurrentSectorsPerTrack: Word;
ulCurrentSectorCapacity: DWORD;
wMultSectorStuff: Word;
ulTotalAddressableSectors: DWORD;
wSingleWordDMA: Word;
wMultiWordDMA: Word;
bReserved: array[0..127] of BYTE;
end;
PIdSector = ^TIdSector;
TDriverStatus = packed record
bDriverError: Byte;
bIDEStatus: Byte;
bReserved: array[0..1] of Byte;
dwReserved: array[0..1] of DWORD;
end;
TSendCmdOutParams = packed record
cBufferSize: DWORD;
DriverStatus: TDriverStatus;
bBuffer: array[0..0] of BYTE;
end;
var
hDevice: Thandle;
cbBytesReturned: DWORD;
SCIP: TSendCmdInParams;
aIdOutCmd: array[0..(SizeOf(TSendCmdOutParams) + IDENTIFY_BUFFER_SIZE-1)-1] of Byte;
IdOutCmd: TSendCmdOutParams absolute aIdOutCmd;
procedure ChangeByteOrder(var Data; Size: Integer);
var
ptr: Pchar;
i: Integer;
c: Char;
begin
ptr := @Data;
for I := 0 to (Size shr 1) - 1 do begin
c := ptr^;
ptr^ := (ptr + 1)^;
(ptr + 1)^ := c;
Inc(ptr, 2);
end;
end;
begin
Result := '';
if SysUtils.Win32Platform = VER_PLATFORM_WIN32_NT then begin // Windows NT, Windows 2000
hDevice := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
end else // Version Windows 95 OSR2, Windows 98
hDevice := CreateFile('\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0);
if hDevice = INVALID_HANDLE_VALUE then Exit;
try
FillChar(SCIP, SizeOf(TSendCmdInParams) - 1, #0);
FillChar(aIdOutCmd, SizeOf(aIdOutCmd), #0);
cbBytesReturned := 0;
with SCIP do begin
cBufferSize := IDENTIFY_BUFFER_SIZE;
with irDriveRegs do begin
bSectorCountReg := 1;
bSectorNumberReg := 1;
bDriveHeadReg := $A0;
bCommandReg := $EC;
end;
end;
if not DeviceIoControl(hDevice, $0007C088, @SCIP, SizeOf(TSendCmdInParams) - 1,
@aIdOutCmd, SizeOf(aIdOutCmd), cbBytesReturned, nil) then Exit;
finally
CloseHandle(hDevice);
end;
with PIdSector(@IdOutCmd.bBuffer)^ do begin
ChangeByteOrder(sSerialNumber, SizeOf(sSerialNumber));
(Pchar(@sSerialNumber) + SizeOf(sSerialNumber))^:= #0;
Result := Pchar(@sSerialNumber);
end;
end;
Edit1.Text:=strpas(GetIdeSerialNumber); //调用
=========================================================
如何有效的保护軟件?
procedure TMainForm.FormActivate(Sender: TObject);
var
zcform : Tzcform;
reg:tregistry;
zc_1 : String;
begin
reg:=tregistry.Create;
with reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
if KeyExists('software\consid\……') then
begin
openkey('software\consid\……',false);
zc_1 := readstring('zcm');
end;
end;
if Trim(zc_1) <> '' then
begin
if (Date() - StrToDateTime(zc_1)) >= 30 then
begin
Application.MessageBox(Pchar('如果您准备继续使用本软件,请向软件制作者索取正式版本' + #13 + ' ……' + #13 + '再次感谢您使用本软件'),'提示',MB_OK + MB_ICONINFORMATION);
Close;
Application.Terminate;
Exit;
end;
end;
if zc_1 = '' then
begin
//---------------------注册-------------------
reg:=tregistry.Create;
with reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
openkey('software\consid\……',true);
writestring('zcm',DateTimeToStr(Now));
closekey;
Application.MessageBox(Pchar('感谢您使用本软件,如果在使用过程中发现差错,请您反馈信息' + #13 +'……'+ #13 + '祝您工作愉快'),'提示',MB_OK + MB_ICONINFORMATION);
free;
end;
end;
//---------------------注册结束---------------
end;
function TMainForm.Zcm: String;
begin
end;
function TMainForm.GetWindowsProductID: string;
var
reg: TRegistry;
begin
Result := '';
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
OpenKey('Software\Microsoft\Windows\CurrentVersion', False);
Result := ReadString('ProductID');
end;
reg.Free;
end;
PS:记得加分给我,仅仅20分是远远不够的,呵~~~Top




