制作个人网站的六个步骤,别墅装修设计,空包网站分站怎么做,网络营销的工具和方法有哪些内容来源于#xff1a;易道云信息技术研究院VIP课
之前的内容#xff1a;接管游戏的自动药水设定功能-CSDN博客
码云地址#xff08;master分支#xff09;#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git
码云版本号#xff1a;34b9c1d43b512d0b4a3c395b…内容来源于易道云信息技术研究院VIP课
之前的内容接管游戏的自动药水设定功能-CSDN博客
码云地址master分支https://gitee.com/dye_your_fingers/sro_-ex.git
码云版本号34b9c1d43b512d0b4a3c395b81c03c0b8e8aa374
代码下载地址在 SRO_EX 目录下文件名为SRO_Ex-游戏菜单文字资源读取的逆向分析.zip 链接https://pan.baidu.com/s/1W-JpUcGOWbSJmMdmtMzYZg 提取码q9n5 --来自百度网盘超级会员V4的分享 HOOK引擎文件名为黑兔sdk.zip 链接https://pan.baidu.com/s/1IB-Zs6hi3yU8LC2f-8hIEw 提取码78h8 --来自百度网盘超级会员V4的分享 以 接管游戏的自动药水设定功能-CSDN博客 它的代码为基础进行修改
修改了分析记录文件
现在我们基本的思路是要改内存所以首先要确定改内存的行为可不可行就要看它的复杂度复杂度太高那就没办法了复杂度还行就有的玩了。
正常情况下 自动药水设定 它在内存里一定存在接下里就搜索首先打开游戏然后再打开Cheat Engine
如下图红框里的内容然后点击首次扫描 可以找到三个地址 修改内存之后游戏中并没有生效原因也很简单这种东西肯定只会初始化一次我们改晚了接下来就要想办法触发自动药水设定这个地方的变化 触发的方式可以通过修改它的快捷键 然后就改成功了也就是说当修改快捷键的时候它是一定会读取下图红框里的字符串的
接下来找出是什么访问了它通过更改快捷键来获取是什么访问了它 然后游戏初始化的时候也会初始化所以在通过游重新开始找是什么访问了字符串 可以发现它们的地址都是一样的 然后先记入一下信息不管是通过修改快捷键还是重新开始它们的寄存器的值都是一样的所以下方每个地址只有一个图 接下来打开x96dbgC50E5C、C51668优先C50E5C这个地址然后断到C50E5C地址通过条件断点C50E5C是一个被经常调用的函数不用条件断点没法玩然后字符串是通过edi寄存器来的edi的值不知道从哪来所以按ctrlf9再按f8来到调用方先确定一下大体的范围 来到调用方可以发现在调用方这里自动药水设定字符串就已经存在了所以 C50E5C 这个函数不用看了然后再按ctrlf9再按f8 再来到上一层自动药水设定字符串还是存在我现在要看的是自动药水设定字符串是从哪来的所以还要往上所以按ctrlf9再按f8来到它的上一层 然后就在栈里没有看到了这里记入下一它的地址C3D969 然后给C3D969位置打断点可以看出它好像是用来处理快捷键与按钮字符串绑定的一个拼接字符串的操作 所以再来到它的上一层打断点 可以发现这里只有自动药水设定才会触发 然后可以看到自动药水设定字符串是通过eax来的eax寄存器会跟函数返回值有关所以要注意一下eax的值3是从上一次传递的还是通过函数返回值来的
然后下图红框在6DA8B8位置有一个比较根据下图中的值来说就是 if(F8){*((char*)(eax4))}这样的代码然后继续往下看
意思就是下图红框位置是一个缓冲区缓冲区大小是8所以eax18位置是字符串的长度也就是说0xF是长度接下来也就是我们也调用下图中6DA8B3位置的函数也就能得到字符串的地址然后通过模拟它的一个基本的判断得出来最终eax的地址得出来以后就可以修改了 然后就分析9A46C0函数直接在返回的位置打断点找一个eax18小于8的可以看出eax4位置是一个字符串锁定俩字然后eax18位置是7eax14位置是2这个2可能就是有效字符的意思7是缓冲区大小2是有效字符所以现在就可以给它的返回值定义一个结构体了 定义的结构体 typedef struct sro_string{ int un1; union{ wchar_t title[0x4]; wchar_t* Ptitle; } int lenth; int size; wchar_t* wcstr(){ if(size0x8){ return title; }else{ return Ptitle; } } }*psro_string; psro_string 1036518::ReadTitle(wchar_t* index);