安卓逆向工程入门篇

前言

在计算领域中,逆向工程是指理解某些系统的运行机制并重用这些信息来做某些事情的过程。这种方式同样适用于Android应用程序。许多情况下,我们都需要对Android应用进行逆向工程。

阅读他人的代码

查找代码中的漏洞

搜索硬编码在代码中的敏感数据

恶意软件分析

修改现有应用程序的功能

反编译与反汇编

反编译是将软件的二进制代码转换为文本格式的、编写软件源代码所用的高级语言代码的过程,因为高级语言具有更高的可读性。

不过,反汇编器却不会将二进制转换为高级语言文本:它只是字节到文本的一对一转换,并提供指令助记符,虽然这样也有助于理解代码,但是与直接阅读高级语言源码相比难度要更大一些。

从Java生成DEX文件

为了介绍Android应用程序的逆向过程,首先需要了解如何构建应用程序。

如上图所示,

1.开发人员用Java编程语言编写源代码,这些文件的扩展名“.java”。

2.这些java文件被提交给“javac”编译器,由它生成“.class”文件。

3.这些类文件被提交给“dx”工具,以生成“.dex”文件。

4.然后,“.dex”文件以及其他资源被打包为“.apk”文件,最后放入Dalvik虚拟机中运行。

要想查看所生成的dex文件的结构的话,我们可以使用Editor。

在我们继续学习之前,请下载以下工具:

Editor

dextemplate

您可以从下面的链接下载编辑器:









































治疗白癜风权威医院
白癜风早期好治愈吗



转载请注明:http://www.gslnbdf.com/azrj/azrj/10050.html