Android修改DLL大量货币---001
本帖最后由 什么都只会一点 于 2019-4-5 22:31 编辑游戏实战教程
通过游戏实战来更好的学习DLL修改
第一个是比较简单的大量货币修改方法,纯新手教程,大佬勿喷~
【示例游戏】
链接:https://pan.baidu.com/s/1b9PLcDhmnfC87WjSCik7QQ
提取码:7oav
【所需工具】dnSpy(爱盘里面有下载)
【课前准备】
(这段是百度百科,可以不看)
DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。
使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。
另外,使用DLL文件还可以减小程序的体积。
我的理解是:DLL文件可以看成一个集成了很多方法函数的文件(类似方法调用)
【试用范围】
现在很多国外游戏都是使用DLL来封装方法的,电脑很多软件的DLL文件也是可以改的
【开始操作】
先进入游戏看下,如下图
可以看到游戏初始货币为500,而且可以看到【Add Funds】,注意一下
将APK拖进AndroidKiller,反编译完成后打开assets/bin/Managered,打开文件路径,如下图所示
将文件拖到桌面上(个人习惯)
打开dnSpy,选择文件-打开,如下图(你们打开的界面布局可能跟我的不一样,我自己调整过)
打开桌面上的Managered文件夹,将文件夹里面的所有DLL文件全选,点击打开
还记得开始要你们注意的【Add Funds】,在搜索输入框输入"funds",我们可以看到如下图的两个方法"get_Funds"
这里说明一下,游戏在减少或者增加货币的时候,一般会先获取到当前货币的值"get_Funds"中文翻译就是获取货币
这里有两个,不知道哪一个才是真正的获取货币,所以直接两个都改掉,双击第一个"get_Funds",页面如下图所示
单击一下get大括号里面,右键,选择编辑方法,如下图所示
我们可以看到这里的"get_Funds"里面直接return this.funds/29;
也就是直接返回一个值
【修改思路】
让它里面直接返回一个固定值,然后不管游戏获取这个货币都是固定值
修改如下图
点击编译
同样的操作,修改下面的"get_Funds"
修改完毕,点击全部保存按钮,如下图
将修改完后的Managered文件夹重新覆盖掉原本的文件夹,编译,签名
进入游戏看下,修改成功
【总结】游戏里面的货币一般都是固定的方法名get_xxx
下面文件是DLL修改时常用的关键词
链接:https://pan.baidu.com/s/1WOedhFDMdJq6cnvPGDriaA
提取码:3lx7
【作业】
同样是这个游戏,将货币下面的Fires也修改成大量
欢迎在下方评论,不懂的也可以问,看到会回复的
-----------------------------------------------------------------------------------
Android修改DLL大量货币(二)---002
https://www.52pojie.cn/thread-921749-1-1.html 丶那年如此年少o 发表于 2019-3-28 09:27
请教下,为什么看到assets/bin/Managered就要用dnSpy?而不先分析dex?
是因为游戏它的代码都会在Managere ...
并不是,主要是打开这里面的文件夹,看里面是否有dll文件,有些dll加密了,显示成dat文件,只能使用IDA静态调试修改。 此DLL是C#的类库,现在一部分unity3d的游戏是基于这个开发的= =
和C的DLL动态链接库是两回事额。。 安卓原来也能调用DLL,我还一直dll以为是微软亲儿子呢{:301_1009:} 这个很6{:1_886:} 天使3号 发表于 2019-3-27 23:44
安卓原来也能调用DLL,我还一直dll以为是微软亲儿子呢
dll是动态数据库,Java可以调用,安卓软件是Java编写的,可以调用很正常 感谢楼主,学习啦 奥术大师大所多 原来可以这样啊
感谢楼主 感谢楼主