第八、九、十一、十二章的章首语

This commit is contained in:
dqzg12300 2023-04-25 22:31:22 +08:00
parent aeeff6dd47
commit 2e753bda14
4 changed files with 8 additions and 4 deletions

View File

@ -1,5 +1,7 @@
# 第八章 脱壳 # 第八章 脱壳
熟悉类的加载流程后可以做什么功能呢,最典型的功能就是脱壳,因为加壳就是对类中代码的保护,而脱壳就是还原出被保护的代码,除此之外,`Art Hook`的实现也是和类的加载,函数的执行的原理息息相关的。在这一章中,将对加壳和脱壳进行详细的介绍,在最后将通过上一章中学习到的类加载原理,简单实现自动脱壳机。
## 8.1 壳,加壳,脱壳 ## 8.1 壳,加壳,脱壳
`Android``APK`文件实际上是一种压缩文件格式,它包含了应用程序的二进制代码、资源文件、清单文件等。在安装应用程序之前,系统会将`APK`文件解压缩并安装到设备上。在`APK`文件中,应用程序的二进制代码通常是以`DEXDalvik Executable`格式存储的。`DEX`格式是一种针对移动设备优化的字节码格式,与`Java`虚拟机`JVM`的字节码格式有所不同。由于`DEX`格式采用了特殊的指令集和数据结构,使得反编译工具可以轻松地将其转换为可读性较高的`Java`代码。此外,许多反编译工具还可以通过反汇编和反混淆等技术来还原出源代码,因此为了防止应用程序的关键代码轻易被暴露,开发人员会采取一系列的手段来保护代码。 `Android``APK`文件实际上是一种压缩文件格式,它包含了应用程序的二进制代码、资源文件、清单文件等。在安装应用程序之前,系统会将`APK`文件解压缩并安装到设备上。在`APK`文件中,应用程序的二进制代码通常是以`DEXDalvik Executable`格式存储的。`DEX`格式是一种针对移动设备优化的字节码格式,与`Java`虚拟机`JVM`的字节码格式有所不同。由于`DEX`格式采用了特殊的指令集和数据结构,使得反编译工具可以轻松地将其转换为可读性较高的`Java`代码。此外,许多反编译工具还可以通过反汇编和反混淆等技术来还原出源代码,因此为了防止应用程序的关键代码轻易被暴露,开发人员会采取一系列的手段来保护代码。

View File

@ -1,5 +1,7 @@
# 第九章 Android Hook框架 # 第九章 Android Hook框架
在第五章的系统内置中,简单介绍了如何将开发的模块内置到系统中,并注入到应用执行。而内置并注入一个第三方开发的工具,和前文中简单的内置注入过程并没有太大区别。其关键过程就是加载其依赖的动态库,然后再加载器核心业务组件。在这一章中,将以几个典型的`Hook`框架作为例子,将其内置在系统中。
## 9.1 Xposed ## 9.1 Xposed
`Xposed`是一个`Android Hook`框架,它可以实现在不修改`APK`文件的情况下更改系统行为和应用程序的行为,通过开发模块,就能对目标进程的`Java`函数调用进行`Hook`拦截,但是需要安装在`Root``Android`设备上,才能使用该框架中的模块生效。根据该框架的原理衍生出了很多类似的框架,例如`Edxposed``Lsposed``VirtualXposed`等等。 `Xposed`是一个`Android Hook`框架,它可以实现在不修改`APK`文件的情况下更改系统行为和应用程序的行为,通过开发模块,就能对目标进程的`Java`函数调用进行`Hook`拦截,但是需要安装在`Root``Android`设备上,才能使用该框架中的模块生效。根据该框架的原理衍生出了很多类似的框架,例如`Edxposed``Lsposed``VirtualXposed`等等。

View File

@ -1,8 +1,8 @@
# 第十一章 反调试 # 第十一章 反调试
反调试是指在软件运行时,防止恶意用户或者黑客使用调试器来分析和修改程序的行为。在安卓系统中,反调试技术是应用程序开发中非常重要的一部分,因为它可以提高应用程序的安全性,防止黑客攻击和数据泄露。另一方面,恶意软件也通过反调试技术,防止安全系统与软件对其进行分析,因此,安全从业有必要了解常见的反调试对抗技术。 反调试是指在软件运行时,防止恶意用户或者黑客使用调试器来分析和修改程序的行为。在安卓系统中,反调试技术是应用程序开发中非常重要的一部分,因为它可以提高应用程序的安全性,防止黑客攻击和数据泄露。另一方面,恶意软件也通过反调试技术,防止安全系统与软件对其进行分析,因此,安全从业有必要了解常见的反调试对抗技术。
在本章中,我们将介绍反调试的概念、原理和常见的反调试方案,以及如何对这些方案进行相应的安全对抗。 在本章中,我们将介绍反调试的概念、原理和常见的反调试方案,以及如何对这些方案进行相应的安全对抗。
## 11.1 反调试常见手段 ## 11.1 反调试常见手段

View File

@ -1,8 +1,8 @@
# 第十二章 逆向实战 # 第十二章 逆向实战
## 12.1 案例实战 通过本书前文,对`Android`系统循循渐进的讲解,从基础到编译,再到内置,分析源码,添加独有的功能。在最后一章中,将结合前文中学习的知识,进行一个案例的实战,在实战的过程中,首先要对需求进行分析,然后将需要实现的目标进行拆分,最后对其逐一实现,最后组合并测试效果。在实现的过程中,最重要的是思考实现的思路和方向,然后再追寻源码,去寻找入手点。
经过对`AOSP`源码的不断探索,对`Android`中应用深入了解,在最后一章中,将结合前文中学习的知识,来进行一个案例的实战,在实战的过程中,首先要对需求进行分析,然后将需要实现的目标进行拆分,最后对其逐一实现,最后组合并测试效果。 ## 12.1 案例实战
`JniTrace`是一个逆向分析中常用的基于`frida`实现的工具,在`native`函数调用时,`c++`代码可以通过`JNI`来访问`Java`中的类,类成员以及函数,而`JniTrace`工具主要负责对所有`JNI`的函数调用进行监控,输出所有调用的`JNI`函数,传递的参数,以及其返回值。 `JniTrace`是一个逆向分析中常用的基于`frida`实现的工具,在`native`函数调用时,`c++`代码可以通过`JNI`来访问`Java`中的类,类成员以及函数,而`JniTrace`工具主要负责对所有`JNI`的函数调用进行监控,输出所有调用的`JNI`函数,传递的参数,以及其返回值。