网站首页 > java教程 正文
apktool :https://ibotpeaches.github.io/Apktool/install/
资源文件获取,可以提取出图片文件和布局文件进行使用查看
还可以将反编译之后的apk重新打包成apk文件,但需要重新签名,才能安装使用
dex2jar:https://sourceforge.net/projects/dex2jar/
将APK直接反编译成Java代码(目录下包含的一个classes.dex文件反编译为classes-dex2jar.jar)
jd-gui.jar:http://java-decompiler.github.io/
直接查看classes-dex2jar.jar文件(源代码)
下载好放在同一个文件
使用apktool
1. 反编译apk得到图片、XML配置、语言资源等文件
运行可执行jar包的命令是:
java -jar apktool_2.0.1.jar d -f apk包的位置 -o 输入名字
编译成功会生成CCC的文件夹 ,可更改xml配置文件
2.重新打包apk
java -jar apktool的名字 b(打包) 要打包的文件夹名字
CC(打包的文件夹名字)目录下面生成一个dist目录,里面就是重打包之后的apk,但是这个apk没有签名,需要重新签名之后,才能安装。
3.签名过程
生成keystore文件
keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
执行该命令会生成一个dabao.keystore证书文件。
- -genkey 产生证书文件
- -alias 产生别名
- -keystore 指定密钥库的.keystore文件中
- -keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
- -validity 为证书有效天数,这里我们写的是40000天
apk重新签名
将dist目录下的apk拷贝到d:\apktool目录,执行下面命令
jarsigner -verbose -keystore demo.keystore demo.apk demo.keystore
- rbose 指定生成详细输出
- -keystore 指定数字证书存储路径
查看签名:
keytool -list -printcert -jarfile app-release.apk
使用dex2jar获取源代码源代码
将要反编译的APK后缀名改为.zip,解压得到其中的classes.dex文件(java文件编译再通过dx工具打包而成的文件)
将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内
执行:
d2j-dex2jar classes.dex
成功会生成classes-dex2jar.jar 文件(源代码件)
查看源代码
使用jd-gui.exe 打开classes-dex2jar.jar 即可查看代码信息
猜你喜欢
- 2024-09-22 推荐11个GitHub上比较热门的Java项目
- 2024-09-22 「从入门到放弃-Java」并发编程-锁-synchronized
- 2024-09-22 Android Apk 文件反编译和重新打包的过程分析
- 2024-09-22 APP渗透—查脱壳、反编译、重打包签名
- 2024-09-22 通过Java反编译揭开一些问题的真相
- 2024-09-22 详解Javac编译与反编译(java编译和c编译的区别)
- 2024-09-22 初试安卓软件反编译破解软件的方法
- 2024-09-22 安卓反编译就这么简单(安卓反编译软件下载)
- 2024-09-22 Eclipse下安装Java反编译插件(eclipse添加反编译)
- 2024-09-22 介绍一个超好用的反编译工具(介绍一个超好用的反编译工具软件)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)