Android-APK反编译和回编译
来源:互联网 发布:mysql添加唯一约束 编辑:程序博客网 时间:2024/05/21 11:36
工具:apktool和jdk(个人使用jdk1.8.0_77)
下载地址:
apktool_2.2.2.jar
apktool.bat
Apktool官网
说明:apktool_2.2.2.jar需要JDK7+;
首先是配置apktool环境变量或者进入到apktool所在目录进行操作,记得将apktool_2.2.2.jar改名为apktool.jar
apktool命令:
1,apktool if framework-res.apk 加载框架
路径:C:\Users\Administrator\apktool\framework\1.apk
2,反编译命令:
一般:apktool d -f <file.apk> <dir>2.2.2反编译命令: apktool d -f <file.apk> -o <dir><file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\xxx.apk<dir>代表了反编译后的文件的存储位置,比如C:\xxx如果你给定的<dir>已经存在, -f 表示强行覆盖已经存在的文件夹提示信息:Destination directory (e:\\custom_bailaohui_163) already exists. Use -f switch if you want to overwrite it.完整命令:H:\apktool>apktool d -f E:\custom_bailaohui_163.apk -o e:custom_bailaohui_163----------------------------------------------apktool d 相关选项详解usage: apktool d[ecode] [options] <file_apk> -f,--force Force delete destination directory. -o,--output <dir> The name of folder that gets written. Default is apk.out -p,--frame-path <dir> Uses framework files located in <dir>. -r,--no-res Do not decode resources. -s,--no-src Do not decode sources. -t,--frame-tag <tag> Uses framework files tagged by <tag>.
反编译后的目录结构:
3,回编译命令,得到的apk是未签名的apk
回编译命令:apktool b <dir> apk文件默认在dir/dist目录下 apktool b <dir> -o <file.apk> 自己指定apk位置比如:H:\apktool>apktool b e:\custom_bailaohui_163H:\apktool>apktool b e:\custom_bailaohui_163 -o e:\test\163.apkapktool b 相关选项详解usage: apktool b[uild] [options] <app_path> -f,--force-all Skip changes detection and build all files. -o,--output <dir> The name of apk that gets written. Default is dist/name.apk -p,--frame-path <dir> Uses framework files located in <dir>.
回编译目录结构:
签名:通过java的jarsigner命令
H:\apktool>jarsigner -verbose -keystore d:xxx.keystore -storepass xxx -digestalg SHA1 -sigalg MD5withRSA -signedjar e:666_sign.apk e:666.apk alias_name-verbose 输出签名时的详细信息-keystore 密钥库位置-storepass 签名文件密码-digestalg 摘要算法的名称-sigalg 签名算法的名称-signedjar 签名后的apk路径e:666.apk 要进行签名的apk路径alias_name 签名文件的别名-digestalg -sigalg 这两个命令在jdk1.6和jdk1.8可以不用带,jdk1.7必须加上否则安装apk时安装失败原因:JDK1.7默认签名算法改变,需要指定签名算法和密钥算法。H:\apktool>jarsigner -help用法: jarsigner [选项] jar-file 别名 jarsigner -verify [选项] jar-file [别名...][-keystore <url>] 密钥库位置[-storepass <口令>] 用于密钥库完整性的口令[-storetype <类型>] 密钥库类型[-keypass <口令>] 私有密钥的口令 (如果不同)[-certchain <文件>] 替代证书链文件的名称[-sigfile <文件>] .SF/.DSA 文件的名称[-signedjar <文件>] 已签名的 JAR 文件的名称[-digestalg <算法>] 摘要算法的名称[-sigalg <算法>] 签名算法的名称[-verify] 验证已签名的 JAR 文件[-verbose[:suboptions]] 签名/验证时输出详细信息。 子选项可以是 all, grouped 或 summary[-certs] 输出详细信息和验证时显示证书[-tsa <url>] 时间戳颁发机构的位置[-tsacert <别名>] 时间戳颁发机构的公共密钥证书[-tsapolicyid <oid>] 时间戳颁发机构的 TSAPolicyID[-altsigner <类>] 替代的签名机制的类名[-altsignerpath <路径列表>] 替代的签名机制的位置[-internalsf] 在签名块内包含 .SF 文件[-sectionsonly] 不计算整个清单的散列[-protected] 密钥库具有受保护验证路径[-providerName <名称>] 提供方名称[-providerClass <类> 加密服务提供方的名称 [-providerArg <参数>]]... 主类文件和构造器参数[-strict] 将警告视为错误
4,使用zipalign优化apk
命令:zipalign -v 4 E:\666_sign.apk e:\666_zipalign.apkUsage: zipalign [-f] [-v] [-z] <align> infile.zip outfile.zip zipalign -c [-v] <align> infile.zip <align>: alignment in bytes, e.g. '4' provides 32-bit alignment -c: check alignment only (does not modify file) -f: overwrite existing outfile.zip -v: verbose output -z: recompress using Zopfli-c 检查是否已经执行过Align优化-f 覆盖优化的apk-v 详细信息输出-z 使用Zopfli算法进行再压缩
阅读全文
0 0
- Android-APK反编译和回编译
- apk 编译和反编译
- APK反编译+回编译
- android apk编译与反编译
- Android apk编译/反编译工具baksmali和smali用法
- Android apk编译/反编译工具baksmali和smali用法
- Android APK+Dex文件反编译及回编译工具
- Android APK+Dex文件反编译及回编译工具
- Android APK+Dex文件反编译及回编译工具
- Android apk dex odex smali 反编译、回编译、签名
- apk文件反编译、回编译和签名之完全教程
- Android apk 反编译和混淆
- android APK反编译与再编译
- Android APK文件反编译及重编译
- Android Apk反编译与重编译
- Android的apk的编译与反编译
- apk文件编译、修改、反编译和签名
- 关于android apk反编译和回编的学习总结
- 指针直接赋值和strcpy的区别
- 游(qbxt)
- Android——实现简单沉浸式状态栏
- 使用httpie下载图片
- ajax结合接口 分页插件
- Android-APK反编译和回编译
- android developer tiny share-20170517
- 大数据、数据挖掘、数据分析学习记录
- nodejs 连接操作MSSQL 数据库
- Jquery Ajax 跨域问题
- RANDOM(a, b)过程的一种实现
- jdk1.7之TreeMap
- leetcode 第12题 Integer to Roman
- 免费屏幕录制程序都不用