免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:易道云信息技术研究院
上一个内容:67.利用FreeLibrary函数实现无痕注入的核心代码
分析工具主要做的是 游戏公共内容分析(公共内容指的是注入核心三大仙 注入、CALL、HOOK,所有事情都为围绕它们三个进行的服务)、游戏对象分析
游戏公共内容分析:又分游戏变量分析与记录,一个辅助是一定会对全局变量进行操作的比如基址、游戏函数分析并记录、游戏HOOK分析记录、通过分析结果生产c++代码。
游戏对象分析:游戏对象成员变量分析、游戏对象成员函数分析、分析结果生产c++代码
然后分析又不能只是分析还要通过特征码把它的位置定位出来,一个进程的内存地址是不固定的比如游戏一更新内存地址就会变这时不能重新把游戏的地址再写到代码中重新编译要让它通过特征码定位到
以上就是游戏分析工具的功能
以 67.利用FreeLibrary函数实现无痕注入的核心代码 它的代码为基础进行修改
CWndINC.cpp文件的修改
void CWndINC::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if (wndProcess.DoModal() == IDOK) {
UExe = wndProcess.wExe;
modPage[0].GetModList(wndProcess.dPid);
UpdateData(FALSE);
}
}
void CWndINC::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
if (wndProcess.DoModal() == IDOK) {
UExe = wndProcess.wExe;
modPage[1
].GetModList(wndProcess.dPid);
UpdateData(FALSE);
}
}
CWindProcess.cpp文件的修改
void CWindProcess::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
NM_LISTVIEW* View = (NM_LISTVIEW*)pNMHDR;
if (View->iItem != -1) {
wPid = ProcessLst.GetItemText(View->iItem, 0);
wExe = ProcessLst.GetItemText(View->iItem, 1);
// CString 转 DWORD
dPid = wcstoul(wPid.GetBuffer(), 0, 10);
OnOK();
}
}
CWindProcess.h文件的修改
#pragma once
// CWindProcess 对话框
class CWindProcess : public CDialogEx
{
DECLARE_DYNAMIC(CWindProcess)
public:
CWindProcess(CWnd* pParent = nullptr); // 标准构造函数
virtual ~CWindProcess();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_PROCESS_LST };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
CListCtrl ProcessLst;
BOOL IsFirst;
CString wPid;
CString wExe;
DWORD dPid;
public:
virtual BOOL OnInitDialog();
void RefreshProcess();
afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnLvnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult);
};
GAMEHACKER2Dlg.h文件的修改
void OnOK();
void OnCancel();
afx_msg void OnClose();
GAMEHACKER2Dlg.cpp文件的修改
void CGAMEHACKER2Dlg::OnOK()
{
}
void CGAMEHACKER2Dlg::OnCancel()
{
}
void CGAMEHACKER2Dlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialogEx::OnCancel();
}