ly19961202 发表于 2021-7-22 14:11

【dnspy修改dll】TunesPiano 免广告领奖励教程

1-通过查看lib可知这是一个unity且是mono打包的游戏。



2-那么就知道了要反编译/assets/bin/Data/Managed/Assembly-CSharp.dll进行破解



3-将/assets/bin/Data/下的managed文件夹拷贝到电脑

4-打开dnspy,并将整个managed文件夹放进程序集资源管理器



5-广告嘛,不就是ads、showads、showvideo等等这类关键词嘛,我都试过来了,追到了showads方法,所以搜索showads。这里会出现两个方法。打开adsrxmanaged下的showads,至于为什么打开这个看下一步



6-打开之后看看我们看到了啥?start、fail、success!这不就是我们要的代码吗?可是怎么改呢?




7-我们想想广告领取奖励流程,首先有广告,然后点击观看广告,看完广告领取奖励。可是这样的话看广告中途退出游戏怎么算呢?这样就又有一层判断,判断你广告成功看完还是错误没看完。


8-我们看看代码,首先进来先new了个对象,然后判断这个对象,如果isready不为真则返回false。我们点开这个isready看看发现初始值就是false,那这个判断不就直接返回false了。也就是说广告没有准备好就不会执行下一步操作。那么我们修改这里的false没有意义,可删可保留。而且修改false为true还是会播放广告,应该是另一个showads控制着。



9-然后是一些变量复制,等会就是要改这里,着重讲一下改什么,为什么改


10-最后调用一个show方法,顾名思义,这个show肯定就是让我们看广告的,可以通过删除来确认。把这个show删了之后点广告确实是没了,但点了广告一直转圈也不给奖励啊,这哪成啊。



11-现在确认一下情报,改的不是开头判断也不是结尾show,开头判断可删可不删,为了不看广告show是必须得删。然后那个failedrewardvideo变量肯定不需要可删可不删(因为本身就是null),还有一个startrewardvideo变量一个为null一个赋值,为null的可以删除。那么就剩下这些了,如图。


12-那怎么改那个success变量呢?看一下那个show方法,方法里有两个参数,分别引用——onCallCloseRewardVideo和OnCallShowRewardAds



13-先不管这俩参数是干啥的,分别打开看看,当我看到第一个也就是onCallCloseRewardVideo我就已经有了眉目了。



14-看上图画箭头的地方,如果完成奖励视频succ变量等于start变量否则failed变量等于start。我们再看看此时start变量的值是多少。



15-这下知道怎么改了吧,那个start可删可不删


16-接下来保存,然后把修改后的dll覆盖到游戏里签名安装,看看能不能免广告领奖励


注意:
1-提示广告还没准备好说明还没加载到广告,等有广告再点可免广告得奖励。
2-有广告后钻石那里点一下免费按钮可免广告得钻石,但是此时你再点会无效,这里你重复点进钻石界面即可重复钻石+1。
3-有广告后点free按钮即可免广告解锁,但此时你再点其他的会无效,需点一下钻石那边的免费按钮再回来点歌曲的free即可解决

小木曾雪菜 发表于 2021-7-22 16:24

竟然现在还有mono后端的unity游戏,现在看到的基本上都是il2cpp了

qc123 发表于 2021-7-22 17:48

感谢楼主的教程

aonima 发表于 2021-7-22 18:05

感谢楼主的分享

dell2k 发表于 2021-7-22 18:26

这个教程好, 通俗易懂

saisai0102 发表于 2021-7-22 18:48

感谢分享,这个教程不错,学习学习。

gaoliying 发表于 2021-7-22 19:54

这个教程可以啊,感谢楼主的分享!

hswei 发表于 2021-7-22 20:08

感谢楼主的分享

温柔 发表于 2021-7-22 20:23

il2cpp的怎么免广告?

addsn 发表于 2021-7-23 00:10

厉害了!我也试着去操作一下看看。谢谢楼主
页: [1] 2 3
查看完整版本: 【dnspy修改dll】TunesPiano 免广告领奖励教程