当前位置: 首页 > article >正文

游戏逆向基础-找释放技能CALL

思路:通过send断点然后对send的data参数下写入断点找到游戏里面的技能或者攻击call

进入游戏先选好一个怪物(之所以要先选好是因为选怪也会断,如果直接左键打怪的话就会断几次)

断下来后对参数下硬件写入断点

硬件断点断下来后先取消硬件断点,然后按ctrl+f9返回到上一层,每返回一层就做好标记和断点,多返回几层然后正常运行游戏

正常运行游戏后即便没有打怪也有几个断点在不断的断下来,取消这几个断点,然后打怪

打怪的时候这个函数断下来了,参数如下

6个参数中4个是固定不变的,还有个155是我们之前找到的怪物的ID,至于0还不知道是什么东西,我们用下技能试试

第一个参数应该就是技能ID了,在代码注入器中调用试试,ECX先写死

调用成功,调用代码如下:

push 0xBF800000 push 0xBF800000 push 0xBF800000 push 0x154 push 0xffffffff push 0x1a6 mov ecx,0x206F8508 call 0x0053A6B0

现在只要找到ECX的基址就行了

我们在这个call下断,观察来源,或者直接从CE中搜索

来自esi,现在继续找esi来源

是来自上层的ecx,所以我们跳转到上一层看看

来自esi

又是来自上一层的ecx

这里是个虚函数,而且会一直断,所以在调试器中不好分析,我们直接在CE中搜索ECX的值试试

对这两个地址下断试试

继续搜索222b4e50

对这几个地址下访问断点

有好几都有访问,一个一个分析,先分析0C这个

继续搜索04B1CE40

直接就出来基址了,后面的也不用继续浪费时间分析了,ECX的基址是: [[[00645800]+0c]+160],我们把代码改一下,测试一下

push 0xBF800000 push 0xBF800000 push 0xBF800000 push 0x154 push 0xffffffff push 0x1a6 mov ecx,dword ptr ds:[0x00645800] mov ecx,dword ptr ds:[ecx+0xc] mov ecx,dword ptr ds:[ecx+0x160] call 0x0053A6B0

测试是OK的


http://www.kler.cn/news/357226.html

相关文章:

  • 【工具】使用perf抓取火焰图
  • 【4046倍频电路】2022-5-15
  • freeswitch-esl 实现保持通话功能
  • 微服务架构 --- 使用RabbitMQ进行异步处理
  • presence_of_element_located() takes 1 positional argument but 2 were given
  • [LeetCode] 542. 01矩阵
  • Frp 在云服与内网服务器间实现端口映射
  • 【Codeforces】CF 2009 F
  • 【云原生】Docker 部署 Nacos使用详解
  • DFS算法经典题目: Leetcode 51.N皇后
  • 工厂生成中关于WiFi的一些问题
  • 026 elasticsearch文档管理(添加、修改、删除、批处理)-Java原生客户端
  • 力扣1011.在D天内送达包裹的能力
  • Day13-数据库服务架构集群
  • 零基础入门人工智能,如何利用AI工具提升你的学习效率?
  • 父母教养方式测试:理解与优化家庭教育的关键
  • 基于Matlab车牌识别课程设计报告
  • C#里使用PerformLayout,强制控件将布局逻辑应用于其所有子控件。
  • pandas-使用技巧
  • 用Aconvert.com将MOBI文件转换为PDF:一步步指南