system.pas
来自「delphi编写1K的下载者,装了D7后,直接运行那个BAT文件,就可以运行了」· PAS 代码 · 共 78 行
PAS
78 行
unit System;
interface
procedure _InitExe;
procedure _HandleFinally;
procedure _halt0;
type
TGUID = record
D1: LongWord;
D2: Word;
D3: Word;
D4: array[0..7] of Byte;
end;
const
Kernel32 = 'kernel32.dll';
User32 = 'user32.dll';
UrlMonLib = 'URLMON.DLL';
var
HKernel32: LongWord;
HUser32: LongWord;
HUrlMonLib:LongWord;
type
TFNExitProcess = procedure(uExitCode: LongWord); stdcall;
var
ExitCode: LongWord;
ExitProcess: TFNExitProcess;
function LoadLibraryA(lpLibFileName: PAnsiChar): LongWord; stdcall;
function LoadLibraryW(lpLibFileName: PWideChar): LongWord; stdcall;
function LoadLibrary(lpLibFileName: PChar): LongWord; stdcall;
function GetProcAddress(hModule: LongWord; lpProcName: PChar): Pointer; stdcall;
implementation
function LoadLibraryA; external kernel32 name 'LoadLibraryA';
function LoadLibraryW; external kernel32 name 'LoadLibraryW';
function LoadLibrary; external kernel32 name 'LoadLibraryA';
function GetProcAddress; external kernel32 name 'GetProcAddress';
procedure _InitExe;
const
PExitProcess: PChar = 'ExitProcess';
PKernelModul: PChar = Kernel32;
PUserModul: PChar = User32;
PHUrlMonLib:Pchar =UrlMonLib;
asm
PUSH PExitProcess
PUSH PHUrlMonLib
CALL LoadLibrary
MOV HUrlMonLib, EAX
PUSH PUserModul
CALL LoadLibrary
MOV HUser32, EAX
PUSH PKernelModul
CALL LoadLibrary
MOV HKernel32, EAX
PUSH EAX
CALL GetProcAddress
MOV ExitProcess, EAX
end;
procedure _HandleFinally;
asm
end;
procedure _halt0;
asm
PUSH ExitCode
CALL ExitProcess
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?