本帖最后由 我已经蓝屏 于 2021-7-17 11:06 编辑
开罗的游戏最近广告也不少了
不过人家做游戏也不容易
所以大家能支持的还是支持下
所以本篇仅供交流,成品请到博客里找
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
由于写的是复现过程,所以可能会比较啰嗦,请谅解
准备
修改权限
- 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
- 下图是权限表,那些粉色的条目都是隐私条目,可以删除
删除方法:先点击工程管理器 ,在结构的最后几项里有个叫AndroidManifest.xml 的文件,双击编辑。找uses-permission 元素,属性名为那些粉色的条目,将其删除即可
- 点左上角的编译测试一下
- 如果编译的时候遇到
No resource identifier found for attribute 'compileSdkVersion' in package 'android' ,可以在AndroidManifest.xml 中,把android:compileSdkVersion 和android:compileSdkVersionCodename 这两个属性删除即可
- 发现会弹出toast,还会跳出提示,接下来得改源码了
权限提示
- 打开jadx,左上角打开文件,选择程序的dex(位置在
程序根目录\projects\包名\ProjectSrc )
- 打开入口的源代码,入口在工程信息处可以看到
工程信息
- 可以看出,程序强制需要手机状态和写入存储,我们只需要把都手机状态改掉就行了
- 回到AndroidKiller,点击工程信息里的入口可以跳到对应的文件,找到所有的
READ_PHONE_STATE 将他替换成WRITE_EXTERNAL_STORAGE 即可,现在把toast改好了,下面来改弹框
- 在jadx中,按下
Ctrl+Shift+F ,搜索弹框里的关键字,比如搜索去设置 ,可能会出来两个结果,先对其中一个进行操作,然后对另一个也同样操作
- 看一下这两个脚本,可以看出里面有三个地方检查了权限,下面我们可以跟着第8步的操作,把这三个地方还有另个脚本的权限检查替换掉,方法如下
- 打开AndroidKiller,在工程管理器中找到这个文件,找到其他权限,将其替换成
WRITE_EXTERNAL_STORAGE
- 点左上角的编译测试一下
- OK,权限问题解决
去广告
-
用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
-
东西还不少,可以把不是开罗的Activity都删掉,如果不放心可以删完之后去模拟器上测测
Activities
具体操作方法可以先点击工程管理器 ,在结构的最后几项里有个叫AndroidManifest.xml 的文件,双击编辑。然后找里面的Activity元素,看他的android:name 属性,属性值里没有kairogame 的都可以删除。(如果要删除的Activity里有子元素也得删除)
-
其他的Receiver和Service也都可以删除,方法和删Activity一样(非必要)
-
这是删完多余Activity和Receiver和Service后的样子(还有权限)
删后
-
可以测试一下,发现进入游戏之后下面的框没有消失,看来有可能在Unity里控制
-
打开dnspy,用他打开Unity库(位置在程序根目录\projects\包名\Project\assets\bin\Data\Managed )
-
可以看到有个库叫kairo.unity.ad ,有可能是控制广告用的,打开看看,里面有个GetAdHeight 函数
GetAdHeight
指向了GameDefines.GetAdHeight 函数,我们追踪进去看看
GameDefines.GetAdHeight
这里又指向了一个叫做ADMOBHEIGHT 的静态变量,其内容为Screen.height / 12 ,即为屏幕的1/12,可以看到这个函数的上面有个叫ADMOB_ENABLE 的变量,其值为true ,有可能是控制广告开关的地方。
AdFlag
-
我们这里把ADMOB_ENABLE 改成false,操作方法如下:
对ADMOB_ENABLE 右键,选择编辑方法 ,在修改代码 窗口中找到GameDefines.ADMOB_ENABLE = true; ,将其改为GameDefines.ADMOB_ENABLE = false; ,点击右下角的编译 ,回到主窗口,点击左上角的文件 ,选择保存模块 ,再点击确定 即可
-
回到AndroidKiller,编译看一下下面的广告栏有没有消失
-
OK解决
修改金币
- 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
- 打开dnspy,用他打开Unity库(位置在
程序根目录\projects\包名\Project\assets\bin\Data\Managed )
- 先打开游戏看看,我们的初始金币是20000
初始金币
回到dnspy,先点击我们的Assembly-CSharp 模块(点不点都可以),然后点击编辑 ->搜索程序集 (Ctrl+Shift+K),输入20000 ,搜索类型选择最下面的数字\字符串 ,搜索范围选择所有文件
搜索20000
可以看到第一项是game.Player 类的构造函数,我们双击点进去看看
Player.ctor
大概率来说,这个20000就是初始金钱了
修改初始金币
- 对
money_ 进行右键,点击编辑方法 ,找到20000,修改成想要的数字,然后点编译即可(如果编辑方法下面报错的话可以先关闭编辑方法,还是右键,选择编辑IL指令 ,找里面的0x4E20 (这里是16进制,你直接写10进制进去不影响),改成你想要的数字,比如999999 ,然后点确定即可),修改完点文件 ->保存模块 ->确定 ,即可
- 回到AndroidKiller,编译看一下新存档进去有没有999999的钱
- OK解决
999999
减变加
- 对
money_ 进行右键,点击分析 ,查看他的赋值于
money
可以看出第一条大概率是用钱或加钱的时候使用的函数
第二条应该是读存档的时候用的函数
第三条就是我们刚刚的新存档的函数
- 我们进入
game.Player.AddMoney 这个函数
game.Player.AddMoney
可以看到前半段是算钱的,后半段大概率是算成就之类还有反作弊之类的(防内存修改。吧)所以我们还是老套路,把这个val 的值绝对值一下即可
- 对函数内容右键,选择
编辑方法 ,在方法的第一行加上val = JMath.Abs(val); (这里的JMath.Abs 在函数后面用到了,我们直接拿来用就行)点击编译,修改完点文件 ->保存模块 ->确定 ,即可
- 回到AndroidKiller,编译看一下用钱之后的变化
用钱
这里我用钱反而钱变多了,OK
修改代币
- 用AndroidKiller打开,如果解包解到一半卡住了就直接退了重进即可,源码可以直接使用jadx查看
- 打开dnspy,用他打开Unity库(位置在
程序根目录\projects\包名\Project\assets\bin\Data\Managed )
- 再进游戏,选择
菜单 ->运营 ->歪罗商店 ,点击观看视频 ,会弹出接收奖励 的对话框,然后会给你几个到几十个不等的歪罗点数,如果我们还想看会有CD,我们需要把CD去掉,然后把奖励的点数调高就可以随时随地的获得代币了,我们先从接收奖励 入手
接收奖励
我们去dnspy搜索这个接收奖励,先点击我们的Assembly-CSharp 模块(点不点都可以),然后点击编辑 ->搜索程序集 (Ctrl+Shift+K),输入接收奖励 ,搜索类型选择最下面的数字\字符串 ,搜索范围选择所有文件
搜索接收奖励
可以看出这个ProExShop 比较像一点,我们点击进入这个函数
ProExShop
伪代码:
if(玩家数据中没有Key的名称为Skitime){
if(玩家没联网){
提示("检查网络状态");
}else{
玩家数据.设置Key为Skitime的项,值为当前时间;
显示广告;
提示("正在接收奖励");
给奖励();
}
}else{
上次记录的时间=玩家数据中的Skitime的值;
差值=上次记录的时间-现在时间;
if(差值<300){
提示("CD300秒");
}else{
玩家数据.设置Key为Skitime的项,值为当前时间;
显示广告;
提示("正在接收奖励");
给奖励();
}
}
我们需要做的事:把差值的阈值改小,修改给奖励的地方
4. 右键,编辑方法,将if (timeSpan.TotalSeconds < 300.0) 处的300 改小即可,改成1啊2啊啥的都行,编译,OK
5. 双击need1back() ,进入函数,可以看出这里做了一个概率系统,阶梯型的给代币,这里我们在概率系统执行完之后将我们想要的值赋给num2 就可以替换掉概率系统,而达到每次看视频都是一样的效果了
6. 右键,编辑方法,在概率系统结束后的第一行,也就是MyFormBase.apdat_.sysSave_.ints[59]++; 的前一行加上num2 = 想要的数; 即可,例:
歪罗点修改
这样每次就会给我加500点了,点击编译,点文件 ->保存模块 ->确定 ,即可
7. 回到AndroidKiller,编译看一下点查看广告后还有没有cd,有没有一次给500
1000
OK,两秒1000发
原软件下载地址
百度云盘
链接:https://pan.baidu.com/s/14rTJWx9Pt62g9GLT4O3u-g
提取码:690d
|