1、先写一个假想的游戏客户端.
1.1、首先讲一下CALL的基本知识,在VC里新建一个窗口,并增加编辑框,关联一个控件类型的变量m_edit
1.2、然后添加如下代码
//血量
int BooldValue = 3000;
HWND edit_hwnd;
void addBlood()
{
BooldValue += 22;
CString strValue;
strValue.Format(_T("%d"), BooldValue); // 自动适配 ANSI/Unicode
::SetWindowText(edit_hwnd, strValue);
}
void CmyGameDlg::OnBnClickedBtnAddBlood()
{
// TODO: 在此添加控件通知处理程序代码
addBlood();
}
void decBlood()
{
BooldValue -= 22;
CString strValue;
strValue.Format(_T("%d"), BooldValue); // 自动适配 ANSI/Unicode
::SetWindowText(edit_hwnd, strValue);
}
void CmyGameDlg::OnBnClickedBtnDecBlood()
{
// TODO: 在此添加控件通知处理程序代码
decBlood();
}
2、用工具找CALL
2.1、用CE扫描血量,找到血量的基址,找到血量的基址是01193008,绿色的表述基址
2.2、用OD附加进程
2.3、用dd命令找到这个地址,下一个内存写入断点。
2.4、找到方法头部,
009F87E0 55 push ebp
2.5、使用代码注入器,向进程中注入call 009F87E0
总结:我们就实现了一个简单CALL的查找 关注公众号玄涅,有更多惊喜等着你。