(二)Android 逆向分析原理 以及 会用到的工具准备

目录

          • 先了解这些
          • .dex文件
          • winhex工具
          • 下载并安装apktool工具
          • 下载安装Androidkiller
          • adb install 命令
          • 学习smali语言
          • dex2jar
          • jd-gui 工具
          • 实例操作
      • 实例操作:

先了解这些

1. 语言是怎么工作的?

  • 通过编译器,记事本工具,IDE开发工具 编写源代码
  • 源代码以二进制的形式存储在计算机中,读取时候也是读取二进制进行处理,然后显示给我们看
  • 通过解释器编译为机器码
  • 由 CPU读取执行

2. java语言怎么工作?

  • java将源代码转为字节码
  • 放到java的JVM虚拟机中
  • 然后CPU实现代码运行

3. JVM是什么?
我们编写的程序,通过JVM中的classloder(classloder与Java APIS class)转换为字节码,通过JVM中的执行引擎执行与本地的操作系统进行交互

4. Android怎么运行的?
Android也是使用虚拟机技术运行的。
DVM:全名Dalvik VM
DVM 执行 xxx.dex文件。xxx.dex文件是java编译生成的(.dex文件在apk里面,在DVM中运行)

5. Android代码与普通java代码运行的区别?

  • java在JVM中运行,底层执行字节码原理
  • Android.dex在DVM中运行,执行指令码原理
.dex文件

找到我们生成的apk文件
(二)Android 逆向分析原理 以及 会用到的工具准备_第1张图片
我们可以使用常用的 解压缩工具查看

  1. 更改扩展名为 .zip 或 .rar
    在这里插入图片描述
  2. 解压并打开查看文件夹
    (二)Android 逆向分析原理 以及 会用到的工具准备_第2张图片
winhex工具

查看dex文件,可以使用winhex工具
下载地址:http://www.x-ways.net/winhex/
(二)Android 逆向分析原理 以及 会用到的工具准备_第3张图片
直接解压就可以使用
(二)Android 逆向分析原理 以及 会用到的工具准备_第4张图片

下载并安装apktool工具

使用apktool可以将文件进行反编译

前提,需要安装jdk8
在这里插入图片描述
下载地址:https://ibotpeaches.github.io/Apktool/install/
下载方式有点小不同:
(二)Android 逆向分析原理 以及 会用到的工具准备_第5张图片
(二)Android 逆向分析原理 以及 会用到的工具准备_第6张图片
然后去点击这里
(二)Android 逆向分析原理 以及 会用到的工具准备_第7张图片
下载这两个
(二)Android 逆向分析原理 以及 会用到的工具准备_第8张图片
将这三个放在同一目录下
在这里插入图片描述
如将apktool——2.4.1.jar复制一份,命名为apktool.jar

然后将当前目录配置到环境变量

然后打开命令行,输入apktool,出现这样就成功了
(二)Android 逆向分析原理 以及 会用到的工具准备_第9张图片

apktool基础命令

  • 反编译:apktool -d app路径
  • 编译:apktool -b

反编译操作:

  • -o --目录:指定输出目录
  • -r:不反编译资源
  • -s:不反编译代码
  • -t:指定framework反编译

操作一下:
反编译
在这里插入图片描述
(二)Android 逆向分析原理 以及 会用到的工具准备_第10张图片

可以对反编译的资源文件和布局文件进行简单修改
在这里插入图片描述
在这里插入图片描述
编译修改后的文件,使用apktool b
在这里插入图片描述
(二)Android 逆向分析原理 以及 会用到的工具准备_第11张图片
(二)Android 逆向分析原理 以及 会用到的工具准备_第12张图片
在dist文件夹下,将其拖拽到夜神中,发现无法拖拽,一般情况下重新编译的apk需要签名才能安装。,所以需要下载安装一个综合工具Androidkiller。

下载安装Androidkiller

(二)Android 逆向分析原理 以及 会用到的工具准备_第13张图片
打开后拖进行就能进行反编译
(二)Android 逆向分析原理 以及 会用到的工具准备_第14张图片
编译修改后文件
(二)Android 逆向分析原理 以及 会用到的工具准备_第15张图片

adb install 命令
  • -l:锁定程序
  • -t:允许安装测试包
  • -d:允许降级覆盖安装
  • -p:部分安装
  • -g:给程序授予运行权限

这里用adb install -t apk路径(或直接在相对路径下安装apk文件)
先连接到夜神模拟器
在这里插入图片描述
然后安装
在这里插入图片描述

学习smali语言

学习地址

dex2jar

dex2jar 是一个能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具集合
(二)Android 逆向分析原理 以及 会用到的工具准备_第16张图片

jd-gui 工具

JD-GUI是一个独立的图形实用程序,显示“ .class”文件的Java源代码。可以使用JD-GUI浏览重构的源代码,以便立即访问方法和字段。

jd-gui 是一个可执行程序,他可以在网上单独下载, 也可以,在 android killer 中寻找:
(二)Android 逆向分析原理 以及 会用到的工具准备_第17张图片
将该jar文件拖入jd-gui即可
(二)Android 逆向分析原理 以及 会用到的工具准备_第18张图片
或者打开在AndroidKiller,在反编译的smali 文件内,右击选择
(二)Android 逆向分析原理 以及 会用到的工具准备_第19张图片
就可以查看一些基本结构和逻辑
(二)Android 逆向分析原理 以及 会用到的工具准备_第20张图片

实例操作

实例操作:

下载群内的 计算器.apk 文件,进行反编译。

最终实现 激活 vip 功能
(二)Android 逆向分析原理 以及 会用到的工具准备_第21张图片

注意点 : 搜索中文先转码

解决方法:

  • 方式1: 改初始值,不改程序的正常逻辑

  • 方式2: 改判断逻辑

  • 方式3:显示 布局 中 的主要按钮

你可能感兴趣的:(Android逆向分析)