文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构协议型网络游戏外挂制作之APIHOOK
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
热点TOP10
·剖析备份个人数据十大注意事项
·BPEL的基本活动介绍
·BPEL模型基础
·VS2005视频教程之站点地图[视频]
·DB2数据库部分日常实用操作
·数据结构教程 第十五课 串的表示和实现
·MD5算法解释
·逆向思维 《魔兽世界》封包分析
·IE工具条插件Toolbar开发简介
·网游外挂编写完全攻略

协议型网络游戏外挂制作之APIHOOK

日期:2008年6月9日 作者: 查看:[大字体 中字体 小字体]



  上一节中我们说了外挂平台的搭建,我们做完了Hook.dll和wg.exe,但如何让wg.exe调用Hook.dll中的函数,可以自己查看CB的教程或者到网上查查。在这里我是在wg.exe的Hook按钮事件中添加了下面的语句来实现:

if(gamethreadid)
{
 if(EnableHook(gamethreadid)==false)
  ShowMessage("error");
}
  你可以点击Hook按钮在游戏界面出来之后,然后在游戏界面中按F12键调出外挂的窗口。

  昨天的尾巴完事之后,开始今天的教程。今天我想说说APIHOOK。虽然APIHOOK在大话游戏的外挂制作中不是必须的,但为了按照一般的制作流程顺序,就先将这部分加入到里面去了。

  使用APIHOOK的原因也很简单,游戏肯定要调用某些系统函数,使用APIHOOK可以简单的查看一些关键的信息并进行修改(就这么简单的理由?是的,我们一向再用杀牛的刀宰鸡的。。。)。

  Jeffrey Richter用了大量的篇幅来讲如何插入DLL和挂接API,如果你不知道Jeffrey Richter是谁的话,总该知道《Windows核心编程》的作者吧,如果不知道,我倒,系统抛出例外,你是外星人吧。我们的程序运行在用户层上,J。R提出了两种办法,一种是改写代码,我刚开始也试图用这种办法,后来发现这种办法确实存在的漏洞多多,和J。R说的一样。最后还是采用操作模块的输入节了。

  在查看资料的过程中,我发现J。R的代码在中文Windows 2000上并不能运行(难道是外国人用的系统和中国的不一样?),后来只好J。R的思路,重新安排了一下函数,但大部分函数都一样的。为了方便,我没有在类中捕获LoadLibraryA、LoadLibraryW、LoadLibraryExA和LoadLibraryExW,也是因为我们的外挂程序运行的时候游戏的窗口已经出来了,该加载的一般都加载了。

  下面是我的APIHOOK类的源代码,该源代码是根据J.R的思路重新整理他的源代码来的:

/*HookAPI.h*/
#include "windows.h"
class CAPIHOOK
{
 public:
  CAPIHOOK(PSTR pszCalleeModName,PSTR pszFuncName,PROC pfnHook,HANDLE prochandle,HMODULE hmod);
  ~CAPIHOOK();
  operator PROC(){return (m_pfnOrig);};
 public:
  static PVOID sm_pvMaxAppAddr;
  static CAPIHOOK* sm_pHead;
  CAPIHOOK* m_pNext;
  PCSTR m_pszCalleeModName;
  PCSTR m_pszFuncName;
  PROC m_pfnOrig;
  PROC m_pfnHook;
  BOOL m_fExcludeAPIHookMod;
  HMODULE m_module;
  HANDLE m_handle;
 private:
  pfnOrig,PROC pfnHook,BOOL fExcludeAPIHookMod);
  void WINAPI ReplaceIATEntryInOneMod(PCSTR pszCalleeModName,PROC pfnOrig,PROC pfnHook,HMODULE hmodcaller,HANDLE handle);
  void WINAPI FixupNewlyLoadedModule(HMODULE hmod,DWORD dwFlags);
  FARPROC WINAPI GetProcAddress(HMODULE hmod,PCSTR pszProcName);
};


/*HookApi.cpp*/

#include "hookapi.h"
#include <assert.h>
#include "imagehlp.h"
PVOID CAPIHOOK::sm_pvMaxAppAddr = NULL;
const BYTE cPushOpCode = 0x68;
CAPIHOOK *CAPIHOOK::sm_pHead = NULL;

CAPIHOOK::CAPIHOOK(PSTR pszCalleeModName, PSTR pszFuncName, PROC pfnHook,
HANDLE prochandle, HMODULE hmod)
{
 m_handle = prochandle;
 if (sm_pvMaxAppAddr == NULL)
 {
  SYSTEM_INFO si;
  GetSystemInfo(&si);
  sm_pvMaxAppAddr = si.lpMaximumApplicationAddress;
 }
 m_pNext = sm_pHead;
 sm_pHead = this;
 m_pszCalleeModName = pszCalleeModName;
 m_pszFuncName = pszFuncName;
 m_pfnHook = pfnHook;
 m_pfnOrig = ::GetProcAddress(GetModuleHandleA(pszCalleeModName),m_pszFuncName);

[1] [2] [3] 下一页 




上一篇:协议型网络游戏外挂制作之APIHOOK补遗

下一篇:Unix和Windows跨系统通讯编程

相关文章:
·帝国时代2:征服者 - 游戏秘籍
·请问网络路由器的接口种类有哪些?
·罪恶都市 - 游戏秘籍
·Photoshop制作效果逼真的哈蜜瓜
·重返德军总部 全攻略 - 游戏攻略
·从零开始学黑客:网络黑客新手入门指南
·《侠盗猎车手-罪恶都市》修改 - 游戏秘籍
·《二战狙击手:胜利的召唤》全攻略 - 游戏攻略
·由浅入深学习Flash制作高射炮游戏
·最终幻想10 - 游戏攻略
相关软件:
·暗黑破坏神 2:毁灭之王 1.10S极品属性装备制作器
·网络常见问题与故障1000例
·家常菜制作集锦(1)
·Vgo网络电视V3.0
·启动光盘制作完全手册(菜鸟先飞 图文教材系列)
·超经典街机游戏13合一
·盈速通网络加速器V1.2
·灵豚课件制作工具——课件精灵v1.0 beta
·Photoshop数码照片制作宝典
·2007网络安全黄皮书V1.0.0

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot