求VC导出内存所有数据的源码!!

Jeking217 2012-04-16 10:05:03
自己琢磨了很久,也在网上找了很多资料,一直没有找到可以导出内存数据的方法!
哪位大侠有相关源码不?或者相关资料也可以,谢谢!!不慎感激…
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jeking217 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

你不是要实时的进程数据那是要什么
winhex提供的就是实时的数据
其原理也就是ReadProcessMemory
[/Quote]

我是想要内存的实时数据,你那有可以导出内存所有数据的源码不,我想模拟winhex那样,把内存数据可以导出来,自己做分析!!
Red_angelX 2012-04-16
  • 打赏
  • 举报
回复
你不是要实时的进程数据那是要什么
winhex提供的就是实时的数据
其原理也就是ReadProcessMemory
Jeking217 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

ReadProcessMemory
[/Quote]

这个方法读取到的内存数据,好像是实模式下的进程数据!!
Jeking217 2012-04-16
  • 打赏
  • 举报
回复
信息_码民,谢谢你的回复,可以给我一个能运行的源码不?我的邮箱:jeking217@163.com
Red_angelX 2012-04-16
  • 打赏
  • 举报
回复
ReadProcessMemory
蔡袅 2012-04-16
  • 打赏
  • 举报
回复
首先搜索坐标地址
找到改变这个地址的代码
修改代码让他跳到自己的代码中运行
在程序的空白段加入自己的代码,当然要补上被替换了的那句,还有修改了寄存器,必须先PUSH,再POP



------------------------------------------------------------------------------



CProcess m_process;
bool m_ret=m_process.FindProcess("FortressII");
if (m_ret)
{
BYTE tank1xL = m_process.ReadByte(0x00470000);
BYTE tank1xR = m_process.ReadByte(0x00470001);
WORD tank1x = tank1xL+tank1xR*256;
temp = tank1x;
str.Format("%d",temp);
m_tank1x=str;
UpdateData(FALSE);
return TRUE;
}
else return FALSE;


-----------------------------------------------------------------------------





HANDLE CProcess::OpenProcess(char *p_ClassName, char *p_WindowTitle)
{
HWND hWindow;
DWORD pid;

hWindow = FindWindow(p_ClassName, p_WindowTitle);
if (hWindow) {
GetWindowThreadProcessId(hWindow, &pid);
return ::OpenProcess(PROCESS_ALL_ACCESS, false, pid);
}
return NULL;
}

bool CProcess::FindProcess(char *p_WindowTitle)
{
if (m_hProcess == NULL) {
m_hProcess = this->OpenProcess(NULL, p_WindowTitle);
if (m_hProcess)
m_bGameRunning = true;
return m_bGameRunning;
}
else
return false;
}

BYTE CProcess::ReadByte(DWORD p_Address)
{
DWORD bytes;
BYTE tmpValue;

if (m_bGameRunning) {
if (ReadProcessMemory(m_hProcess, (void*)p_Address,
(void *)&tmpValue, 1, &bytes) == 0)
return 0;
else
return tmpValue;
}
return 0;
}
Jeking217 2012-04-16
  • 打赏
  • 举报
回复
就像winhex那样,可以把内存的数据全部读取出来!!这是我目前遇到最大的瓶颈,哪为大虾帮帮忙,指点迷津
Jeking217 2012-04-16
  • 打赏
  • 举报
回复
不是作业!你会读取物理内存么??
JackPan 2012-04-16
  • 打赏
  • 举报
回复
作业党。。。。。。。。。。。。???
赵4老师 2012-04-16
  • 打赏
  • 举报
回复
MSDN98中的例子walker又名pwalk。完整列出指定进程的内存使用情况,显示进程地址空间内容,装载哪些DLL,代码、数据、堆栈段分配在何处,可以用来检测内存泄漏,监测内存使用。
http://download.csdn.net/detail/zhao4zhong1/3667896

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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