辅助是如何炼成的.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 辅助是如何炼成的 编程、逆向、数据分析 编程:按照编程语言的规则将思想转变成机器能看懂的行为。 逆向:读懂机器码,以及编程的思路及过程 尼克劳斯-沃思 说过程序等于 算法 加 数据结构 数据分析:分析程序已经存在的算法(CALL)以及结构(数组等) 辅助是如何炼成的 编程、逆向、数据分析 结构的分析 结构相关的成员 CALL所调用的函数 程序结构,或者消息循环 CALL的分析 CALL相关的变量 读取操作结构的代码 重楼写于2012.2.3 辅助是如何炼成的 编程、逆向、数据分析 CALL的分析 - CALL相关的变量 例子: 打坐的标记,走路的坐标,与NPC对话的ID 从编程角度如何来标识这个打坐呢?其实很简单 没有打坐 bool SitFlag = false; 正在打坐 SitFlag = true; 当然在游戏里没有那么简单,他还涉及到发包,执行人物动作,等等. 抛开这一切假象,其实真正的打坐用程序就是这么表示的. 在看看另外一个例子,选中对象是如何用编程来表示的. DWORD ObjectID = 0x456; 不选中目标 DWORD ObjectID = 0; 再来回顾上一篇所说的,程序就是算法加上结构,这个变量属于什么呢?当然是结构了. 并非一定要在结构当中的成员才属于结构,在对象编程当中任何物品都是对象,所以任何变量都是程序结构中的类成员 辅助是如何炼成的 编程、逆向、数据分析 CALL的分析 - CALL所调用的函数 网络游戏相对于一般的破解有一个好处,那就是网游与服务器通信. 通信即发包,通过定义的字节,来执行相关的动作,这就好像2个人互通暗号(即封包),比如说 天王盖地虎 是跳一下. 那么一个人对另外一个人说出天王盖地虎,那么另外一个人就会跳一下,而2个人怕被别人听到,就对暗号加密(即封包加密),这个就是网游的封包. send WSASend 这2个函数在07年-09年被称之为万能断点,在当时来说,只要断这个断点返回即可找到函数. 但好方法所带来的是更多的困惑. 后来网游发包模式就改变了,组包和发包变成2部分,很多人一遇到这种情况便傻眼了.然后就觉得断发包是无法找到函数的. 其实不然,只要程序的函数调用了发包,那么我们就能把它揪出来. 辅助是如何炼成的 编程、逆向、数据分析 CALL的分析 - 程序结构,或者消息循环 数据分析即逆向,数据分析也是逆向工程的一种,所以我们要从逆向工程的角度来看待数据分析. 同样属于逆向工程的破解,本人很少去破解什么东西,所会的也仅仅是破解那种普通没有加密过的程序.但我发现2者之间的思路有相当一部分关联.都是从一个点到一个面. 只要有一个点,就能突破整个面,所以说开头是最难的. 很多游戏程序,把相关的函数都写到一个类当中,这样着实方便了我们的调用.或者用判断循环的方式关联在一起. 不过对于我们来说仅仅是方便而已. 辅助是如何炼成的 编程、逆向、数据分析 结构的分析 - 结构相关的成员 什么是结构呢?在我的理解当中,数组是一种结构.链表是一种结构,二叉树也是一种结构,当然还有自定义的成员结构.(也是数组) 从编程方面的结构表现形式和反汇编当中的结构表现形式是完全不同的. 2者之间仅仅是思路的相同. 比如说 struct point {  int x;  int y; }; 在编程当中他是这样调用的.首先 point p 定义一个对象; 然后p.x = 100; 那么就赋值了这个结构对象的属性. 当我们监视这个内存所写入的代码 那么就会跳到这里来,树藤摸瓜 我们就能找到其他的结构成员了. 我觉得在游戏当中用这种方法最简单的还是背包结构,因为他不会乱动(比如说地面物品会消失),任你操作(比如怪物会乱跑). 所以说,想要找结构不仅仅要的是你会用代码编写结构,更重要的是结构在内存中的表现形式 辅助是如何炼成的 编程、逆向、数据分析 结构的分析 -读取操作结构的代码 还是上一个例子 struct point {  int x;  int y; }; 首先 point p 定义一个对象; 然后p.x = 100; 这一次我们直接找到 这个汇编代码分析他操作结构内存的代码. 从代码上来看,结构在内存当中肯定会以偏移的方式寻址 对于上一篇来说好像仅仅少了寻找的步骤,但是这个代码不会无缘无故放在你的面前.所以还得你自己去找. 但这次寻找的方式不同.这次我们要从函数上寻找这些代码. 那么背包的话,我们可以寻找吃药的,或者寻找移动物品的函数.寻找怪物或者NPC的话则可以寻找对话,打怪等,任何操作有关结构的函数都是我们突破的重点. 但是除了程序员谁也不知道程序员自身是用什么方式写代码的,所以说我们到头来还得学会分析

文档评论(0)

喵咪147 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档