从网上找了篇代码改了改
function Main(dwEntryPoint: Pointer): longword; stdcall;//程序入口,注入后执行的代码
begin
//添加执行的程序
Result := 0;
end;procedure Inject(ProcessHandle: longword; EntryPoint: pointer);
var
Module, NewModule: Pointer;
Size, BytesWritten, TID: longword;
begin
Module := Pointer(GetModuleHandle(nil));
Size := PImageOptionalHeader(Pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
VirtualFreeEx(ProcessHandle, Module, 0, MEM_RELEASE);
NewModule := VirtualAllocEx(ProcessHandle, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(ProcessHandle, NewModule, Module, Size, BytesWritten);
CreateRemoteThread(ProcessHandle, nil, 0, EntryPoint, Module, 0, TID);
end;
//
procedure TForm1.Button1Click(Sender: TObject);
var
ProcessHandle, PID: longword;
fid:thandle;
begin
GetWindowThreadProcessId(FindWindow('Shell_TrayWnd', nil), @PID);//获取
ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);//打开进程
Inject(ProcessHandle, @Main);//插入代码
CloseHandle(ProcessHandle);//关闭线程句柄
end;
怎么一执行就有错误,把explore.exe都关了
那里有错误啊?