1、013-xdbg.CE分析游戏lua解释器指针L指针2021在线班郁金香灬老师 QQ 150330575交流群:158280115学习目标: xdbg.CE分析游戏lua解释器指针L指针 wow.exe+93F78C / CPAGE00.cpp: 实现文件/#include pch.h#include C011_C012.h#include CPAGE00.h#include afxdialogex.h/ CPAGE00 对话框IMPLEMENT_DYNAMIC(CPAGE00, CDialogEx)/ for i=1,6,1 do print(i,GetTime() end CPAGE00:
2、CPAGE00(CWnd* pParent /*=nullptr*/): CDialogEx(IDD_DIALOG1, pParent), m_lua_str1(_T(CastSpellByID(168)CPAGE00:CPAGE00()void CPAGE00:DoDataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, m_lua_str1);BEGIN_MESSAGE_MAP(CPAGE00, CDialogEx)ON_BN_CLICKED(IDC_BUTTON1_DOST
3、RING, &CPAGE00:OnBnClickedButton1Dostring)ON_EN_CHANGE(IDC_EDIT1, &CPAGE00:OnEnChangeEdit1)END_MESSAGE_MAP()#includestd:string luacmd;/ wow.exe+93F78CUINT_PTR L指针 = R4(0x00D3F78C);/ 0x1794F518;/0x1414C9C0;/ 0x175E0EB0; /明天分析L指针#define 主线程定时器ID 1236VOID CALLBACK 执行脚本Proc(HWND arg1, UINT arg2, UINT_PT
4、R arg3_id, DWORD arg4)/游戏主线程空间KillTimer(arg1, 主线程定时器ID);/char buf233;/sprintf_s(buf, L指针=%Xn, L指针);/MessageBoxA(0, buf, 信息, MB_OK);_tryluaL_dostring(L指针, luacmd.c_str();_except (1)MessageBoxA(0,可能是L指针需要更新,出错, 0);void CPAGE00:OnBnClickedButton1Dostring()/ TODO: 在此添加控件通知处理程序代码this-UpdateData(TRUE);lua
5、cmd = m_lua_str1.GetBuffer();HWND 游戏窗口句柄 = :FindWindowA(GxWindowClassD3d, 魔兽世界);if (游戏窗口句柄 = NULL) MessageBox(ERROR 未找到游戏窗口);:SetTimer(游戏窗口句柄, 主线程定时器ID, 1, 执行脚本Proc);void CPAGE00:OnEnChangeEdit1()/ TODO: 如果该控件是 RICHEDIT 控件,它将不/ 发送此通知,除非重写 CDialogEx:OnInitDialog()/ 函数并调用 CRichEditCtrl().SetEventMask(),/ 同时将 ENM_CHANGE 标志“或”运算到掩码中。/ TODO: 在此添加控件通知处理程序代码