📄 jwanspapi.pas
字号:
const lpServiceInfo: SERVICE_INFOW; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetServiceW}
{$IFDEF UNICODE}
function SetService(dwNameSpace, dwOperation, dwFlags: DWORD;
const lpServiceInfo: SERVICE_INFOW; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetService}
{$ELSE}
function SetService(dwNameSpace, dwOperation, dwFlags: DWORD;
const lpServiceInfo: SERVICE_INFOA; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
var lpdwStatusFlags: DWORD): Integer; stdcall;
{$EXTERNALSYM SetService}
{$ENDIF}
function GetServiceA(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPSTR;
dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetServiceA}
function GetServiceW(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPWSTR;
dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetServiceW}
{$IFDEF UNICODE}
function GetService(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPWSTR;
dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetService}
{$ELSE}
function GetService(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPSTR;
dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
{$EXTERNALSYM GetService}
{$ENDIF}
implementation
const
nsplib = 'wsock32.dll';
{$IFDEF DYNAMIC_LINK}
var
_EnumProtocolsA: Pointer;
function EnumProtocolsA;
begin
GetProcedureAddress(_EnumProtocolsA, nsplib, 'EnumProtocolsA');
asm
mov esp, ebp
pop ebp
jmp [_EnumProtocolsA]
end;
end;
{$ELSE}
function EnumProtocolsA; external nsplib name 'EnumProtocolsA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_EnumProtocolsW: Pointer;
function EnumProtocolsW;
begin
GetProcedureAddress(_EnumProtocolsW, nsplib, 'EnumProtocolsW');
asm
mov esp, ebp
pop ebp
jmp [_EnumProtocolsW]
end;
end;
{$ELSE}
function EnumProtocolsW; external nsplib name 'EnumProtocolsW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_EnumProtocols: Pointer;
function EnumProtocols;
begin
GetProcedureAddress(_EnumProtocols, nsplib, 'EnumProtocolsW');
asm
mov esp, ebp
pop ebp
jmp [_EnumProtocols]
end;
end;
{$ELSE}
function EnumProtocols; external nsplib name 'EnumProtocolsW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_EnumProtocols: Pointer;
function EnumProtocols;
begin
GetProcedureAddress(_EnumProtocols, nsplib, 'EnumProtocolsA');
asm
mov esp, ebp
pop ebp
jmp [_EnumProtocols]
end;
end;
{$ELSE}
function EnumProtocols; external nsplib name 'EnumProtocolsA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_GetAddressByNameA: Pointer;
function GetAddressByNameA;
begin
GetProcedureAddress(_GetAddressByNameA, nsplib, 'GetAddressByNameA');
asm
mov esp, ebp
pop ebp
jmp [_GetAddressByNameA]
end;
end;
{$ELSE}
function GetAddressByNameA; external nsplib name 'GetAddressByNameA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetAddressByNameW: Pointer;
function GetAddressByNameW;
begin
GetProcedureAddress(_GetAddressByNameW, nsplib, 'GetAddressByNameW');
asm
mov esp, ebp
pop ebp
jmp [_GetAddressByNameW]
end;
end;
{$ELSE}
function GetAddressByNameW; external nsplib name 'GetAddressByNameW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_GetAddressByName: Pointer;
function GetAddressByName;
begin
GetProcedureAddress(_GetAddressByName, nsplib, 'GetAddressByNameW');
asm
mov esp, ebp
pop ebp
jmp [_GetAddressByName]
end;
end;
{$ELSE}
function GetAddressByName; external nsplib name 'GetAddressByNameW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_GetAddressByName: Pointer;
function GetAddressByName;
begin
GetProcedureAddress(_GetAddressByName, nsplib, 'GetAddressByNameA');
asm
mov esp, ebp
pop ebp
jmp [_GetAddressByName]
end;
end;
{$ELSE}
function GetAddressByName; external nsplib name 'GetAddressByNameA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_GetTypeByNameA: Pointer;
function GetTypeByNameA;
begin
GetProcedureAddress(_GetTypeByNameA, nsplib, 'GetTypeByNameA');
asm
mov esp, ebp
pop ebp
jmp [_GetTypeByNameA]
end;
end;
{$ELSE}
function GetTypeByNameA; external nsplib name 'GetTypeByNameA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetTypeByNameW: Pointer;
function GetTypeByNameW;
begin
GetProcedureAddress(_GetTypeByNameW, nsplib, 'GetTypeByNameW');
asm
mov esp, ebp
pop ebp
jmp [_GetTypeByNameW]
end;
end;
{$ELSE}
function GetTypeByNameW; external nsplib name 'GetTypeByNameW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_GetTypeByName: Pointer;
function GetTypeByName;
begin
GetProcedureAddress(_GetTypeByName, nsplib, 'GetTypeByNameW');
asm
mov esp, ebp
pop ebp
jmp [_GetTypeByName]
end;
end;
{$ELSE}
function GetTypeByName; external nsplib name 'GetTypeByNameW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_GetTypeByName: Pointer;
function GetTypeByName;
begin
GetProcedureAddress(_GetTypeByName, nsplib, 'GetTypeByNameA');
asm
mov esp, ebp
pop ebp
jmp [_GetTypeByName]
end;
end;
{$ELSE}
function GetTypeByName; external nsplib name 'GetTypeByNameA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_GetNameByTypeA: Pointer;
function GetNameByTypeA;
begin
GetProcedureAddress(_GetNameByTypeA, nsplib, 'GetNameByTypeA');
asm
mov esp, ebp
pop ebp
jmp [_GetNameByTypeA]
end;
end;
{$ELSE}
function GetNameByTypeA; external nsplib name 'GetNameByTypeA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetNameByTypeW: Pointer;
function GetNameByTypeW;
begin
GetProcedureAddress(_GetNameByTypeW, nsplib, 'GetNameByTypeW');
asm
mov esp, ebp
pop ebp
jmp [_GetNameByTypeW]
end;
end;
{$ELSE}
function GetNameByTypeW; external nsplib name 'GetNameByTypeW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_GetNameByType: Pointer;
function GetNameByType;
begin
GetProcedureAddress(_GetNameByType, nsplib, 'GetNameByTypeW');
asm
mov esp, ebp
pop ebp
jmp [_GetNameByType]
end;
end;
{$ELSE}
function GetNameByType; external nsplib name 'GetNameByTypeW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_GetNameByType: Pointer;
function GetNameByType;
begin
GetProcedureAddress(_GetNameByType, nsplib, 'GetNameByTypeA');
asm
mov esp, ebp
pop ebp
jmp [_GetNameByType]
end;
end;
{$ELSE}
function GetNameByType; external nsplib name 'GetNameByTypeA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_SetServiceA: Pointer;
function SetServiceA;
begin
GetProcedureAddress(_SetServiceA, nsplib, 'SetServiceA');
asm
mov esp, ebp
pop ebp
jmp [_SetServiceA]
end;
end;
{$ELSE}
function SetServiceA; external nsplib name 'SetServiceA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_SetServiceW: Pointer;
function SetServiceW;
begin
GetProcedureAddress(_SetServiceW, nsplib, 'SetServiceW');
asm
mov esp, ebp
pop ebp
jmp [_SetServiceW]
end;
end;
{$ELSE}
function SetServiceW; external nsplib name 'SetServiceW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_SetService: Pointer;
function SetService;
begin
GetProcedureAddress(_SetService, nsplib, 'SetServiceW');
asm
mov esp, ebp
pop ebp
jmp [_SetService]
end;
end;
{$ELSE}
function SetService; external nsplib name 'SetServiceW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_SetService: Pointer;
function SetService;
begin
GetProcedureAddress(_SetService, nsplib, 'SetServiceA');
asm
mov esp, ebp
pop ebp
jmp [_SetService]
end;
end;
{$ELSE}
function SetService; external nsplib name 'SetServiceA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
{$IFDEF DYNAMIC_LINK}
var
_GetServiceA: Pointer;
function GetServiceA;
begin
GetProcedureAddress(_GetServiceA, nsplib, 'GetServiceA');
asm
mov esp, ebp
pop ebp
jmp [_GetServiceA]
end;
end;
{$ELSE}
function GetServiceA; external nsplib name 'GetServiceA';
{$ENDIF DYNAMIC_LINK}
{$IFDEF DYNAMIC_LINK}
var
_GetServiceW: Pointer;
function GetServiceW;
begin
GetProcedureAddress(_GetServiceW, nsplib, 'GetServiceW');
asm
mov esp, ebp
pop ebp
jmp [_GetServiceW]
end;
end;
{$ELSE}
function GetServiceW; external nsplib name 'GetServiceW';
{$ENDIF DYNAMIC_LINK}
{$IFDEF UNICODE}
{$IFDEF DYNAMIC_LINK}
var
_GetService: Pointer;
function GetService;
begin
GetProcedureAddress(_GetService, nsplib, 'GetServiceW');
asm
mov esp, ebp
pop ebp
jmp [_GetService]
end;
end;
{$ELSE}
function GetService; external nsplib name 'GetServiceW';
{$ENDIF DYNAMIC_LINK}
{$ELSE}
{$IFDEF DYNAMIC_LINK}
var
_GetService: Pointer;
function GetService;
begin
GetProcedureAddress(_GetService, nsplib, 'GetServiceA');
asm
mov esp, ebp
pop ebp
jmp [_GetService]
end;
end;
{$ELSE}
function GetService; external nsplib name 'GetServiceA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -