远程内存申请的问题,懂外挂的来下

Email144 2012-01-26 10:23:52
我在远程进程申请了段内存,然后通过注入代码的方法给这段内存赋值游戏数据,然后将那段数据显示在本地进程中,请问怎么实现?
我试着实现过,但由于存放申请内存的指针是在本地进程中,所以会赋值失败,因为我要将数据在对话框显示,又没有注入DLL,有什么好的办法实现啊啊
...全文
202 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Email144 2012-02-01
  • 打赏
  • 举报
回复

void GameInfo()
{
DWORD g_Hp,g_Mp;
_asm
{
mov eax,dword ptr ds:[0x6FAE54CC]
mov ebx,[eax+0x3f4]
mov eax,[ebx+0x248]
mov g_Hp,eax
mov eax,[ebx+0x250]
mov g_Mp,eax
}
}

void WriteRomateData(LPVOID code,LPVOID &mFuncAddr,int size)
{
DWORD NumberOfByte;
mFuncAddr = VirtualAllocEx(hProcess,NULL,size,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProcess,pDate,code,size, &NumberOfByte);
}

void GameDlg::OnButton()
{
// TODO: Add your control notification handler code here
LPVOID mFuncAddr;
WriteRomateData(GameInfo,mFuncAddr 130);
DWORD NumberOfByte;
HANDLE hThread = NULL;
HWND hWnd = ::FindWindow(NULL,"Warcraft III");
if(hWnd == NULL)
{ return;
}
DWORD ProcessId = NULL;
GetWindowThreadProcessId(hWnd,&ProcessId)
handle hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessId);
hThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)mFuncInfo,
NULL,0,&NumberOfByte);
DWORD Hp,Mp,byread;
ReadProcessMemory(hProcess,???,&Hp,4,&byread);
//???注意这里是要读远程的地址,数据已经通过远程注入代码得到,但是这个值是在远程中,
//现在是怎样能得到一个两者共同的指针,就能读取出来了

}
xiaohuh421 2012-01-31
  • 打赏
  • 举报
回复
到<广海>或者<看雪>论坛看看吧,那里专交流这些东西,也有很多资源的
OrangeIceWater 2012-01-31
  • 打赏
  • 举报
回复
你在目标进程里 读它的数据,数据是它的,内存地址也是它的,当然不可以直接拿过来就用,说不定在你的进程里相同的地址里保存却是某些不可读的数据
使用readprocessmemory 将目标进程的内存地址 映射到本地进程就可以读了;
Email144 2012-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 csx007700 的回复:]
引用楼主 email144 的回复:
我试着实现过,但由于存放申请内存的指针是在本地进程中,所以会赋值失败


不太理解你的意思啊

远程进程的内存操作无非就是
VirtualAllocEx
WriteProcessMemory
ReadProcessMemory

难道你直接访问了VirtualAllocEx返回的地址吗?...... 用WriteProcessMem……
[/Quote]
是的,我在远程进程访问了这个地址
RLib 2012-01-27
  • 打赏
  • 举报
回复
修改注入的代码,把需要的数据写到中转文件,然后本地进程去读取。
csx007700 2012-01-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 email144 的回复:]
我试着实现过,但由于存放申请内存的指针是在本地进程中,所以会赋值失败
[/Quote]

不太理解你的意思啊

远程进程的内存操作无非就是
VirtualAllocEx
WriteProcessMemory
ReadProcessMemory

难道你直接访问了VirtualAllocEx返回的地址吗?...... 用WriteProcessMemory和ReadProcessMemory

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧