手机网站和电脑网站一样吗,做网站是什么专业什么工作,大企业网站建设公司排名,wordpress极速版郁金香2021年游戏辅助技术中级班#xff08;六#xff09; 055-ce,xdbg调试分析接任务交任务完成任务056-C,C写代码测试接任务交任务完成任务我们再来分析一下完成任务 057-C,C写代码测试交任务完成任务 055-ce,xdbg调试分析接任务交任务完成任务
创建一个新角色#xff0c… 郁金香2021年游戏辅助技术中级班六 055-ce,xdbg调试分析接任务交任务完成任务056-C,C写代码测试接任务交任务完成任务我们再来分析一下完成任务 057-C,C写代码测试交任务完成任务 055-ce,xdbg调试分析接任务交任务完成任务
创建一个新角色搜索wow.exe模块中的常数6B0B50明文包封包组包CALL即发包函数的上面某一层函数全部禁用 把没有操作就直接断下的断点先取消掉在NPC维里副队长那里不要用鼠标右击点击他否则会直接接受了任务这时候已经发过包了所以可以用鼠标左键点击打开该NPC再接受任务测试发的包才是接任务的其实仍然是直接接了任务。 上图左边小地图下面的就是已经接受的任务这个新手任务比较特殊鼠标右击NPC就会直接接受了该任务这时候已经发过接任务的包了所以这里我们要放弃该任务重新鼠标右键点击该NPC断下 如果是接任务的话它肯定有一个任务ID的不同的任务可以通过各自的ID给区分开我们先把包的内容复制出来看一下 这是我们的包对象任务身边的危机然后再看一下这个包的内容 这个是之前我们分析过的打开NPC的组包但是这个怎么就接了任务的呢或者说这个任务比较特殊。 我们再点击xdbg的运行还有几个断点我们暂时把它们复制出来备用心跳的断点都取消掉 然后我们再另外找一个任务来试一下把转向的断点取消掉然后去找头上有问号或感叹号的NPC去接一下任务鼠标右键点击下图该NPC 鼠标左键点击上图身边的危机 点击上图完成任务的时候也发包了 完成任务的时候要经过5304D3这里上图是我们看到的这个时候的组包内容。 我们让游戏跑起来又断到了一个地方 上图我们看到有一个NPC的ID。 我们把游戏取消让游戏退出来把自动接任务的插件给禁用一下把插件的目标AddOns改名为“AddOns_插件”再建一个空的AddOns目录 重新登录游戏重新分析一下接任务删除之前创建的角色建一个新角色。 我们发现鼠标右击带感叹号的会走到上图这里鼠标右击不带感叹号的NPC走的是另外一个分支所以这里可能就是接任务的我们来看一下这个地方的组包之前的那些分析可能没有太大的作用然后我们再看一下该包的内容 从上图我们可以看到这里是NPC的ID不是任务ID按说应该还有一个任务ID但是这里我们没有看到这个看起来更像是打开NPC的我们复制记录一下 我们再让它跑一下看看有没有更合适的 这个包的内容看起来只有4个字节 0x417这个好像更像是那个接任务我们都复制记录一下但是具体是不是我们还需要写相应的代码做测试。 上图这个包很像接任务的我们还有另外一种来做测试的办法我们把上图这第2个包内容中的0x417给它改一下然后看它能不能够接到任务如果修改该数值对接任务有影响的话可能就需要这两个包一起配合先打开NPC然后接任务 这里我们把所有断点删除然后先把维里副队长的这个新手任务放弃再在这两个包相关的CALL那里分别下断然后我们再点鼠标右键第1个断下来的我们先不管它我们先继续运行游戏来看看断到的第2个包的内容那里 我们把0x417改为0x317发现依然能够接到任务但是该NPC头上仍然是一个感叹号而小地图下面仍然有任务我们还是接到了这个任务我们点击放弃。 我们发现第2个包没有发的情况下该NPC头上的感叹号没有被去掉说明该地址的包与接任务是有一定关系的我们再来看第一个包 我们如果把该包内容中的指令0x184给改了发现打不开NPC了这样我们也测试不出来接任务了可能是接任务的也可能不是具体是不是我们下节课写代码来测试一下。
那个0x417也有可能是用来发包取消该NPC头上的感叹号的但是具体它是一个什么样的功能我们还是要写代码来做测试。 另外任务有两种一种是带感叹号的另一种是带问号的我们不知道这两种任务是不是同一个类型我们再找一个带问号的看一下我们先把维里副队长这个任务给接了头上是一个感叹号然后我们再去治安官那里看一下问号那个组包 哦现在我们明白了那个感叹号的是用来接任务的这个问号是用来完成任务的我们启用一下所有调用6B0B50这个CALL的断点 这个究竟是不是接任务的还是要下节课我们来看从上图我们看到这里不是接任务应该是选择任务 我们点击一下完成任务 我们把这个包也取出来复制记录一下 这个倒挺像完成任务的因为完成任务这里没有NPC的ID这里的0xFE和0x21可能是完成任务的指令和任务的ID。
具体是不是下节课我们写代码把分析的这些数据测试一下。 056-C,C写代码测试接任务交任务完成任务
任务有没有接它肯定是有标志可以用来判断的这里我们只讨论接任务还有完成任务这两个知识点。
由于现有项目的两个页面都已经满了所以我们再添加一个页面 在游戏功能测试目录下面添加一个新的任务相关的目录 复制上图这个函数为新的接任务02函数 测试的时候如果不是那个新手任务可以删除该角色再新创建一个角色然后跑到维里副队长身边点击接任务 接任务测试成功该NPC头上的感叹号也没有了。 完成任务测试失败完成任务这个包说明没有准备好可能完成任务接任务我们发了两个包但是我们不知道这两个包各自的作用是什么我们先来把接任务给弄清楚我们回到维里副队长那里放弃该任务我们把接任务这两个包给分开做一下测试。 我们点击上图接任务01按钮这个是接任务接任务成功右边小地图下方显示有任务目标第一个组包就是接任务 点接任务02按钮没有反应第2个包我们根本就没有发接任务02是没有用的 这里的接任务只是接某一个NPC的任务跑到特定NPC的身边才行它并没有一个任务ID这种设计比较少见这种接任务就只有一个NPC的ID和一个接任务的指令在哪个NPC那里接任务 这个游戏不像其他游戏那样有一个任务的ID有的游戏接任务的时候它会发送一个任务ID的。 点击角色选择界面左下角的插件可以禁用掉游戏默认带的插件。 上图这里是在界面上显示任务目标的方式以后如果你需要遍历哪些任务没有接的话你就可以通过上图这些开关去分析你追踪的这些任务列表就去判断哪些任务完成了哪些任务没有完成。
我们再来分析一下完成任务
先跑到神庙里面的那个治安官NPC身边在5304D3那里下个断点并启动封包的全部断点点击运行后鼠标右击神庙里面的那个治安官NPC在此期间过滤掉其他无关断点 鼠标右击治安官这个NPC会跑到右键点NPC那个断点那里 当点击上图任务的时候会断到下图这里 我们发现这个包更像是接任务、完成任务的18A是指令30F有点像任务ID而C5013862是NPC的ID1F1300000是NPC的ID2但是具体是不是我们下节课再做测试。
然后我们再点完成任务断下之前没有断到过这个地方可能被我们给过滤掉了我们没有分析到这里 我们发现这个地方的封包内容和前面那个6D4D95地址处的封包内容很接近6D4D95可能是选择任务这里可能才是完成任务这个概率比较大 这个比较像完成任务的组包格式 接任务02这里不是接任务的不知道是个什么。 我们发现接任务01这里没有任务ID可能是一个特殊的任务它就是一个新手的任务它也可能没有任务ID打开该NPC之后就自动接了该任务这可能是一种特殊的情况。 057-C,C写代码测试交任务完成任务
我们之前分析这个接任务的包、完成任务交任务的包它存在多种格式它们并没有一个统一的格式所以为了方便我们分析封包的格式封包的内容、封包的长度我们自己来编写一段代码可能需要两三课的时长因为写HOOK的话相关的知识点还是需要一些时间来慢慢分析。
我们按照上节课分析的完成任务重新组包 我们暂时认为包缓冲区中0x30F这个是用来区分不同任务的可能是任务ID0x18E可能是完成任务的指令当然具体是不是用的统一的指令我们后面写了分析封包的代码之后呢把相关的信息保存在文件里面我们再来做一个相应的分析。
我们需要另外建一个新的小号来测试 我们看到上图这里虽然弹出了任务面板询问你是否接受其实无论你接不接受这里已经有提示信息了你已经接受了这个任务了所以我们之前分析的时候再按下这个接受按钮之后再去分析接受任务的这个包是错误的实际上我们右键点击维里副队长的时候就已经自动接受了这个任务了你直接点击右上角的叉关闭这个面板实际上都已经接受这个任务了所以分析的时候只能在鼠标右击该NPC的时候去分析接任务的包。
我们跑到神庙的治安官NPC身边那里去完成这个任务 我们点击完成任务按钮后从上图可以看到左下角的提示信息身边的危机完成说明这个任务的组包是成功的该任务已经完成了并且它还完成了与NPC的对话顺便接了剿灭狗头人的任务。 所以接受任务至少有两种形式一种是在访问NPC的时候它就自动接了这个任务这个应该是在服务器那边就判断完成了另一种就是无论你接受还是不接受实际上从上图这个提示信息来看的话这个剿灭狗头人的任务已经接受了而且上图右上角小地图下方也已经有剿灭狗头人的任务目标了。
之前我们分析的时候是点了任务面板的接受之后再去分析这个包那个思路上就错了因为这个时候你点接受它并不会发包因为在此之前它就已经接受了这个任务了。 如果你放弃这个任务之后你再去接受该任务的话那么它就是走的另一个发包了这个我们在这类就不去分析了我们留到下节课写分析封包的代码通过代码来分析的话这样比我们每次去下断点的话要省很多很多时间如果每次用调试器去分析的话花的时间就比较多了如果我们用代码把发包的数据全部收集到文件里面再加上我们用代码来做一下条件判断和过滤那么这样的话我们就能够更方便的收集到发包的有用信息。
下节课我们就开始写HOOKHOOK也叫劫持我们就是拦截一些封包的数据然后把它转成字符串的形式写到文件里面这样方便我们分析而且我们可以按照我们自己设想的格式来格式化它然后保存到文件里面这样的话我们就可以很方便的分析了。