吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12490|回复: 35
收起左侧

[.NET逆向] 石油大亨实现透视效果的过程记录

  [复制链接]
什么都只会一点 发表于 2023-8-7 11:45
本帖最后由 什么都只会一点 于 2023-8-7 11:57 编辑

【前言】该贴并未有技术难点,只是用于记录,方便以后修改

【示例游戏】石油大亨(Steam正版)

【所需工具】dnSpy(爱盘里面有下载)

【开始操作】
因为是Unity游戏,而且未加密,直接使用dnSpy将安装目录下的Turmoil_Data\Managed文件夹下的所有dll文件打开
要想修改实现透视,首先需要找到一些关键词,目前并未拥有关键词,所以使用通用关键词“buy
b1df06257e56df881f297ef068794bae.png
这里找到一个方法“BuyMole”,有道翻译了一下是买鼹鼠的方法

如果正常修改金额,到这里就已经结束了,直接修改“this.Data.Money”相关的内容即可
因为修改透视效果,这里不是我们想要的,不过也能获取到另一个关键词“Mole

尝试搜索“Mole”关键词
2a086fe8ae467cf73a11e3e3b477f6be.png
这里找到一个方法“DoMoleTick”,猜测应该是处理鼹鼠帧动作的方法

经过分析,发现如图所示疑点,猜测可能是使地面暴露,也就是我们需要的内容
直接让所有地面暴露,不就是透视效果了么
我们查看这个方法的所在类
51090d013735d58cfa9f9a5d51c91ad9.png
这个类除了“UncoverSingle”方法还有“UncoverRange”方法,猜测可能是范围使地面暴露
因为鼹鼠挖掘暴露的只有一小格,而其他例如扫描器暴露的就是一个范围

分析被调用,发现果然如猜测所示,调用该方法的,确实有扫描器
这时候想要修改透视其实有很多种方法了,我提供以下修改方法
b3d3de96d48d0e21c6dde01fbb2d60c4.png
因为“UncoverSingle”方法只有鼹鼠调用,我直接在该方法里面调用“UncoverRange”方法

这样做鼹鼠就能够范围挖洞实现透视效果
值得注意的是,该方法整型变量采用“Fix32”类型,所以需要用如图方式声明整型对象
其中“p”是当前对象位置,“range”是暴露地面范围,我这里给值1000就是很大的范围,相当于全图暴露,你也可以给其他值让鼹鼠一次挖多个格子,“intensity”是强度,填1即可


这样就实现了放下鼹鼠,直接全图暴露,具体效果就不演示了

免费评分

参与人数 26吾爱币 +29 热心值 +18 收起 理由
DVSA + 1 + 1 我很赞同!
开心熊猫741 + 1 + 1 大佬永远的神
zxczxc19941102 + 1 我很赞同!
笙若 + 1 + 1 谢谢@Thanks!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Guangnianyinan + 1 + 1 鼓励转贴优秀软件安全工具和文档!
15343347719 + 1 用心讨论,共获提升!
elan + 1 + 1 谢谢@Thanks!
wangyftr + 1 我很赞同!
wabisabi07 + 1 + 1 谢谢@Thanks!
zl112233 + 1 热心回复!
savie + 1 用心讨论,共获提升!
muade + 1 + 1 我很赞同!
52bojie + 1 + 1 我很赞同!
laozhonger + 1 + 1 用心讨论,共获提升!
theStyx + 2 + 1 热心回复!
Boly + 1 谢谢@Thanks!
ShuoYan + 1 + 1 谢谢@Thanks!
wincao + 1 用心讨论,共获提升!
TinPanda + 1 谢谢@Thanks!
trueray + 1 谢谢@Thanks!
smfc + 1 我很赞同!
debug_cat + 1 + 1 谢谢@Thanks!
blindcat + 1 + 1 谢谢@Thanks!
zjczzz + 1 谢谢@Thanks!
LiiJuu + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

开心熊猫741 发表于 2023-10-22 04:02
大佬写的真的很详细了,从分析过程到修改方法使我大受震撼。
作为纯纯的菜鸟用户,不学计算机一点基础都没有的那种,
仔细琢磨了一番大佬的操作后成功实现了全图暴露效果。
真的是大受震撼,按照大佬的修改方法操作后,鼹鼠挖下第一个格子是正常暴露一个三角。此时我陷入深深地自我怀疑,是不是哪里搞错了。
当鼹鼠挖第二下,全图瞬间暴露。激动的心颤抖的手...大佬牛x!
---
简单总结一下实现效果的简明教程,以备游戏更新后和各位石油大亨复用。
个人观点,如有问题请大佬指教。
1.结束运行游戏。站内爱盘下载、解压、运行dnSpy。
2.dnSpy左上角文件-打开-选中游戏安装目录下Turmoil_Data\Managed 文件夹,全选该文件夹下所有.dll文件,点击打开。
3.点击左边栏“程序集资源管理器”任意位置,Ctrl+A全选所有程序集,(此时弹出反编译进度条),完成后点击右侧代码框。
4.软件左上角工具栏,点击“编辑”-“搜索程序集”,在显示在代码框下方的搜索栏输入搜索“UncoverSingle”
5.搜索到一个结果,(如果操作正确,此处“UncoverSingleUncoverSingle”应为橙色字体,这一行后面是Turmoli.Ground),双击这一行,上方代码框跳转到对应位置。
6.代码框右击,选择“编辑方法”。弹出新窗口。(窗口名应为“修改代码- UncoverSingle(GamePosition) : GroundPanel? @060001FE ”,至少当前版本是这样。)
7.参考楼主最后一张图片进行修改,在第13行代码下面插入图中红框内的三行代码
注意:英文半角输入,注意大小写、空格、等号、分号,要与图片一模一样。楼主图片中第16行代码末尾有一个分号被红框挡住,也要加上。
Fix32 range = new Fix32(1000);
                        Fix32 intensity = new Fix32(1);
                        UncoverRange(p, range, intensity);
                       

↑这个样子。每行前面的空格也要和图片一样。
8.输入完毕后点对话框右下角“编译”(或按F6),如果下方没有红色叹号的报错,该编辑窗口自动关闭,则代表操作正确。
9.软件左上角文件-全部保存,确定。
10.关闭dnSpy,石油大亨,启动!
最后再谢谢大佬,所有股份外加100W金的成就实在是难以完成呜呜呜呜
目录 发表于 2023-8-8 14:50
本帖最后由 目录 于 2023-8-8 14:52 编辑

楼主大大,BuyMole和DoMoleTick我编辑方法都会编译报错啊, 微信截图_20230808144819.png
如图,
我想把this.Data.OwnedDiamonds++;改成this.Data.OwnedDiamonds=this.Data.OwnedDiamonds+5; 但是不让编译

PS:明明这个DoMoleTick就没几行,报错行所在1536行
powerbike 发表于 2023-8-7 15:22
不知道为什么突然想起了魔兽世界里的隐形兔子
good7801 发表于 2023-8-7 18:07
Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗?
hjtkxg 发表于 2023-8-7 20:19
为什么具体效果就不演示了
薄荷味的白衬衫 发表于 2023-8-7 21:10
666,楼主写的很详细,学到了,谢谢
 楼主| 什么都只会一点 发表于 2023-8-7 22:17
good7801 发表于 2023-8-7 18:07
Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗?

dnSpy只会保存修改后的文件,实际上只修改了一个dll文件,其他的文件不会被替换掉
 楼主| 什么都只会一点 发表于 2023-8-7 22:18
hjtkxg 发表于 2023-8-7 20:19
为什么具体效果就不演示了

写教程的时候是另一台电脑,没截图
alicc 发表于 2023-8-7 23:30
老哥技术可以 支持
alicc 发表于 2023-8-7 23:31
希望多发点 u3d系列的教程
1983 发表于 2023-8-8 00:24
看來我以後也是石油大亨了,哈哈哈
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 00:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表