[读取目标内存和修改目标内存]
来源:互联网 发布:人工智能高清免费视频 编辑:程序博客网 时间:2024/05/23 01:36
写这篇的文章的初衷是,当时看到这种类型的觉得有意思。然后从网上看了很多前辈的文章,理了下思路。
留下此文,给那些后来的人留恋。天火玄月 //2013 /10/08 ,于广州。
CString DlgName="Step 2";
byte input12=8;
DWORD m_num=0;
//读取目标程序的内存数据
void CRMDlg::OnButton1()
{
// 1、FindWindow //获取窗口句柄
//2、GetWindowThreadProcessId //获取窗口进程ID
//3、OpenProcess //打开指定进程
//4、ReadProcessMemory //读指定进程 内存数据
//获取窗口句柄、
((CEdit*)GetDlgItem(IDC_EDIT2))->GetWindowText(DlgName);
if(DlgName=="\0")
MessageBox("输入的窗口名为空");
HWND gameh=::FindWindow(NULL,DlgName);
//获取窗口进程ID
DWORD processid;
::GetWindowThreadProcessId(gameh,&processid);
if(processid<1)
MessageBox("窗口没找到");
//打开指定进程
HANDLE processH=::OpenProcess(PROCESS_ALL_ACCESS,false,processid);
//读指定进程 内存数据
DWORD byread;
LPCVOID pbase=(LPCVOID)0x00962858;//读取当前的指针,强制转换为LPCVOID指针
LPVOID nbuffer=(LPVOID)&m_num; //保存当前的指针,强制转换为LPVOID指针
::ReadProcessMemory(processH,pbase,nbuffer,4,&byread);
//可以这样例如int a=123456;要显示123456可以使用itoa(a,new char,10)将a转化为char*类型,作为textout的参数就可以了
// MessageBox(itoa(processid,new char ,10),itoa(m_num,new char ,10));
UpdateData();
GetDlgItem(IDC_SHOW1)->SetWindowText(itoa(m_num,new char ,10));
UpdateData(false);
}
//修改目标程序的内存数据
void CRMDlg::OnButton2()
{
HWND gameh=::FindWindow(NULL,DlgName);
if (gameh==0) { return;} //没有找到游戏窗口
LPVOID acode=&m_input;
DWORD pid;
::GetWindowThreadProcessId(gameh,&pid);
DWORD byWriteSize;
HANDLE hp=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
//::WriteProcessMemory(hp,(LPCVOID)(0x00962858),(LPVOID)(acode),1,byWriteSize);//写入NOP代码
::WriteProcessMemory(hp,(LPVOID)0x00962858,&m_input,2,&byWriteSize);
}
//刷新窗体名称 。
void CRMDlg::OnChangeEdit2()
{
CString tt="TEst";
((CEdit*)GetDlgItem(IDC_EDIT2))->GetWindowText(tt);
SetWindowText(tt+"0");
}
- [读取目标内存和修改目标内存]
- 目标机的内存管理
- IAR 目标文件内存分配
- OPC 目标平台只能是 X86吗?--尝试读取或写入受保护的内存
- IAR之目标文件内存分配
- 目标
- 目标
- 目标
- 目标
- 目标
- 目标.....
- 目标
- 目标!
- 目标
- 目标
- 目标
- 目标
- 目标
- sqlserver 数据行统计,秒查语句
- ubuntu12.04之疑难杂症--broadcom无线网卡安装失败解决办法
- SQLSever--存储过程
- UVA 103 Stacking Boxes(最长增长子序列变形)
- CSDN博客给我带来的一些诱惑和选择机会
- [读取目标内存和修改目标内存]
- Java Thrift Server Sample
- hdu 3306 Another kind of Fibonacci 矩阵快速幂
- java 和c++关于默认构造函数的区别
- 内核模式与用户模式
- 估计我ife
- Windows、Ubuntu双系统重装windows系统后grub引导的修复及默认启动项的修改
- 右键-打开方式-选择程序-无法添加
- 实现一个简单的计算器