外挂之路_第一个外挂
F2 下断点,
ctrl+g 表达式
ctrl+a 格式化代码
push 0
push 0
push 0
push 0
call 76A1FD1E
远程注入到进程中
关于OD不能附加正常的进程,点击xp兼容运行和管理运行就OK了
OD添加插件:
把CmdBar.dll 和 CmdBar.ini拷贝到plugin里面,重启OD
基址:010056A4
OD:
dd 010056A4 显示地址
下入内存访问断点,右键点数据
基址:
MOV DWORD PTR DS:[10056A4],ECX
利用spy++ 拦截COMMAND 菜单消息,获得菜单ID,
利用sendmessage,模拟单击菜单
读取其他进程的内存,
1.查找窗口句柄(FindWindow),
2.获得进程ID,GetWindowThreadProcessId(根据窗口句柄获得)
3.打开进程 OpenProcess
下面上代码:
m_hSaoLei = ::FindWindow(NULL,_T("扫雷")); if(m_hSaoLei == 0){ AfxMessageBox(_T("游戏未启动")); } // TODO: 在此添加额外的初始化代码 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void C第一个外挂Dlg::OnBnClickedButton1() { ::SendMessage(m_hSaoLei,WM_COMMAND,521,NULL); } void C第一个外挂Dlg::OnBnClickedButton2() { ::SendMessage(m_hSaoLei,WM_COMMAND,522,NULL); } void C第一个外挂Dlg::OnBnClickedButton3() { ::SendMessage(m_hSaoLei,WM_COMMAND,523,NULL); } void C第一个外挂Dlg::OnBnClickedButton4() { DWORD pId; ::GetWindowThreadProcessId(m_hSaoLei,&pId);//获得了进程的ID, HANDLE h_process = ::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pId);//进程句柄 INT buff; ::ReadProcessMemory(h_process,(LPCVOID)0x10056A4,&buff,4,NULL); CString str; str.Format(L"数据是%d",buff); AfxMessageBox(str); //关闭内核对象 CloseHandle(h_process); }

浙公网安备 33010602011771号