某“xx王OCR” APK乐固加固脱壳修改VIP,再编译打包签名过程练手
【前言】之前windows的脱壳有玩过几次,首次进行android脱壳逆向实践,本文主要是记录下过程,同时把中间遇到到坑和问题说明下解决方案,老鸟可忽略,菜鸟可参考。
【识壳&搭建环境】
有段时间使用OCR转换图片到文字场景使用较多,于是在网上找个不错的OCR识别应用:“xx王OCR”,正常使用有次数限制,会员就VIP了。。。
本着学习的心态,开干:
[*]正常逆向代码没啥东西,不用说加壳了
[*]搭建环境进行脱壳
[*]网上常见的脱壳都是通过xposed框架进行,于是最开始使用真机,非root使用virtualxposed,问题很多,各种问题。
[*]于是走虚拟机方式,使用夜神模拟器,安装 xposed框架。
[坑1] 夜神应用中心的神盾xposed框架只适合安卓5的系统,默认的安卓7使用则会重启后卡死在99%,原因未知
3.如下安装的xposed环境
4. 安装各种脱壳的模块,各种问题,最好用的是 反射大师
[坑2] 易开发、FDex2会hook,很容易导致APP无法再次打开,卸载重装都无效,只有在xposed中禁用这些模块,再重启虚拟机才能打开。
【脱壳】
[*]按现有的方法进行脱壳,不啰嗦了,请自行百度
【分析代码】
[*]就是常规的操作,通过关键字搜索代码,跟踪分析VIP判断函数等
[*]关键点找到了,再通过MT管理器,反汇编classes.dex进行smali代码修改,把会员判断置位yes,有效期2099年
如下是修改后的smali代码:
[*]再通过MT管理器编译classes.dex即可。
[注意点] 脱壳的classes.dex有必要用MT进行修复,否则会出现安装后打不开,logcat跟踪发现有异常提示classes权限问题等。
【其他修改】
[*]androidmainfest.xml 必须要修改
<application android:name="//这里替换成脱壳前com.wrapper.proxyapplication.WrapperProxyApplication.java 中static String className = 的赋值内容。
还有一个 <activity 中的android:name="cn.abuapp.scanking.wxapi.WXPayEntryActivity"也替换成上面的内容。
[*]xml的编译尝试了各种办法,apktool,AXMLEditor,xml2axml都不好使,修改后再编译androidmainfest.xml 打包进apk,直接解析失败,这里也是耗时最久的地方
[*]后面通过ApkToolBox 解包再打包曲线配合MT才搞定
[*]删除tencent_stub,还有lib下的libshella-等
[注意点] 上面的jar,需要安装jdk,有些需要翻墙才能下载合适版本。
【打包&签名】
[*]可以通过zip打包,改后缀apk,再签名的方法。
[*]签名可以直接使用jarsigner对apk进行签名
【安装后验证】
【全文完】
duddy.j 2021.6.6 孤影啸苍天 发表于 2021-7-22 16:23
楼主,按照你的大体方向做到了最后会员到期时间的页面,但是,其他功能一打开就闪退。
应该是脱壳有问题,你用BlackDex脱壳试下(这个神器比较好用) chermy 发表于 2021-6-7 10:39
反射之前还有一些小问题, 现在已经修复了, 用起来也正常
大佬你试试绿洲能不能用反射脱壳,我脱半天都不行 还是相当厉害的,单单配置环境就要很有耐心。 学习一下,
谢谢楼主分享。
学习一下,感谢分享。 图文并茂,内容精彩,感谢分享。 感谢分享 谢谢楼主分享! 图文并茂,很细心,谢谢分享。 {:1_907:}写个HOOK APP也并不是不可以.不过需要root 膜拜了,大神!好好学习