视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
apktool反编译工具使用教程(软件汉化修改)
2025-10-01 15:39:23 责编:小OO
文档
apktool反编译工具使用教程

随着安卓的普及,用户群越来越大,软件的要求也越来越高,写篇反编译教程,大家自己捣鼓修改软件吧。(说白了就是解包和打包APK文件)

一:首先下载附件:

APKTool.zip (2.73 MB) 

APKTool.zip (2.73 MB)

下载次数: 177

2012-4-5 21:32

二:(1)解压APKTOOL到电脑(我的是F盘),打开电脑开始--运行CMD命令

1.png (24.32 KB)

2012-4-5 21:32

(2)在窗口中输入命令定位到文件夹

2.png (130.49 KB)

2012-4-5 21:32

命令说明:apktool d DJ.apk

                     apktool d为反编译命令,其中d代表decode

                      DJ.apk为被反编译的apk安装包的文件名(可以自己定义)

反编译后大家可以看到F盘,apktool文件夹内出现一个DJ文件夹,具体文件夹结构说明在本文结束有讲解 

3.png (34.6 KB)

2012-4-5 21:32

4.png (62.22 KB)

2012-4-5 21:32

三:编译打包:(重新把修改过的文件打包为APK格式)

5.png (34.21 KB)

2012-4-5 21:32

打包命令为:apktool b DJ(DJ为刚才的文件夹名称) 

重新编译完成后,DJ文件夹内会新增一个dist文件夹,里面的DJ.apk文件就是重新编译好的apk安装包,签名后即可安装。

6.png (29.61 KB)

2012-4-5 21:32

签名工具下载:地址:http://115.com/file/bhgviics#

APK文件结构说明(来源于互联网)

AndroidManifest.xml 

该文件是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,如要把apk上传到Google Market上,也要对这个xml做一些配置。在apk中的AndroidManifest.xml是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为:java -jar AXMLPrinter2.jar AndroidManifest.xml 

META-INF目录 

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。

res目录 

      res目录存放资源文件。包括图片,字符串等等。

lib目录 

lib目录下的子目录armeabi存放的是一些so文件。这个地方多讲几句,都是在开发过程中摸索出来的。eclipse在打包的时候会根据文件名的命名规则(lib****.so)去打包so文件,开头和结尾必须分别为“lib”和“.so”,否则是不会打包到apk文件中的。其他非eclipse开发环境没有测试过。如果你是用SDK和NDK开发的话,这部分很重要,甚至可以通过把一些不是so文件的文件通过改名打包到apk中,具体能干些什么那就看你想干什么了。

assets目录 

assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。具体的方法可以参考SDK中的例子:在sdk的 \\SDK\\1.6\\android-sdk-windows-1.6_r1\\platforms\\android-1.6\\samples\\ApiDemos 例子中,有个com.example..android.apis.content 的例子,在这个例子中他把一个text文件放到工程的asset目录下,然后把这个txt当作普通文件处理。处理的过程在ReadAsset.java 中。同理,asset也可以放置其他文件。 

classes.dex文件 

      classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex。另,有人介绍到Dedexer是目前在网上能找到的唯一一个反编译dex文件的开源工具,需要自己编译源代码。 

resources.arsc 

      编译后的二进制资源文件

     下载本文

显示全文
专题