apk反编译
2015-09-15 13:48
197 查看
1、解压apk文件:更改后缀名为.rar,使用相关软件解压;
2、还原.jar文件:
这一步需要用到一个工具 dex2jar (谷歌的代码库里有 http://code.google.com/p/dex2jar/)
下载完了,解压,然后把第一步的 产物(即那个classes.dex文件)放到 dex2jar的解压目录里
(解压目录里 有 dex2jar.bat 文件,检查一下,没有的话 说明目录不对)
cmd 命令行 ,目录切换到 dex2jar的目录下(linux 系统的话 执行那个 .sh文件)
“ dex2jar.bat classes.dex”
看到命令行 的 “Done” 之后, dex2jar 文件夹里 就会有“classes.dex.dex2jar.jar” 文件了,
这个就是 传说中的 jar包了
3、查看.jar文件:这一步就是反编译 ,需要工具辅助,我这里用到的工具是jd-gui(http://java.decompiler.free.fr/?q=jdgui)
下载相关软件并运行.exe文件,打开第2步生成的jar文件,即可查看反编译后的源代码
分析:
该方法未被混淆的代码可完全反编译出来,几乎是源码,只有细微不一样,但不影响阅读;
被混淆的代码就成了这样(如下图),类名完全变样,阅读混乱:
总结:
这种方法反编译文件是使用解压rar文件的方式获取资源文件的,因此能获取到图片的资源文件,但是布局、配置文件出现乱码,没有可读性;
想查看布局文件,可使用“一键apktool”工具,它可以完全编译出布局文件、配置文件和图片资源文件,缺点就是编译源码基本会出异常,我目前还没成功用它编译出源码;
Java反编译工具合集,使用性不强,没有成功使用,还得下载什么Java文件,我电脑上开发安卓明明具备Java的开发环境的呀,果断删除!
2、还原.jar文件:
这一步需要用到一个工具 dex2jar (谷歌的代码库里有 http://code.google.com/p/dex2jar/)
下载完了,解压,然后把第一步的 产物(即那个classes.dex文件)放到 dex2jar的解压目录里
(解压目录里 有 dex2jar.bat 文件,检查一下,没有的话 说明目录不对)
cmd 命令行 ,目录切换到 dex2jar的目录下(linux 系统的话 执行那个 .sh文件)
“ dex2jar.bat classes.dex”
看到命令行 的 “Done” 之后, dex2jar 文件夹里 就会有“classes.dex.dex2jar.jar” 文件了,
这个就是 传说中的 jar包了
3、查看.jar文件:这一步就是反编译 ,需要工具辅助,我这里用到的工具是jd-gui(http://java.decompiler.free.fr/?q=jdgui)
下载相关软件并运行.exe文件,打开第2步生成的jar文件,即可查看反编译后的源代码
分析:
该方法未被混淆的代码可完全反编译出来,几乎是源码,只有细微不一样,但不影响阅读;
被混淆的代码就成了这样(如下图),类名完全变样,阅读混乱:
总结:
这种方法反编译文件是使用解压rar文件的方式获取资源文件的,因此能获取到图片的资源文件,但是布局、配置文件出现乱码,没有可读性;
想查看布局文件,可使用“一键apktool”工具,它可以完全编译出布局文件、配置文件和图片资源文件,缺点就是编译源码基本会出异常,我目前还没成功用它编译出源码;
Java反编译工具合集,使用性不强,没有成功使用,还得下载什么Java文件,我电脑上开发安卓明明具备Java的开发环境的呀,果断删除!
相关文章推荐
- 基于Jpcap的TCP/IP数据包分析(一)
- unix/linux共享内存应用与陷阱
- C#获得硬件信息(转载)
- 使用XCA(X Certificate and key management)可视化项目经理SSL 凭证(4)--凭借自身的凭证管理中心的定义(Certificate Authority)签名证书申请
- 文件上传之黑名单验证绕过
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器
- C语言link过程详解(多文件编译过程)
- 让IE8浏览器支持Canvas
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- 五个你可能闻所未闻的出色的 Ubuntu 替代发行版
- 揭秘12306技术改造(三):传统框架云化迁移到内存数据平台
- jquery常用案例
- zoj 3471 Most Powerful(状态压缩dp)
- YII的自定义路由规则类的使用(初级)
- 磁盘管理及文件系统管理
- libevent编程之bufferevent使用
- 让架构接地气,不再云里雾里
- Linux(C/C++)下的文件操作open、fopen与freopen http://blog.csdn.net/a656343072/article/details/40539889
- 将JSON串与NSArray和NSDictionary的操作进行封装