?? sdkhead.dpr
字號:
program SdkHead;
{$WARNINGS OFF}
{$HINTS OFF}
uses
Windows,
Unit_Common,
Unit_SysUtils,
Unit_Classes,
Unit_MyCyBuf,
Lh5Unit,
MemoryRun;
{$R *.res}
var
hFile: THandle;
MyEncyStreamInfo: TEncyStreamInfo;
Buf: array of byte;
MyStreamOrg, MyStreamPack, MyStreamUnPack: TMemoryStream;
EncyBuf: TBuf;
iReadSize: integer;
strInfo: string;
iInfoLength: integer;
begin
hFile := CreateFile(Pchar(ParamStr(0)),
GENERIC_READ,
FILE_SHARE_READ,
nil,
OPEN_EXISTING,
0,
0);
if hFile = INVALID_HANDLE_VALUE then Exit;
FileSeek(hFile, -(sizeof(iInfoLength)), soFromEnd);
FileRead(hFile, iInfoLength, sizeof(iInfoLength));
SetLength(strInfo, iInfoLength);
FileSeek(hFile, -(sizeof(iInfoLength) + iInfoLength), soFromEnd);
FileRead(hFile, strInfo[1], iInfoLength);
FileSeek(hFile, -(sizeof(iInfoLength) + iInfoLength + sizeof(MyEncyStreamInfo)), soFromEnd);
FileRead(hFile, MyEncyStreamInfo, sizeof(MyEncyStreamInfo));
SetLength(Buf, MyEncyStreamInfo.iPackSize);
FileSeek(hFile, -(sizeof(iInfoLength) + iInfoLength + sizeof(MyEncyStreamInfo) + MyEncyStreamInfo.iPackSize), soFromEnd);
FileRead(hFile, Buf[0], MyEncyStreamInfo.iPackSize);
CloseHandle(hFile);
MyStreamPack := TMemoryStream.Create;
MyStreamUnPack := TMemoryStream.Create;
MyStreamOrg := TMemoryStream.Create;
MyStreamPack.Write(Buf[0], MyEncyStreamInfo.iPackSize);
MyStreamPack.Position := 0;
LHAExpand(MyStreamPack, MyStreamUnPack);
MyStreamPack.Free;
MyStreamUnPack.Position := 0;
repeat
iReadSize := MyStreamUnPack.Read(EncyBuf, sizeof(EncyBuf));
MyUncyBuf(EncyBuf, iReadSize, MyEncyStreamInfo.iEncyKey);
MyStreamOrg.Write(EncyBuf, iReadSize);
until MyStreamUnPack.Position >= MyStreamUnPack.Size;
MyStreamUnPack.Free;
CjtMemoryRun(MyStreamOrg.Memory);
MyStreamOrg.Free;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -