今天闲来无事,游戏也上不了,就写点东西吧,很少在濮阳吧里发贴子,今天我也来点贡献吧,以下内容对于有些人来说,也许很有用,但对于一些不懂装懂的人来说呢,你不懂就不要乱拍砖,你可以保持沉默,大家都是有文化,有素质的人,对吧。
所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。
好了,费话有点多,我今天要说的就是这些年我对于开发游戏外挂,游戏辅助的那么一点点心得和体会,高手请绕道,以下内容是给那些想学开发游戏外挂新手们的。写的不好不要拍砖,以后我会写的更好。
我对于技术学习的口号是-----用到的时候在说!
我个人认为要学游戏外挂开发可以分三步:
第一步:掌握一门编程语言
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. 绕过驱动保护