今天闲来无事,游戏也上不了,就写点东西吧,很少在濮阳吧里发贴子,今天我也来点贡献吧,以下内容对于有些人来说,也许很有用,但对于一些不懂装懂的人来说呢,你不懂就不要乱拍砖,你可以保持沉默,大家都是有文化,有素质的人,对吧。
所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。
好了,费话有点多,我今天要说的就是这些年我对于开发游戏外挂,游戏辅助的那么一点点心得和体会,高手请绕道,以下内容是给那些想学开发游戏外挂新手们的。写的不好不要拍砖,以后我会写的更好。
我对于技术学习的口号是-----用到的时候在说!
我个人认为要学游戏外挂开发可以分三步:
第一步:掌握一门编程语言
C 、C++ 、 Delphi 、vb、易语言,学会其中一种就可以,不过你C或是C++必须还要在学VC,但我建设你会这个,学这个好处多多。至于汇编这老大哥,先掌握一些常用指令就行,没有必要精通,但如果你是牛人,能精通那更好。
友情提示:如果这第一步基础没打好,那就不要往下学,学也是白学。越学越头大。
第二步:掌握最基本的调试工具
熟练使用Spy++,Cheat.Engine,ida,ollyice,softice,vc等逆向工程工具。
这些工具不用专门学,调试游戏的时候,一边调试一边学,在喊一下口号:用到的时候在说!,别拍砖。
了解常用的API函数:
FindWindow
GetWindowThreadProcessId
OpenProcess
ReadProcessMemory
WriteProcessMemory
这些API的作用我就不多说了,百度更详细,百度更健康。
这个时候就需要你掌握以下知识点:
1. 什么是基址?
2. 为什么要找基址?
3. 什么是偏移,一级偏移,二级偏移,N级偏移
4. 什么是Call:它又分无参Call,和有参Call
5. 如何调试CALL可能对应的功能?
6. 知道了有参数CALL的参数数据,如何调试CALL效果?
7. 通过“代码注入器”这个工具来调试CALL效果
8. 能达到CALL效果,但游戏出错怎么办?理解什么是堆栈平衡
9. 发送封包的函数都有哪些?OD如何下断?
10. 学会找游戏的特征码,做个可以免更新的外挂,或是快速找到基址和游戏更新后的新Call
掌握这些内容,你现在因该可以写出简单的小挂挂了,比如自动吃药,自动喊话,自动打怪,或是写个自动完成 重复繁琐的工作,或是写个论坛发贴机也是没有问题的啦
其实我上面写的东西虽说不多,但要想完全掌握以上内容,也不是一天二天的事。
第三步:接下了才是真正核心的东西
你写的外挂好不好,功能强不强,要掌握的就是这就三步:
本想在另外写一篇,外挂秘笈文章的,想想算了,所以我就在这里只是提一下,经后有时间了我在写吧,想了解更多的,可以找我详细问,因为一些细节真的很难一言两语就能写明的。
1. 游戏常用有那些壳,如果反壳
2. 了解SSDT_Hook,Inline_Hook
3. G.P.K钩子的查找及相应的反Hook,043_绕过所有用户层HOOK
4. 遍历列表的基址、结构类型、触发点
5. 列表之循环列表,二叉树之树
6. 反内核(ARK)工具使用
7. DNF过TP保护,T&P保护的处理
8. 绕过驱动保护
以上是关于我这些年对游戏外挂辅助开发的一些心得和体会的主要内容,如果未能解决你的问题,请参考以下文章