连连看外挂制作 —— 修改分数(1)

标 题: 连连看外挂制作 —— 修改分数(1)
作 者:
Koma
时 间: 2009-12-10 21:10
链 接:
http://blog.csdn.net/wangningyu/archive/2009/12/10/4981726.aspx

 

1、准备工具:

 

     Visual C++6.0 、Cheat Engine5.4、FlexEdit

 

2、查找内存:

 

     打开连连看,我们可以看见初始化是1000 分,于是我们查找遍历进程中内存数值为1000 的地址,如下图:

连连看外挂制作 —— 修改分数(1)_第1张图片

 

可以看到很多素质为1000 的内存地址(如果你以前也喜欢用金山游侠之类的工具来修改自己电脑里单机游戏数值的,请直接跳过这里)

 

随便清楚几个,查看数据变化,可以锁定到内存地址:

连连看外挂制作 —— 修改分数(1)_第2张图片

 

好,内存偏移地址找到了就比较好办!因为剩下的无非就是OpenProcess、WriteProcessMemory。

 

3、相关代码:

 

     如果上面的明白了,那下面的代码是应该是比较容易理解的!

 

     新建一个基于对话框工程,添加一个EditBox并关联DWORD类型变量m_dwScore,代码如下:

 

void CLinkDlg::OnOK() { // TODO: Add extra validation here HWND hWnd; HANDLE hLink; DWORD dwPid; DWORD dwData; // 取出分数 UpdateData(TRUE); dwData = m_dwScore; // 查找窗口句柄 hWnd = ::FindWindow(NULL,"水晶连连看"); if(hWnd == NULL) { MessageBox("水晶连连看没有运行!"); return; } // 获取进程PID、打开进程 GetWindowThreadProcessId(hWnd,&dwPid); hLink = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_TERMINATE | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE,FALSE,dwPid); if(hLink) { // 修改内存数值 WriteProcessMemory(hLink,(LPVOID)0x00B03DC0,&dwData,2,NULL); Sleep(500); } CloseHandle(hLink); CloseHandle(hWnd); MessageBox("修改成功!"); }


4、运行效果

 

 

当然,这些都只是简单游戏外挂制作的基础知识,毕竟这方面涉及到的知识面实在是太广,又没有太多的书籍可参考,所以我们会觉得措手不及!

 

后面会介绍如何通过代码来修改它时间限制,这个时间限制涉及到四个地址,如果你直接按上面的方法修改是没有用的......

 

预知后事如何,请听下回分解~~~~~  ^_^

你可能感兴趣的:(validation,null,Access,工具,金山,单机游戏)