吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6356|回复: 18
收起左侧

[.NET逆向] 某游戏引擎成品修改内置字符串方法笔记

  [复制链接]
CrazyNut 发表于 2019-4-3 23:29
本帖最后由 zjh16529 于 2019-6-6 18:30 编辑

最近遇到一个问题  某游戏引擎的游戏  都知道代码可以在Assembly-CSharp.dll里面修改

可是当数据直接在引擎里面赋值的时候,怎么找到字符串并修改呢?点这里可以看我的提问

我想到的方法还是从Assembly-CSharp.dll里面修改
如果大佬有更好的方法麻烦教教我





下面演示下过程   先自己搞一个Demo出来

QQ截图20190403230311.png
有7个文本框,每个文本框内容不同【模拟一下正常软件】,我要修改我想修改的文本框的内容和字体大小


QQ截图20190403230710.png
然后随便来一个空代码随便绑定在一个物体上【模拟一下正常软件,因为修改也至少要有一个脚本才行】



方法1:

感谢@艾莉希雅 大佬

QQ截图20190407132211.png

Data目录下会有一个level0的文件    后面的0代表场景顺序   
我的Demo场景只有一个场景自然只有一个0    游戏一般会有多个场景   0.1.2.3..... 至于要改的是哪一个,,应该只有自己挨个打开看了

然后用Notepad++打开  转成UTF-8编码

QQ截图20190407132645.png

直接就能看到自己的字符串了。。。直接修改就行  

注意保持文本长度一致,不然改了后打不开!



方法2:

OK 然后打包出来 Dnspy 反编译Assembly-CSharp.dll【PC和安卓都一样  为了方便我就打包PC了】

QQ截图20190403231110.png

可以正常的看到之前的代码。。
但是编辑的时候遇到个问题。。因为文字框是UI  必须Using UnityEngine.UI.dll  。。然后我发了一个问题

Dnspy怎么添加引用?, 在大佬的解答下   导出工程  然后用vs打开添加引用就OK了

QQ截图20190403231651.png

接下来开始用代码找到我们的文字框并修改
【直接贴代码了】

QQ截图20190403232312.png


这里说明一下 在Unity里面 每一个物体都是一个GameObjet  不过只是每个物体带的组件不一样功能就不一样
QQ截图20190403232938.png


把改好的dll 替换进去 直接启动 OK 了
QQ截图20190403232458.png


大佬们有更好的办法务必教教我  QAQ 谢谢

免费评分

参与人数 10吾爱币 +14 热心值 +9 收起 理由
千百度° + 2 + 1 大佬666~
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
l99650 -1 + 1 专程来扣你CB
SHUBOSS + 1 谢谢@Thanks!
云幻灭 + 1 + 1 用心讨论,共获提升!
总有刁民想害朕~ + 1 + 1 我很赞同!
onihot + 1 + 1 学习了,感谢教程
itmaple + 1 我很赞同!
sunnylds7 + 1 + 1 热心回复!
独行风云 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

另类飞翔 发表于 2019-4-4 08:44
本帖最后由 另类飞翔 于 2019-4-4 08:58 编辑

还有一种方法,当没有挂载脚本的时候,自己仿写一个Assembly_Csharp,在模块里编写你的上面的修改代码,然函数,注入后去挂载脚本就好了
                        GameObject gameObject = new GameObject("Test");
                        gameObject.AddComponent<Test>();

点评

你这个方法绝对有问题 而且没挂任何脚本的话 根本不会运行 这一段代码吧 动态加载物体 坐标你怎么算 不好放在你想放的地方不说。。 text组件不是必须在canvas下才行  详情 回复 发表于 2019-4-4 09:20
 楼主| CrazyNut 发表于 2019-4-4 09:20
另类飞翔 发表于 2019-4-4 08:44
还有一种方法,当没有挂载脚本的时候,自己仿写一个Assembly_Csharp,在模块里编写你的上面的修改代码,然 ...

你这个方法绝对有问题   

而且没挂任何脚本的话  根本不会运行  这一段代码吧

动态加载物体   坐标你怎么算  不好放在你想放的地方不说。。  text组件不是必须在canvas下才行
kamui 发表于 2019-4-4 00:15
艾莉希雅 发表于 2019-4-4 00:36
et.jpg

ea.jpg

事实上……修改UTF8编码就……

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
CrazyNut + 3 + 1 大佬牛逼! 我等下更新方法到帖子里面
qaz003 + 1 + 1 哈哈,这么暴力

查看全部评分

艾莉希雅 发表于 2019-4-4 00:38
哦顺便附上UTF-8编码转换
http://www.mytju.com/classcode/tools/encode_utf8.asp
不是广告……
头像被屏蔽
vvking6 发表于 2019-4-4 06:58
提示: 作者被禁止或删除 内容自动屏蔽
hcoolman33 发表于 2019-4-4 07:48
谢谢LZ分享。
Yanpeen 发表于 2019-4-4 07:57
佩服楼主的毅力和学习能力,同时也谢谢楼主的分享
51PJcpuyong 发表于 2019-4-4 08:10
unity学习
magang 发表于 2019-4-4 08:29
佩服楼主的毅力和学习能力,同时也谢谢楼主的分享。
eflysky 发表于 2019-4-4 08:35
这个厉害,封包过程中会报错吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-29 17:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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