Android反编译

1.工具

有很多反编译工具, 我们平时最常用的是dex2jar+jd-guiApkTool

贴上工具下载链接

https://github.com/pxb1988/dex2jar   dex2jar下载

http://jd.benow.ca/    jd-gui下载

https://github.com/iBotPeaches/Apktool   ApkTool下载

 

2.用法

解压apktool

 

解压dex2jar

 

解压jd-gui

 

3.配置环境变量

配置apktool的环境变量

配置dex2jar的环境变量

 这里记得配以下JAVA_HOME环境变量,笔者之前之前在path中配jdk的路径,发现运行jd-gui会报错“This application requires a Java Runtime Environment 1.8.0 ", 然后原因jd-gui会检测有没有JAVA_HOME在注册表,对应的指向是不是1.8.0.  如果没配,即使jdk是1.8的版本,依然会报错。

 

4.开始反编译

 

 

 

三件套分别是干什么的?

1.apktool

运行命令  apktool.bat d xxx.apk 可以得到   不乱码 的清单文件和res资源文件,有.smali文件阅读基础的可以直接看人源码。

2.dex2jar

用这个工具之前,你需要先解压apk.

更改文件格式,由.apk变为.zip

解压

得到几个classxx.dex文件

运行

d2j-dex2jar.bat classes.dex

得到.jar格式的dex文件

3.jd-gui出场

选择.jar文件的打开方式,已jd-gui打开。双击即可,哦了

 

4.大多数类jd-gui可以打开,做了安全措施的话,就会显示// INTERNAL ERROR /

是不是一筹莫展。别着急宝贝,这里有个神奇Luyten,它需要jdk 1.7-1.8

 

5.修改代码后,开始重编译

安装报错

apktool出场,运行命令  apktool.bat b “xxx文件夹”,命令运行成功之后,在xxx文件夹/dist/生成对应apk

 

直接adb install ,会报这样的错

adb: failed to install .\yunjiV4-yj-release-v3.68.08131-36808131-20190813-221318.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl437485846.tmp/base.apk: Attempt to get length of null array]

意思就是没有证书,需要签名

 

如何生成一个.keystore

 

如何给apk签名

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkin] [alias]

命令格式及参数意义:

-verbose -> 输出签名过程的详细信息

-keystore [keystorePath] -> 密钥的库的位置

-signedjar [apkOut] -> 签名后的输出文件名

[apkin] -> 待签名的文件名

[alias] -> 证书别名
 

完美

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值