首页
社区
课程
招聘
[求助]内存数据修改[非常头痛]
发表于: 2009-8-3 02:25 5223

[求助]内存数据修改[非常头痛]

2009-8-3 02:25
5223
var

hwin, pid: DWORD;

hprocess: DWORD;

begin

hwin := FindWindow(nil,'Test');

GetWindowThreadProcessId(hwin, pid);

hprocess := OpenProcess(PROCESS_ALL_ACCESS, False, pid);

if WriteProcessMemory(hProcess ,Pointer($00401333),@newdata,1 ,BytesRead ) then

begin

CloseHandle(hProcess);

Form1.Label2.Caption:='OK ';

end

else

begin

CloseHandle(hProcess);

Form1.Label2.Caption:='NO ';

end;

end;

现在这个方法是通过窗口句柄来获取PID 在实现内存数据修改

现在遇到一个大难题 如果我想通过进程名来实现取PID 在去实现内存数据修改 如何去修改这段代码 希望大牛们帮帮忙!~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
不就是枚举进程嘛,Toolhelp/PSAPI,那么多方法,网上随便一搜一大堆。问问题也问不到重点上~
2009-8-3 07:21
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
大帅哥 可否能给个例子 感激不尽!~
2009-8-3 08:48
0
雪    币: 267
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
CreateToolhelp32Snapshot();
2009-8-3 09:47
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
或者EnumProcess()
2009-8-3 10:00
0
雪    币: 612
活跃值: (996)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
逆流师傅...

function GetPIDByProgramName(const APName: string): DWORD;
var
     isFound: boolean;
     AHandle:THandle;
     ProcessEntry32: TProcessEntry32;
begin
     try
     Result := 0;
     AHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     ProcessEntry32.dwSize := Sizeof(ProcessEntry32);
     isFound := Process32First(AHandle, ProcessEntry32);
     while isFound do
     begin
         if (UpperCase(StrPas(ProcessEntry32.szExeFile)) = UpperCase(APName)) then
         begin
         Result := ProcessEntry32.th32ProcessID;
         break;
         end;
         isFound := Process32Next(AHandle, ProcessEntry32);
     end;
     finally
     CloseHandle(AHandle);
     end;
end;

var

pid: DWORD;

hprocess: DWORD;

begin

pid=GetPIDByProgramName("notepad.exe");

hprocess := OpenProcess(PROCESS_ALL_ACCESS, False, pid);

if (hprocess>0) then

begin

if WriteProcessMemory(hProcess ,Pointer($00401333),@newdata,1 ,BytesRead ) then

begin

CloseHandle(hProcess);

Form1.Label2.Caption:='OK ';

end

else

begin

CloseHandle(hProcess);

Form1.Label2.Caption:='NO ';

end;

end;

end;
2009-8-3 11:31
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Z大侠 膜拜!~~
2009-8-5 15:26
0
游客
登录 | 注册 方可回帖
返回
//