怎么把一个程序进程注入到另一个程序进程中(坐等,可用马上结) 如题,本人菜鸟,望给个具体方法,谢谢- - 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接注入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; //在Exp进程的内存范围内分配一个足够长度的内存 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; 设计时双击按钮出现的错误框--有点奇怪的现状 数据库恢复出错,大家帮忙啊,在线等! 有关计算机控制的问题!!!急急急!!!在线等!!! ···用InstallShield6.22打包问题?··· DELPHI的不足之处同几个不明白问题! 关于文本文件中,对其中数据查找的问题 [请教]DateTimePicker,如何设置它的日历的展开方向? 如何进行十六进制编辑? 有关label消失的问题 to BCB(:): 你知道outbar怎样注册吗? 关于线程引发Access violation at address的问题 有关加密和字符类型的问题
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;
//在Exp进程的内存范围内分配一个足够长度的内存
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;