基本送分的!欢迎大家进来!!!

yiruirui0507 2010-06-10 09:41:41
void CZhensanDlg::OnButton1()
{
// TODO: Add your control notification handler code here
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,2772);
//读指定进程 内存数据
DWORD byread;
LPCVOID pbase=(LPCVOID)0x0E6C02FC;
LPVOID nbuffer=(LPVOID)&m_hp;
::ReadProcessMemory(processH,pbase,nbuffer,4,&byread);
UpdateData(false); //更新变量的值到编辑框

}

我建了一个基于对话框的MFC的EXE工程,上面添加了一个编辑框和按钮,给编辑框关联了一个变量UINT类型的m_hp,按钮的事件如上面所示。其中2772是我的魔兽进程ID,我 从任务管理器中看到的是2772,而0E6C02FC是我用CE察看到的魔兽真三国无双中存放诸葛亮血的地址(纯属个人学习娱乐,绝对没做任何坏事,其实我也没做坏事的能力,不要鄙视我,谢谢!)
在VC 6.0下成功编译,但是运行的时候编辑框里面什么都没有啊,请问问题出现在哪里,先说谢谢了!
...全文
180 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinrjldm 2010-06-28
  • 打赏
  • 举报
回复
没仔细研究,进城ID是否应为字符串格式
yiruirui0507 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 visualeleven 的回复:]
看看汪艳平的Windows程序设计中的那个修改内存数据的例子
[/Quote]

恩,是的,这本书我这里有的,再回头去啃!
yiruirui0507 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 tianhaixin 的回复:]
void CMoshowDlg::OnButton1()
{
// TODO: Add your control notification handler code here

HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,3588);
if(processH==NULL)
AfxMessageBox("打开失败!");……
[/Quote]

多谢,我仔细看看,再试验试验。
surf515 2010-06-18
  • 打赏
  • 举报
回复
嗯 也不会 友情帮楼主顶下~~
tianhaixin 2010-06-18
  • 打赏
  • 举报
回复
void CMoshowDlg::OnButton1()
{
// TODO: Add your control notification handler code here

HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,3588);
if(processH==NULL)
AfxMessageBox("打开失败!");
//读指定进程 内存数据
DWORD byread;
LPCVOID pbase=(LPCVOID)0x006C02FC;
LPVOID nbuffer=(LPVOID)&m_value;
::ReadProcessMemory(processH,pbase,nbuffer,4,&byread);
if(byread==0)
AfxMessageBox("读取失败!");
UpdateData(false); //更新变量的值到编辑框


}

我试了一下 程序没有问题,有可能的问题是:
1.进程打开失败(主要看进程ID号是否对)
2.读取内存失败(内存地址是否对)

上面的程序已测试,编辑框中可以显示数值(非0),只是我无法测试显示数值是否正确!
Eleven 2010-06-18
  • 打赏
  • 举报
回复
看看汪艳平的Windows程序设计中的那个修改内存数据的例子
zhangchao880123 2010-06-18
  • 打赏
  • 举报
回复
用Spy++ Lite 2.4 ,那个可以查控件句柄以及它的父句柄。
用FindWindow()和FindWindowEx()来查具体的句柄,边查边对照运行结果。
yiruirui0507 2010-06-18
  • 打赏
  • 举报
回复
期待高手的帮忙,已经等了好多天了,内心无比纠结.
successful_cy 2010-06-17
  • 打赏
  • 举报
回复
用spy++看看是否还有子窗口.handle的问题.
subfly 2010-06-11
  • 打赏
  • 举报
回复
顶一下而已,我正在学,但无法解决之
yunxiang_myx 2010-06-11
  • 打赏
  • 举报
回复
路过,帮顶。
langqilangwang 2010-06-10
  • 打赏
  • 举报
回复
我就是来 赚分的
kakaximodo 2010-06-10
  • 打赏
  • 举报
回复
没有操作表明你把数据写到编辑框里了啊
litaolilan 2010-06-10
  • 打赏
  • 举报
回复
我是冲着送分来的,还是不会
疯癫小程序 2010-06-10
  • 打赏
  • 举报
回复
。。。。。。。
朝三慕四 2010-06-10
  • 打赏
  • 举报
回复
每次运行的地址应该不一样吧????我不懂,随便说说!!!!PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hProcessSnap==INVALID_HANDLE_VALUE)
{
cout<<"CreateToolhelp32Snapshot调用失败!"<<endl;
return -1;
}
//遍历进程快照,轮流显示每个进程的信息
BOOL bmore=::Process32First(hProcessSnap,&pe32);
while(bmore)
{
cout<<"进程的名称:"<<pe32.szExeFile<<endl;
cout<<"进程的IDK号:"<<pe32.th32ProcessID<<endl;
bmore=::Process32Next(hProcessSnap,&pe32);
}
//释放
::CloseHandle(hProcessSnap);这是对进程进行拍照,得到的是十进制的进程ID号
afunti 2010-06-10
  • 打赏
  • 举报
回复
学习下¥¥
zy2015036 2010-06-10
  • 打赏
  • 举报
回复
进程的ID的话不应该是16进制,没必要加0x
yiruirui0507 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jennyvenus 的回复:]
2772还是0x2772?
[/Quote]

回答了!还是读取不出来!
yiruirui0507 2010-06-10
  • 打赏
  • 举报
回复
首先感谢你第一个回答,
void CZhensanDlg::OnButton1()
{
// TODO: Add your control notification handler code here
//WriteProcessMemory(
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,0x2772);
//读指定进程 内存数据
DWORD byread;
LPCVOID pbase=(LPCVOID)0x0E6C02FC;
LPVOID nbuffer=(LPVOID)&m_hp;
::ReadProcessMemory(processH,pbase,nbuffer,4,&byread);
UpdateData(false); //更新变量的值到编辑框

}
OX这个我加了也还是读取不出来内容啊?看来估计不是这个问题吧,这个只是一个进程ID。
加载更多回复(3)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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