最近下载一个app,打开便发现大大的广告弹窗。严重影响使用体验,而现在大多数的app打开基本都是先谈广告了,是属流氓行为。于是,便动起了自己改造app的心。
一般下载的app,代码基本都在本地了,只有当数据交换的时候才会请求服务器数据。所以一般的请求数据都可以改造,而这种改造的过程,也被我们称之为脱壳。
1.前期准备
已root的手机或者安卓模拟器、mt管理器(部分操作需用到会员功能)
2.app脱壳
打开软件后有个小红圈,如下图,如果没有,检查步骤2.1,尝试软重启。如果还没有此教程就不适合你了。
返回apk包,找到,选择反编译,在如下图位置
dex++打开文件,搜索相关提示语和广告
找到之后,发现有个if判断,将免费版不能关闭提示语之后,if之前的代码删除(此处为判断有无vip然后赋值代码),重新写赋值语句const/4p1,0x1(赋值为1),让其通过if-nez(不等于0),从而跳转到cond_1a
搜索'3个”找到后点开,如下图所示,上面有个if语句,含义为如果已有规则数p1小于限定条件(const/4v0,0x3意思是将v0赋值3)就不提示
修改(const/4v0,0x3为(const/4v0,0x0)将赋值改为0,下面的if-lt是小于的意思,改成if-ge,即大于等于,连起来的意思是已有规则数p1大于等于限定条件0就不提示。
相比原来的自定义规则数超过3就用不了,修改后,自定义规则数大于0就可以用,自定义规则数不可能小于0,所以就一直可以用了。
修改完成之后保存,重新封包安装,你就会发现之前的提示语和广告没了。
app的修改有很多方法,并不唯一,选择一个最适合自己的方法就好了。
比如关于破解软件的只能自定义3条规则的限定条件,(即已有3条自定义规则后就无法添加自定义规则了),最简单的修改方法,你可以把限定的3条改成9999条,一样可以达到目的,只是我觉得修改成只有在当前自定义规则条数大于等于0条时才可以添加规则,会比较优雅。