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

Email144 2012-01-26 10:23:52
我在远程进程申请了段内存,然后通过注入代码的方法给这段内存赋值游戏数据,然后将那段数据显示在本地进程中,请问怎么实现?
我试着实现过,但由于存放申请内存的指针是在本地进程中,所以会赋值失败,因为我要将数据在对话框显示,又没有注入DLL,有什么好的办法实现啊啊
...全文
258 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

内容概要:本文围绕基于A星(A*)算法的螺旋式全覆盖路径规划展开研究,提出一种结合A*全局搜索能力与螺旋遍历策略的栅格地图路径规划方法,利用Matlab实现机器人或无人机在指定区域内的无遗漏、高效覆盖路径生成。研究重点在于优化传统往返式扫描路径中存在的转向频繁、路径不连续等问题,通过引入螺旋机制提升路径的连贯性与遍历效率,适用于复杂环境中需要系统性作业的场景。文中提供了完整的Matlab代码实现,便于读者复现与改进算法。; 适合人群:具备一定Matlab编程基础,从事 robotics、自动化、人工智能及相关领域的科研人员与工程技术人员,尤其适合研究生及以上学历或有相关项目开发经验的专业人士。; 使用场景及目标:①应用于农业自动化巡检、环境监测、仓库盘点、无人机航测等需全覆盖作业的场景;②帮助研究人员深入理解A*算法在全覆盖路径规划中的扩展应用,掌握螺旋策略与经典算法融合的设计思路;③为智能移动设备的自主导航与任务规划提供可复用的算法模型与仿真验证手段。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注A*算法与螺旋遍历逻辑的协同机制,通过调整参数与地图环境验证算法性能,并参考同类路径规划案例深化对智能优化策略的理解。

15,465

社区成员

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

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