中端技术系列教程第二讲——反编译、编译和签名
以下是为大家介绍的《中端技术系列教程第二讲——反编译、编译和签名》详细内容,希望对大家有所帮助!
№.1 反编译
- 01
1、反编译:高级语言源程序经过“编译”变成可执行文件,反编译就是逆过程。 但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 2、通过反编译我们都能做什么: 简单的说通过反编译我们可以修改任意参数来使其达到我们预想中的效果,比如修改APP名字 3、APK的反编译(APKTool) 3.1、APKTool的使用环境配置请参见第一讲:在PC端搭建JAVA环境 3.2、下载所需附件 ① 打开地址:链接地址见原文
- 02
②下载两个文件“apktool1.4.3.tar.bz2”和“apktool-install-windows-r04-brut1.tar.bz2”
- 03
3.3、安装APKTool(其实算不上“安装”) ①解压上一步下载的两个文件,得到三个文件,如图所示
- 04
②将解压出来的三个文件移动到C盘的windows目录下 ③打开CMD命令(方法在第一讲中有介绍),直接输入“apktool”,然后“回车” 如果没有提示错误信息,就说明安装成功(如下图)
- 05
3.4、反编译.apk文件(以“MiuiMusic.apk ”为例) ①打开CMD命令(方法在第一讲中有介绍),输入代码:apktool dD:\MiuiMusic.apk D:\APK ▲这里第一个D表示要反编译的apk文件所在的目录,所以首先要将apk文件放到D盘里 再举个例子,假如我把apk文件放到了D盘的“ abcd ”文件夹里了, 那么我要输入的代码就应该是:apktool dD:\abcd\MiuiMusic.apk D:\APK ▲这里第二个D表示反编译apk后的目录,意思就反编译到D盘的APK文件夹里 再举个例子,假如我要把apk文件反编译到E盘的“ abcd ”文件夹里, 那么我要输入的代码就应该是:apktool dD:\MiuiMusic.apk E:\abcd ②对于这段代码的详细解释,如下图所示
- 06
▲输出目录文件夹名字可以自定义,输入代码后,会自动在指定目录下创建文件夹 ③代码输入完成后“回车”,稍等片刻,即可反编译完成 那么这个时候在代码中所指定的目录里就可以找到反编译后的文件了! 3.5、有些apk需要framework框架支持,下面说说如何导入该框架 ①用压缩软件打开apk文件所在ROM(这里以MIUI ROM为例)如图所示
- 07
②打开文件夹system\framework,找到文件“framework-res.apk”,并将它复制到C盘的Windows文件夹里
- 08
③打开CMD命令,输入代码:apktool ifC:\windows\framework-res.apk,然后“回车” 瞬间就会完成,如下图所示,即导入框架成功!
- 09
4、JAR的反编译(JD-GUI) 这里仅介绍JD-GUI这个软件,其他更复杂的修改在以后我会继续为大家带来教程 这款反编译器叫"JavaDecompiler",由Pavel Kouznetsov开发,目前最新版本为0.3.3; 它由C++开发,并且官方可以下载windows、linux和苹果Mac Os三个平台的可执行程序。 下载地址:(链接地址见原文)
№.2 编译
- 01
反编译掌握后,编译就相对简单许多了,只是一句代码的事情,下面详细来说 在上面的反编译教程中,我将MiuiMusic.apk反编译到了D盘的APK文件夹里了, 那么我现在要编译回来,该如何操作呢? 1、打开CMD命令,直接输入代码:apktool b D:\APK 然后“回车”,稍等片刻 ▲这里要注意的仍然是代码中的路径
- 02
2、编译完成后会在D盘的APK目录下自动生成新文件夹“dist”,编译后的apk就在这里啦! 3、重新编译后的APK需要签名之后才能正常使用,那么下面就开始说说签名的相关事项
№.3 签名
- 01
目前网络上的签名工具是玲琅满目,非常之多,这里我只给大家介绍一种,原理基本相同 1、签名有什么用? 使用特殊的key签名可以获取一些不同的特殊权限 APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本APK 这样可以防止已安装的应用被恶意的第三方覆盖或替换掉 当然了,这里我们不介绍使用key签名的方法,做为一个普及给大家看看吧 2、签名apk ①推荐签名工具APKSign(目前我也在使用): 173835n2arn0qrzrna7221.zip(1.88 MB,下载地址见原文) ②下载附件后解压,打开文件夹“ APKSign ”,并打开程序“APKSign.exe”(如图所示)
- 02
③至于它的使用方法,就不用我多说了吧?