基于React Native开发的非法App破解记录

目标app YUhSMGNITTZMeTloWm1ZdWJIVnNkWE5wY2k1dFpTOD0=

使用jadx反编译,找了一圈没有找到相应代码,看AndroidManifest.xml也不像有加壳的样子。。。 在lib目录下找到libreactnativejni.so文件,看似和react相关,莫非这app是大前端的产物?

搜索react native,果然是

React Native是一个脸书研发的开放源码的应用程序架构。 React Native基于React.js,目的是让开发者可以利用JavaScript和React.js的宣告式编程模式开发出在多平台上运作的程式。

PS: Unity开发的手游也没有相应的原生app代码,游戏逻辑全都在libil2cpp.so里,如果看到libil2cpp.so则可判断app是unity开发的。

基于React Native跨平台开发的app,逻辑都在assets的index.android.bundle里,这是个js文件,打开可以看到js代码。

(跨平台开发真烦,逆向人员得学好几套东西)

格式化一下index.android.bundle的js代码便于查看,。。。一点混淆都没有。

app能不能破解,要看其判断逻辑是在客户端还是服务端,在服务端判断的成本是比较高的,像这种“小”app应该不会投入多少成本去做安全防护,因为我们直接盲猜“是否是vip”之类的逻辑就是在客户端进行的。

这个app的视频有"免费"、"收费"之分,搜索"free"关键词,慢慢看代码梳理逻辑。

这段代码是判断是否免费然后让用户付费的逻辑,直接注释掉即可。

重打包

# 反编译
apktool d app.apk -s

# 修改 index.android.bundle
找到相应代码注释/删除

# 回编译
apktool b app -o app_repack.apk

# 签名 (我用uber签名 https://github.com/patrickfav/uber-apk-signer)
java -jar /Applications/uber-apk-signer-1.2.1.jar --apks lusir_repack.apk

如此便得到非法app的破解版了
经验分享 程序员 微信小程序 职场和发展