【Android论文栏目提醒】:网学会员为广大网友收集整理了,Android应用的反编译 - 期刊论文,希望对大家有所帮助!
第 20 卷第 1 期 电 脑 与 信 息 息 技 技 术 术 年2月 2012Vol.20 No.1201 2 年 2 月 Computer and Information Technology Feb. 2012文章编号: ) (2012 01-0050-02 1005-1228
Android 应用的反编译 徐尤华,熊传玉 广东松山职业技术学院,广东 韶关 512126 摘 要: 反编译已成为软件逆向工程的重要研究领域, 随着计算机软件的广泛应用, 文章给出了一种反编译
Android 应用 的方法。
可以推导出他人的思路、 通过对
Android 应用的反编译, 原理、 结构、 算法、 运行方法等设计要素, 处理过程、 作为自 或者直接用于自己的软件产品中。
己开发软件时的参考, 关键词: 应用 反编译;
Android; 中图分类号:TP393.12 文献标识码:A Decompile of Andr oid Application XU You- hua,XIONG Chuan- yu Guangdong Songshan Polytechnic College Shaoguan 512126China Abstr act: decompile has become an important research area in the software With extensive use of computer software, reverse engineering,this paper presents a way to decompile
android applications. Through decompile,we can derive the we ideas principles structure algorithms processes operating methods and other design elements of others, can use these as our own reference when developing software,or directly to our software products. Key wor ds:
Android decompile application 自从
Android 系统发布以来,网络上出现了大量 需应用:TestSpeechEnglis.apk。
的基于
Android 系统的应用,这些应用都积累着开发 点击 该应用运行界面如下图 1 所示, “开始朗读”者的设计经验,如果这些应用能够公开源码的话,可以 按钮后开始朗读输入的内容。
让更多的人加入到应用开发队伍中来,并且能够以更快的速度成长,从而提供更多的优秀的应用产品,这无疑能够很好的推动
Android 应用产业的发展。
但是各个厂商和开发者出于各种原因,都不会公开自己应用的源代码,通过对应用的反编译可以达到学习其设计思想的目的。
1 基本方法 学习已有的应用,我们一般需要查看应用的各种xml 配置文件和各种 java 源文件。
通过 xml 文件可以 图1 应用运行界面 如查看到应用的各种配置数据, UI 界面的设计通过 2 xml 文件的反编译java 源文件可以查看到应用的具体功能的实现。
因此通过反编译只要能够得到 xml 文件和 java 文件即可。
要获取到应用中的 xml 文件,需要在如下地址下 以下反编译过程以一个朗读英文文章的应用为 载 apktool1.4.1.tar.bz2 和 apktool- install- windows- ro4-例,该应用可以从如下地址获取: http://download.csdn. brut1.tar.bz2 两个工具:http://code.google.com/p/
android-net/detail/xyh9717/3626207,下载后是一个压缩包 Test- apktool/downloads/list。
下载完成后将两个压缩包中内SpeechEnglish.rar,解压后在 bin 文件夹下可以找到所 容解压到同一个文件夹中 本文将这些文件解压到 D:收稿日期:2011- 10- 11作者简介:徐尤华 , 湖北京山人, (1977-) 男, 讲师,硕士,主要研究方向:计算机应用与软件;熊传玉 , 湖北公安人, (1979-) 女, 讲师,硕士,主要研究方向:WEB 开发。
第 20 卷第 1 期
Android 应用的反编译 徐尤华等: 51decompiler 文件夹下。
件源码,下面给出 SpeechEnglish.java 反编译后 onCre- 将 TestSpeechEnglis.apk 也 复 制 到 D:decompiler ( 方法代码: ate )文件夹下, 将命令行路径切换到 D:decompiler 下, 执行 ( ) public void onCreate Bundle paramBundle命令:apktool d TestSpeechEnglis.apk 命令执行完毕后, 在 D:decompilerTestSpeechEnglis 可 以 查 看 所 需 xml ( ) super.onCreate paramBundle ) (2130903040 setContentView文件,通过对比 TestSpeechEnglish.rar 中 xml 文件,内 ) ( ) Button localButton (Button findViewById 2131034112 容基本相同,下面给出 main.xml 反编译结果: this.btn localButton ) (21310 EditText localEditText (EditText findViewById ) (this this ) (this this 通过对比 TestSpeechEnglish.rar 中 java 文件,内容 基本相同,只是 id 号换成了具体的数值, 其他差别不3 ja va 文件的反编译 大。
java 文件的反编译需要分两步来做: 4 结束语 第一步 将 dex 文件转为 jar 文件。
在如下地址下 本文给出了
Android 应用的反编译方法,通过反载 dex2jar- 0.0.0.11- SNAPSHOT.zip 工 具 : http://code. 编译能够得到应用的 xml 和 java 文件,通过查看这些google.com/p/dex2jar/downloads/list 下载完成后解压到 文件我们可以学习开发者的设计思想,从而快速学习,D:decompiler 中。
将 TestSpeechEnglis.apk 用解压软件 进而开发出更优秀的
Android 应用。
打开,复制出里面的 classex.dex 文件, 在命令行执行: 参考文献:dex2jar classes.dex,可以得到 classes.dex.dex2jar.jar 文 1 王向辉.
Android 应用程序开发M.北京:清华大学出版社,2010.件; 2 林城.Google
Android 2.X 应用开发实战M.北京:清华大学出版社, 第二步 将 jar 文件反编译为 java 文件。
在如下 2011.地 址 下 载 Java Decompiler 工 具 :http://laichao.google- 3 ITeye 技术网站EB/OL.http://www.iteye.com.code.com/files/jdgui.zip,解压后打开 jd- gui.exe,用该工 4
Android DevelopersEB/OL.http://developer.
android.com.具打开第一步得到的 jar 文件即可查看到所有 java 文