qq游戏外挂:游戏外挂分析

我主要对外挂技术进行分析,至于游戏里面内部结构每个都不样,这里就不做讲解了,我也没有那么厉害,所有都知道,呵呵!
1 首先游戏外挂原理
外挂现在分为好多种,比如模拟键盘,鼠标,修改数据包,还有修改本地内存,但好像没有修改服务器内存哦,呵呵!其实修改服务器也是有办法,只是技术太高般人没有办法入手而已!(比如请GM去夜总会,送礼,收黑钱等等办法都可以修改服务器数据,哈哈)
   修改游戏无非是修改下本地内存数据,或者截获api等等,这里我把所能想到思路方法都作个介绍,希望大家能做出很好外挂来使游戏厂商更好完善自己技术.
个人所见到片文章是讲魔力宝贝理论分析,写不错,大概是那个样子.
下来我就讲解下技术方面东西,以作引玉的用
2 技术分析部分
1 模拟键盘或鼠标响应
  我们般使用UINT SendInput(
  UINT nInputs,     // count of input events
  LPINPUT pInputs,  // .gif' /> of input events
   cbSize        // size of structure
);api
个参数是介绍说明第 2个参数矩阵维数,第 2个参数包含了响应事件,这个自己填充就可以,最后是这个结构大小,非常简单,这是最简单思路方法模拟键盘鼠标了,呵呵
注意:这个还有个替代:
VOID keybd_event(
  BYTE bVk,               // 虚拟键码
  BYTE bScan,             // 扫描码
  DWORD dwFlags,          
  ULONG_PTR dwExtraInfo   // 附加键状态
);和
VOID mouse_event(
  DWORD dwFlags,         // motion and click options
  DWORD dx,              // horizontal position or change
  DWORD dy,              // vertical position or change
  DWORD dwData,          // wheel movement
  ULONG_PTR dwExtraInfo  // application-d information
);
这两个非常简单了,我想那些按键精灵就是用这个吧,呵呵,上面是模拟键盘,下面是模拟鼠标.
这个仅仅是模拟部分,要和游戏联系起来我们还需要找到游戏窗口才行,或者包含快捷键,就象按键精灵那个激活键样,我们可以用GetWindow来枚举窗口,也可以用Findwindow来查找制定窗口(注意还有个FindWindowEx),FindwindowEx可以找到窗口子窗口,比如按钮,等什么东西.当游戏切换场景时候我们可以用FindWindowEx来确定些当前窗口特征,从而判断是否还在这个场景,思路方法很多了,比如可以GetWindowInfo来确定些东西,比如当查找不到某个按钮时候就介绍说明游戏场景已经切换了,等等办法.有游戏没有Control控件在里面,这是对图像做坐标变换话,这种思路方法就要受到限制了.这就需要我们用别办法来辅助分析了.
至于快捷键我们要用动态连接库实现了,里面要用到hook技术了,这个也非常简单,大家可能都会了,其实就是个全局hook对象然后SetWindowHook就可以了,回调都是现成,而且现在网上例子多如牛毛,这个实现在外挂中已经很普遍了.如果还有谁不明白,那就去看看msdn查找SetWindowHook就可以了.



这个动态连接库作用很大,不要低估了哦,它可以切入所有进程空间,也就是可以加载到所有游戏里面哦,只要用对,你会发现很有用途!
这个需要你复习下win32编程基础知识了,呵呵,赶快去看书吧!



2截获消息
  有些游戏响应机制比较简单,是基于消息,或者用什么定时器东西,这个时候你就可以用拦截消息来实现些有趣功能了.
我们拦截消息使用也是hook技术,里面包括了键盘消息,鼠标消息,系统消息,日志等,别对我们没有什么大用处,我们只用拦截消息回调就可以了,这个不会让我写例子吧,其实这个和上面样,都是用SetWindowHook来写,看看就明白了很简单.
至于拦截了以后做什么就是你事情了,比如在每个定时器消息里面处理些我们数据判断,或者在定时器里面在模拟次定时器,那么有些数据就会处理两次,呵呵,后果嘛,不定是好事情哦,呵呵,不过如果数据计算放在客户端游戏就可以真改变数据了,呵呵,试试看吧!用途还有很多,自己想也可以想出来,呵呵!



3拦截
这个技术难度要比原来高很多哦,要有思想准备.
首先我们要替换winSock.dll或者winsock32.dll,我们写替换要和原来致才行,就是说它输出什么样,我们也要输出什么样子,而且参数,参数顺序都要样才行,然后在我们里面真正winSock32.dll里面就可以了
首先:我们可以替换动态库到系统路径
其次:我们应用启动时候可以加载原有动态库,用这个LoadLibary
然后定位入口用GetProcAddress获得每个真正入口地址
当游戏进行时候它会我们动态库,然后从我们动态库中处理完毕后才跳转到真正动态库地址,这样我们就可以在里面处理自己数据了,应该是切数据.呵呵!
兴奋吧,拦截了数据包我们还要分析的后才能进行正确应答,不要以为这样工作就完成了,呵呵!还早呢,等分析完毕以后我们还要仿真应答机制来和服务器通信,个不小心就会被封号,呵呵,呜~~~~~~~~我就被封了好多啊!
分析数据才是工作量来源呢,游戏每次升级有可能加密方式会有所改变,因此我们写外挂人都是亡命的徒啊,被人娱乐了还不知道,呵呵!(声明我可没有赚钱,我是免费)
好了,给大家个不错起点,这里有完整替换源代码,呵呵!
http://www.vchelp.net/vchelp/zsrc/wsock32_sub.zip

4截获api
上面技术如果可以灵活运用话我们就不用截获api了,其实这种技术是种补充技术.比如我们需要截获以外作为我们用途,我们就要用这个技术了,其实我们也可以用它直接拦截在,这样更直接.
现在拦截api教程到处都是,我就不列举了,我用比较习惯思路方法是根据输入节进行拦截,这个思路方法可以用到任何种操作系统上,比如98/2000等,有些思路方法不是跨平台,我不建议使用.这个技术大家可以参考windows核心编程里面545页开始内容来学习,如果是98系统可以用window系统奥秘那个最后章来学习.
好了思路方法就是这么多了,看大家如何运用了,其它些针对性窍门技巧这里我就不说了,要不然会有人杀了我,呵呵!



记住每个游戏修改思路方法都不样,如果某个游戏数据处理全部在服务器端,那么你还是别写外挂了,呵呵,最多写个自动走路外挂,哈哈!
数据分析时候大家定要注意,不要轻易尝试和服务器连接,那有很危险,切忌!等你掌握了大量数据分析结果以后,比较有把握了在试试,看看你运气好不好,很有可能会成功哦,呵呵!
其实像网金也疯狂那种模拟客户端也是不错,很适合office人用,就看大家产品定位了.
好了不说了,大家努力吧!切忌不要被游戏厂商招安哦,那样有损我们形象,我们是为了让游戏做更好而开发,也不愿意打乱游戏平衡,哎,好像现在不是这样了!不说了随其自然吧!
Qq:16055393
有什么技术问题可以找我.
网金里面逆风飞扬是我妹妹组织哦


  • 篇文章: 外挂制作介绍篇

  • 篇文章: 用C#实现木马
  • Tags:  qq空间游戏外挂 qq空间游戏基地外挂 游戏外挂 qq游戏外挂

    延伸阅读

    最新评论

    发表评论