⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_config.pas

📁 传奇2万能变形特征码+极度流畅版,以前vip买回来的,现在已经过时了
💻 PAS
字号:
unit Unit_Config;
{$WARNINGS OFF}
{$HINTS OFF}
interface
uses
   Windows;

function  MyReadOrgStrBySelf():String;{从自己身上读取原始配置字符串}
function  MyWriteOrgStrToFile(const FileName,strWrite:string):Boolean;{往文件写入原始字符串}
function  MyReadEncryptStrBySelf(const iMark:integer=18):String;{从自己身上读取并解密配置字符串}
function  MyWriteEncryptStrToFile(const FileName,strWrite:string;const iMark:integer=18):Boolean;{往文件加密并写入字符串}

implementation
function GetModuleName(Module: HMODULE): string;
var
  ModName: array[0..MAX_PATH] of Char;
begin
  SetString(Result, ModName, GetModuleFileName(Module, ModName, SizeOf(ModName)));
end;
function FileSeek(Handle, Offset, Origin: Integer): Integer;
begin
  Result := SetFilePointer(THandle(Handle), Offset, nil, Origin);
end;
function FileRead(Handle: Integer; var Buffer; Count: LongWord): Integer;
begin
  if not ReadFile(THandle(Handle), Buffer, Count, LongWord(Result), nil) then
    Result := -1;
end;

function FileWrite(Handle: Integer; const Buffer; Count: LongWord): Integer;
begin
  if not WriteFile(THandle(Handle), Buffer, Count, LongWord(Result), nil) then
    Result := -1;
end;
function  MyReadOrgStrBySelf():String;{从自己身上读取原始配置字符串}
var
hFile:THandle;
iSize:integer;
Str:String;
begin
Result:='';
//建立读文件句柄
hFile := CreateFile(Pchar(GetModuleName(HInstance)),
                GENERIC_READ,
                FILE_SHARE_READ,
                nil,
                OPEN_EXISTING,
                0,
                0);

if hFile = INVALID_HANDLE_VALUE then Exit;
FileSeek(hFile,-Sizeof(iSize),2);
FileRead(hFile,iSize,Sizeof(integer));
FileSeek(hFile,-(Sizeof(integer)+iSize),2);
SetLength(Str,iSize);
FileRead(hFile,Str[1],iSize);
CloseHandle(hFile);
Result:=Str;
end;
function  MyWriteOrgStrToFile(const FileName,strWrite:string):Boolean;{往文件写入原始字符串}
var
hFile:THandle;
iSize:integer;
begin
Result:=False;
//建立读文件句柄
hFile := CreateFile(Pchar(FileName),
                GENERIC_READ or GENERIC_WRITE,
                FILE_SHARE_READ,
                nil,
                OPEN_EXISTING,//强烈注意:TMD
                0,
                0);
if hFile = INVALID_HANDLE_VALUE then Exit;
iSize:=Length(strWrite);
FileSeek(hFile,0,2);
FileWrite(hFile,strWrite[1],iSize);
FileWrite(hFile,iSize,Sizeof(iSize));
CloseHandle(hFile);
Result:=True;
end;
function  MyReadEncryptStrBySelf(const iMark:integer=18):String;
var
Str:String;
i:integer;
begin
Str:=MyReadOrgStrBySelf;
Result:='';
for i:=1 to Length(Str) do Result:=Result+Chr(Ord(Str[i])+iMark);
end;
function  MyWriteEncryptStrToFile(const FileName,strWrite:string;const iMark:integer=18):Boolean;
var
Str:String;
i:integer;
begin
Result:=False;                            
Str:='';
for i:=1 to Length(strWrite) do Str:=Str+Chr(Ord(strWrite[i])-iMark);
Result:=MyWriteOrgStrToFile(FileName,Str);
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -