23.第二阶段x86游戏实战2-背包遍历(OD卡死解决办法,背包数量基址)

news/2024/10/8 22:42:53 标签: 保姆级攻略, Windows, 游戏

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:22.第二阶段x86游戏实战2-背包遍历REP指令详解

OD会有一个问题,打了硬件断点,然后硬件断点触发之后OD会卡死,重启电脑也没用,这时可以先在发包的位置(任意可以简单触发断点的位置应该都可以)打一个普通断点(快捷键F2)让它断下来再按F8然后再按F9,然后再打硬件断点就会好了

上一个内容通过CE搜索物品数量得到物品数量的内存地址,然后通过给物品数量打硬件写入断点(这个内存地址只要写东西了就会断下来)跳转到了一个rep指令位置,然后本次就在rep指令位置接着继续

首先通过对数量的地址打硬件写入断点在下图红框位置断点住(因为可能有其它的东西也会调用下方的代码)

断点住之后删除断点

**

然后可以看到下图红框位置ecx的值等于0x18的时候会断下来,也就是说物品的数量在ecx等于0x18时

然后分析代码,然后edi的值是背包然后它来自于edx+0x14,edx又来自于ecx

然后就得到一个公式,[edx+0x14]+0x5C位置是数量,0x5C是通过,2F-0x18=0x17,0x17*4=0x5C 得到的

如下图,ecx的值是0x18,这个0x18是已经执行完rep指令的结果,所以实际上我们要的数量应该是[edx+0x14]+0x58 这个位置 (2F-0x19)*4=0x58

然后通过现在代码分析好了,然后再通过对数量打硬件写入断点,再次断在下图红框位置,现在需要找ecx(dex的值来自于ecx)的值哪来的了

断点住,按CTRL+F9

按了CTRL+F9之后会来到下图位置

ecx的值来自于esi+eax,下图esi的值来源,来自于eax*4,下图用的lea指令所以现在的公式[[eax*4+eax]+0x14]+0x58

然后通过断点,这个断点是通过拖动物品触发的,观察eax*4的eax的值是什么,如下图,发现eax的值是当前点击物品所在背包的序号,序号是从0开始,下图红框位置是第22(这个22是十进制的)个,然后由于是从0开始所以下图红框位置的序号是0x15

然后现在知道eax是序号了,注意这个eax是通过找esi得到的,然后下图红框位置esi加了eax,这说明eax还有别的值,所以现在还剩下eax的值哪来的

如下图红框eax的值来自于ebx+0x181C4位置,然后现在的公式,[[eax*4+[ebx+0x181C4]]+0x14]+0x58

然后通过往上翻发现ebx来自于ecx,然后ecx来自于上一层,所以继续断点(还是通过数量的硬件写入断点追),通过硬件断点,断在下图位置

取消硬件写入断点,然后按CTRL+F9,来到下图位置

然后继续按CTRL+F9,来到下图位置

然后就找到了ecx,它就是基址了,0x83F458,最终的公式 dd [[0x15*4+[[0x83F458]+0x181C4]]+0x14]+0x58,然后计算它的偏移

偏移是 0x59F458

然后发现没有数量的物品,它会是一个不知道是什么的数据,可能是物品id,这个后面再写,现在把背包找出来了,可以得到物品的数量了,其它的后面再写


img


http://www.niftyadmin.cn/n/5694899.html

相关文章

JavaScript的内置对象有哪些?

一、内置对象 1、概念 ​ JavaScript 中的对象共分为3种:自定义对象、浏览器对象和内置对象。之前我们自己创建的对象都属于自定义对象,而内置对象又称为 API ,是指JavaScript 语言自己封装的一些对象,用来提供一些常用的基本功能…

MYSQL优化知识点

MYSQL性能优化 索引合并优化 索引合并访问方法检索多个range扫描的行并将其结果合并为一个。索引合并只合并单个表的索引扫描,而不合并跨多个表的扫描。 可以使用索引合并的示例 SELECT * FROM tbl_name WHERE key1 10 OR key2 20;SELECT * FROM tbl_nameWHER…

软考网络工程师——操作系统

操作系统定义:用以控制呾管理系统资源,斱便用户使用计算机癿程序癿集合。 功能:是计算机系统癿资源管理者。 特性:幵行性、共享性 分类:多道批处理操作系统、分时操作系统、实时操作系统、网络操作系统。 迕程:是一…

二十、多态

Ⅰ . 多态(polymorphism) 01 多态的概念 多态,就是“多种形态”的意思。 说具体点就是:去完成某个行为时,传不同的对象就会完成不同的行为,可以达到多种形态。 比如买票这个行为,普通人、学…

用强互作用力抵消电磁力:一种假想的物理机制

用强互作用力抵消电磁力:一种假想的物理机制 摘要 在现代物理学中,强相互作用力和电磁力是两种不同的基本力。强相互作用力主要作用于夸克和胶子之间,而电磁力则在电荷之间产生。由于强相互作用力的强度远大于电磁力,我们提出一…

(C语言贪吃蛇)15.贪吃蛇吃食物

目录 前言 注意事项⚠️ 效果预览 实现方法 运行效果 新的问题🙋 最终效果 总结 前言 我们上一节实现了解决了贪吃蛇不合理走位的情况,不理解的再回去看看(传送门:解决贪吃蛇不合理走位),那么贪吃蛇自然是要吃食物的啊&…

【Vue】Vue2(2)

文章目录 1 数据代理1.1 回顾Object.defineproperty方法1.2 何为数据代理1.3 Vue中的数据代理 2 事件处理2.1 事件的基本使用2.2 事件修饰符2.3 键盘事件 1 数据代理 1.1 回顾Object.defineproperty方法 <!DOCTYPE html> <html><head><meta charset&quo…

Crypto虐狗记---”你“和小鱼(五)

前言&#xff1a;剧情五 提示&#xff1a; 一种食物&#xff1f; 一种食物——培根&#xff1a;&#xff08;A B 也暗示是培根加密&#xff09; cyberpeace{attackanddefenceworldisinteresting} 密码学笔记——培根密码 - ILK - 博客园 (cnblogs.com)