b站视频链接:https://www.bilibili.com/video/BV1wT411N7sV/?vd_source=f767aeec67fd5d5cc2f6ff3e890917d0
一.环境搭建
源帖:https://www.52pojie.cn/thread-1695141-1-1.html
下载个雷电模拟器,MT管理器,NP管理器
将MT管理器,NP管理器拖到雷电
相关软件地址https://www.aliyundrive.com/s/TJoKMK6du6x
接着在雷电开启root然后重启
具体配置的步骤请看源帖https://www.52pojie.cn/thread-1695141-1-1.html
二、初识APK文件结构、双开、汉化、基础修改
源帖:https://www.52pojie.cn/thread-1695796-1-1.html
1.APK的文件结构(从源帖截的)
2.双开
在视频里面学到了利用mt管理器的apk共存
这里就是通过修改包名达到双开
3.汉化
这里需要用到mt管理器
先调一下分辨率,不然软件布局会很乱
将课件中给到的demo打开,这是挑战的第一关
先用mt管理器的安装包提取
然后点进去安装包搜索hello
搜到了点进去看
到这一步反编译卡住了没关系,可以去np管理器通过文件路径找到这个文件(或者直接充会员)
开始编辑
搜到这个字符串直接改
然后保存退出自动签名
接下来再找下一串字符串,一堆俄语不会写
这时候再用到课件里的开发者助手,授予root权限
之后会悬浮窗出现在左上位置
打开软件,界面分析点击开始
然后点击要翻译的那串俄文
然后复制
回到MT管理器搜索
点进去再搜索
跟进
修改这串字符串就好了
保存退出 Reverse determines height,
development determines depth.
第三串字符串也是同理
安装时出现这种情况
直接安装会安装失败
这里点确定先卸载
然后接着安装
修改成功
还要替换图片
(这个貌似没讲,讲了当我没说)
关于图片这种静态资源,需要找res目录
这里随便翻个图片,然后改成一样的名字cf.jpg
之后安装
安装成功(安装成功的原因应该是签名一样)
看看效果
4.修改图标和软件名
这里用np管理器更方便
点功能
然后这里有个通用编辑的功能
这里就正常改就可以
安装成功
三、初识smali,vip终结者
源帖:https://www.52pojie.cn/thread-1701353-1-1.html
先把核心破解导入,会出现这种弹窗
点进去然后启用页面选择系统框架,之后退出重启模拟器
记得把这个勾上
点进demo看一下,说要冲会员
我们用jadx-gui打开,搜索大会员
点进去看一下java函数
public static final void m456onCreate$lambda1(ChallengeSecond challengeSecond, View view) {Toast.makeText(challengeSecond, "请长按完成一键三连", 1).show();}/* renamed from: onCreate$lambda-2 */public static final boolean m457onCreate$lambda2(Ref.IntRef intRef, ChallengeSecond challengeSecond, ImageView imageView, ImageView imageView2, ImageView imageView3, View view) {if (intRef.element < 10) {Toast.makeText(challengeSecond, "请先获取10个硬币哦", 1).show();}if (challengeSecond.isvip()) {ChallengeSecond challengeSecond2 = challengeSecond;Toast.makeText(challengeSecond2, "当前已经是大会员了哦!", 1).show();imageView.setImageResource(R.mipmap.zan_active);imageView2.setImageResource(R.mipmap.coin_active);imageView3.setImageResource(R.mipmap.collect_active);SPUtils.INSTANCE.saveInt(challengeSecond2, "level", 2);} else {Toast.makeText(challengeSecond, "请先充值大会员哦!", 1).show();}return true;}
}
看起来还要获取10个硬币,还有一个isvip方法判定
看一下smali
可以看到这里没有汉字,这里把大会员转成unicode编码\u5927\u4f1a\u5458
这时候可以看到
这时候再更省事一点,用MT管理器搜大会员
先搬个图来
分析一波关键代码
const/4 p5, 0x1const/16 v0, 0xa #a转十进制就是10if-ge p0, v0, :cond_15 #p0是读取获取硬币的数量,若p0>=v0跳转到cond15.line 34move-object p0, p1check-cast p0, Landroid/content/Context;const-string v0, "请先获取10个硬币哦"check-cast v0, Ljava/lang/CharSequence;invoke-static {p0, v0, p5}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;move-result-object p0invoke-virtual {p0}, Landroid/widget/Toast;->show()V.line 36:cond_15 #跳转的位置,下面调用isvipinvoke-virtual {p1}, Lcom/zj/wuaipojie/ui/ChallengeSecond;->isvip()Z move-result p0 #isvip判定后返回结果到p0if-eqz p0, :cond_43 #若p0等于0,跳转cond43,说明没激活大会员.line 37check-cast p1, Landroid/content/Context;const-string p0, "当前已经是大会员了哦!":cond_43check-cast p1, Landroid/content/Context;const-string p0, "请先充值大会员哦!"check-cast p0, Ljava/lang/CharSequence;
改一下关键的逻辑就可以了
根据视频介绍有三种
1.修改判断
修改if-ge为if-le,if-le就是p0<=v0发生跳转,硬币这里通过后
接着是大会员,将判断函数注释掉就不会发生跳转
安装查看结果,成功
2.强制跳转
先在这里设置一个跳转点,相当于直接跳过硬币和会员判定
再设置一个强制跳转
也是可以
看了视频跟我的有点不一样
他是把判定直接改成强制跳转,然后把会员那边给注释掉
3.修改寄存器的值
把这个要求达到的硬币数量改成0,同样注释掉会员判定
四、恭喜你获得广告&弹窗静默卡
源帖:https://www.52pojie.cn/thread-1706691-1-1.html
第四关是三秒广告,一个更新弹窗,两个广告弹窗,还有一条横幅弹窗
1.修改广告显示时间
先看这个三秒广告
这里需要用到MT管理器的activity记录,然后启动服务
切到广告页面,可以看到记录到了adactivity
切回MT停止服务然后复制,接着点进class.dex搜索
可以看到只有一个,点进去
转成java代码(没会员可以用np管理器来看)
就看loadAd(),这里设置的3000ms就是3秒,
接下来点这个导航按钮,或者直接搜loadAd
点进loadAd,可以看到这里有个0xbb8转十进制就是3000,把这个改成0x0就可以了
保存安装,3秒广告这边已经没了,直接是更新
其实用activity记录看一下,这里adactivity还是有的,只不过改成0显示时间短了
2.修改xml中的versiocode(更新弹窗)
这里是针对更新弹窗,
点进这个xml看一下
可以看到版本号是1,需要改成更高版本的,这里就假设改成2
保存退出看一下效果,更新弹窗没了
3.修改广告弹窗
(1)用算法助手屏蔽关键词弹窗
安装算法助手,并如下图设置
之后进入算法助手,点wuaipojie
应用总开关打开,弹窗定位跟屏蔽打开
屏蔽打开时,设置关键词,中间要用英文逗号隔开
然后三角号运行
看一下效果,更新和广告弹窗都没了
(2)修改dex弹窗代码(只针对广告弹窗)
这里还是要用到算法助手
如下设置,然后运行
看一下广告弹窗,看完后回到算法助手
点进去看一下
点进第一个查看
这里的堆栈可以理解为逻辑执行的顺序,我们复制这个,到dex里面查找
点进这个看一下
可以看到关键词
这里搜一下show(),(像show()这种方法就是显示弹窗的)
这里面总共有两个show方法,把这一行注释掉
这是一号弹窗
这是二号弹窗
保存重新安装,现在只剩下横幅广告了
4.去除横幅广告
这里用到开发助手(注:不是开发者助手)
点一下布局查看
回到横幅广告处,点一下放大镜
点横幅
看第一个
复制id
用xml搜索
这里搜索注意把0x删掉
点进去没有找到id
这里把id转名称关掉就可以看到了
具体看一下
<ImageViewandroid:id="@7f0801ca" #图片idandroid:background="@7f0d0017"android:layout_width="wrap_content" #图片宽度为自适应android:layout_height="150dp" #图片高度为150dpandroid:layout_marginTop="100dp" />
我们只需要把宽度和高度改成0dp就可以了
保存重新安装查看效果,搞定!!!