apk逆向__懒人驾考去会员
考驾照的时候,有人推荐了这个app,于是拿来刷题,发现要会员,于是逆了一下。
懒人驾考逆向
去除开屏广告(成功)
确定activity
前因:app 原本开屏有两个广告,直接用MT管理器启动“activity 记录”,可以看到连着有两个广告。看到activity 是SplashAcitvity。
分析代码
在jadx中找到这个activity。可以看到开屏广告的有关函数和类。看到一个onSplashAdShow()函数的实现。
查看onSplashAdShow()函数的引用
第一处
可以让这个case修改为close
最终分析调用的函数路径为
onSplashAdShow() – > com.bytedance.sdk.openadsdk.x.p040if.p041if.p042if.Cfi.call() –> com.bytedance.sdk.openadsdk.z.p046if.p047if.x.setSplashAdListener() –> onSplashRenderSuccess() –> com.bytedance.sdk.openadsdk.w.p037if.p038if.p039if.Cif.call()
第二处
另一处修改的地方
第三处
这个函数会调用 r0() 和 o0()函数。
修改这个跳转,if-eqz 为 if-nez 直接到o0()函数。
修改smali
有两处可以去除广告。
第一处
com.bytedance.sdk.openadsdk.x.p040if.p041if.p042if.Cfi.call()
把succedd 的case 跳转到close中。
第二处
com.bytedance.sdk.openadsdk.w.p037if.p038if.p039if.Cif.call()
第三处
if-eqz v1 ,; cond_26 如果v1 为0 ,跳转到26处。
if-nez v1,; 如果v1 不为0 ,跳转到26
if-ne v1 v2 如果不等于就跳转,改为eq
开通会员
代码分析
第一处
捕获这个按钮的点击事件。
从开启会员按钮处,点击,然后返回到主页面的时候会触发一些函数。
下面这个函数,就是判断放弃开启VIP。
如股票M 判断为真,那就直接结束这个vip购买的activity的。
找到一个判断是否开通会员的逻辑代码
openvipActivityNewB()
修改smali
直接在M函数处返回1。
重新签名打包安装后,可以看到“永久会员”。