网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
协议型网络游戏外挂制作之启动
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
PENDED是为了将程序加载到内存中之后可以进行一些修改,

以更好的配合外挂程序的运行*/

 

if(CreateProcess(Appname,NULL,NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,ExtractFileDir(Appname).

c_str(),&si,&pi)==0)

{

 //启动目标程序失败

 showMessage("error open exe file");

 return;

}

gamehandle=pi.hProcess;

 

/*在本节中要执行程序的话,最好将这个条件注释掉,我将在以后的教程中进行讲解,这里大概说一下功能,第一个Write是为了跳过Update,第二个是为了退出的时候不打开网页,我的电脑要是退出大话的时候打开网页的话,中间的时间可以抽上几根烟了,所以将程序改了*/

 

if(WriteProcessMemory(gamehandle,(void*)0x0042BC13,No_Update,1,NULL)==false

||WriteProcessMemory(gamehandle,(void*)0x00430a80,No_HTML,2,NULL)==false

)

return;

threadhand=pi.hThread;

gamethreadid=pi.dwThreadId;

 

//恢复程序,让程序执行

ResumeThread(pi.hThread);

/*下面的代码也是本节中不需要的,我将物品的有关信息存到了当前目录(外挂启动程序目录)中的item.ini文件中,但目标程序中并不知道外挂启动程序的路径,因此我在目标程序文件夹中建立了一个名字叫path.ini文件,里面包含了item.ini的路径*/

 

String inipath= "path=" ExtractFileDir(Application->ExeName) "\item.ini";

WritePrivateProfileSection("ITEM",inipath.c_str(),(ExtractFileDir(OpenFile->FileName) "\path.ini").c_str());

 

 

  启动程序中将启动属性设置为CREATE_SUSPENDED属性是为了考虑到程序的通用性和稳定性,在该函数之后,如果目标程序中存在有必要修改的代码的话,可以在这里进行修改,也可以对目标程序进行反反外挂的处理。其实,debug形式的外挂就可以在这里进行debug环境的建立,以及在目标程序中插入Int 3指令来进行拦截处理了(我怎么越来越感觉到自己在写调试器的教程??)。

 

  这节就讲到这里,如果再晚的话,我就没办法赶上公交车了,然后还得走回家,天哪,这么冷的天""""赶紧上传回家吧。

 

 

 

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

 

  上一次我们说了目标程序的启动,以及对目标程序的预处理。这一节中争取可以将外挂的窗口显出来,具体能不能说这么多,只能看着办了。

 

  因为我决定采用最俗的办法Hook来注入线程(有时候我都觉得自己是否有必要这么做,因为Debug的办法也不错),为了程序的更普遍性和更快的移植,以及简单一点,我决定还是采用Hook。这里提前说一下,如果不懂汇编和程序调试的话,最好先补一下课,这在以后要用的。

 

  我们先来编写Hook.dll部分,程序的启动部分暂时不用理会了(我以后就将那部分叫做wg.exe吧),昨天着急忘了说一声了,我让屏蔽的WriteProcessMemory中的数据地址是大话9.16更新之前的最后一个版本,在9.16更新之后的版本中需要先将程序脱壳,这部分我在以后会说的,所以让大家屏蔽掉那两个写内存的操作。对于Hook.dll来说,我们准备使用F12键来激活外挂,在CB中编写dll非常简单,建立一个dll项目工程,然后就可以添加代码了。建立工程的时候一点记得选上使用C ,使用VCL,Multi Thread这几个选项,理由:

 

  1、使用C 是为了让我省点口水(我将APIHOOK封装到了一个类里面)。

  2、使用VCL是因为我太懒惰,不想编写界面代码。

  3、使用多线程是因为程序必须。

 

  由于外挂主窗体在dll中,因此生成的dll就会比一般的dll大。窗体其实可以放到任何地方的,只是放到dll中比较方便而以,而且在说的时候可以更好的分开。

 

  以下是Hook

  • 上一篇资讯: 外挂编写完全攻略
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号