Andriod反编译-从iReader开始学习反编译

一、声明

    本人反编译只用于学习交流,禁止使用本文章用于商业用途。其次,如果本文章侵害了您的权益,请及时联系我删除本文。

二、准备

    1. 该文章使用window10系统,使用其他系统可能会与本文章描述有所不同。

    2.安装好的 Android Studio 软件一套,并确保软件编译工作正常。

    3.java反编译工具 jadx与dex2jar,没有请网上自行下载。

三、待反编译app下载

    度娘搜索iReader历史版本,下载 iReader的2.0.0与2.7.2版本的安装包apk。历史版本功能简单,对于初学者更友好一点,同一主版本号结构相似,有参考对比价值。

四、反编译过程

1.使用jadx

    打开jadx,选择打开iReader-2.0.0.apk,等待反编译完成。

    发现主要有四个程序包:com.a.a.a.a、com.alipay.android.app、com.chaozh、com.zhangyue.iReader。分析:com.alipay.android.app 为支付宝API,不需要关注,直接从网上下载库后导入进工程;com.chaozh与com.zhangyue.iReader为主要程序;com.a.a.a.a 不知道什么作用,不需要关注,重新封装导入工程即可。

    菜单->文件->另存为 gradle project,保存反编译结果,留后使用。

2.使用dex2jar

    使用WinRAR或者其他解压缩工具打开安装包,可以更改apk扩展名为zip后打开。解压其中的 classes.dex文件与lib/文件夹下全部文件。将 classes.dex 移动到dex2jar目录下,再cmd中运行:

d2j-dex2jar.bat classes.dex

得到 classes-dex2jar.jar 文件,删除classes.dex。

    再使用WinRAR打开刚刚得到的 classes-dex2jar.jar 文件,解压 com.a.a.a.a 程序包(先建一个com文件夹,然后解压a.a.a.a到该目录下),再使用:

jar cf a.jar ./com

重新打包为a.jar。

    下载支付宝API程序包,注意与上一步反编译得到的支付宝API接口一致,即 alipaySdk-20180601.jar 或之前版本。或者,使用打包  com.a.a.a.a 同样的方法,重新打包一个支付宝API接口程序包。

3.使用Android Studio重新编译

    打开 Android Studio,新建工程,配置如图:

其他配置默认即可。 新建好后,打开文件管理器,导入以下源文件:

1.删除iReader/app/src/main下全部文件及文件夹。

2.将用jadx反编译得到的 iReader-2.0.0/src/main 下的全部文件及文件夹移动到工程文件夹iReader/app/src/main下。

3.将用winrar解压得到的 lib/ 文件夹移动到工程文件夹 iReader/app/src/main 下,并重命名lib文件夹为jniLibs。

4.将重新打包的a.jar文件移动到工程文件夹 iReader/app/libs 下。

5.将网上下载的支付宝API程序包 alipaySdk-20180601.jar 移动到工程文件夹 iReader/app/libs 下。

    源文件导入好后,回到 Android Studio界面,编辑 /app/build.gradle文件,将 dependencies 模块编辑为:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation files('libs/alipaySdk-20180601.jar')
    implementation files('libs/a.jar')
}

五、总结

    经过以上步骤,iReader的反编译及重新编译的工程准备工作已经完成。调试编译运行的过程,请期待下一章。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值