1,183
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,TLHelp32;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetProcessID(ProcessName:string):TProcessEntry32;
var
lppe: TProcessEntry32;
found : boolean;
Hand : THandle;
P:DWORD;
s:string;
begin
FillChar(result,SizeOf(TProcessEntry32),0);
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
lppe.dwSize := Sizeof(lppe);
while found do
begin
s := string(lppe.szExeFile);
if lppe.th32ProcessID>0 then
p := lppe.th32ProcessID
else
p := 0;
if UpperCase(ExtractFileName(s))=UpperCase(ExtractFileName(ProcessName)) then
begin
GetProcessID:=lppe;
break;
end;
found := Process32Next(Hand,lppe);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s,x:integer;
hProcess: THandle;
PID:DWORD;
vNumberOfBytesWritten: DWORD;
Retlppe:TProcessEntry32;
begin
s:=500;
Retlppe := GetProcessID('zzllk.exe');// 查找'****.exe'进程ID
PID:=Retlppe.th32ProcessID;
if PID <> 0 then
begin
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False,PID);
WriteProcessMemory(hProcess,Pointer($0012FEC0), @s,4,PID);
end
else
begin
messagebox(0,'连连看4.1没有开启','错误',MB_OK)
end;
end;
end.
var
OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
ReturnLength: dword;
hToken: THandle;
Luid: int64;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
TokenPrivileges.Privileges[0].luid := Luid;
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
OldTokenPrivileges.Privileges[0].luid := Luid;
OldTokenPrivileges.PrivilegeCount := 1;
OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
end;