mirror of
https://github.com/feicong/rom-course.git
synced 2025-08-29 02:35:20 +00:00
第八、九、十一、十二章的章首语
This commit is contained in:
parent
aeeff6dd47
commit
2e753bda14
@ -1,5 +1,7 @@
|
|||||||
# 第八章 脱壳
|
# 第八章 脱壳
|
||||||
|
|
||||||
|
熟悉类的加载流程后可以做什么功能呢,最典型的功能就是脱壳,因为加壳就是对类中代码的保护,而脱壳就是还原出被保护的代码,除此之外,`Art Hook`的实现也是和类的加载,函数的执行的原理息息相关的。在这一章中,将对加壳和脱壳进行详细的介绍,在最后将通过上一章中学习到的类加载原理,简单实现自动脱壳机。
|
||||||
|
|
||||||
## 8.1 壳,加壳,脱壳
|
## 8.1 壳,加壳,脱壳
|
||||||
|
|
||||||
`Android`的`APK`文件实际上是一种压缩文件格式,它包含了应用程序的二进制代码、资源文件、清单文件等。在安装应用程序之前,系统会将`APK`文件解压缩并安装到设备上。在`APK`文件中,应用程序的二进制代码通常是以`DEX(Dalvik Executable)`格式存储的。`DEX`格式是一种针对移动设备优化的字节码格式,与`Java`虚拟机`(JVM)`的字节码格式有所不同。由于`DEX`格式采用了特殊的指令集和数据结构,使得反编译工具可以轻松地将其转换为可读性较高的`Java`代码。此外,许多反编译工具还可以通过反汇编和反混淆等技术来还原出源代码,因此为了防止应用程序的关键代码轻易被暴露,开发人员会采取一系列的手段来保护代码。
|
`Android`的`APK`文件实际上是一种压缩文件格式,它包含了应用程序的二进制代码、资源文件、清单文件等。在安装应用程序之前,系统会将`APK`文件解压缩并安装到设备上。在`APK`文件中,应用程序的二进制代码通常是以`DEX(Dalvik Executable)`格式存储的。`DEX`格式是一种针对移动设备优化的字节码格式,与`Java`虚拟机`(JVM)`的字节码格式有所不同。由于`DEX`格式采用了特殊的指令集和数据结构,使得反编译工具可以轻松地将其转换为可读性较高的`Java`代码。此外,许多反编译工具还可以通过反汇编和反混淆等技术来还原出源代码,因此为了防止应用程序的关键代码轻易被暴露,开发人员会采取一系列的手段来保护代码。
|
||||||
|
@ -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`等等。
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# 第十一章 反调试
|
# 第十一章 反调试
|
||||||
|
|
||||||
反调试是指在软件运行时,防止恶意用户或者黑客使用调试器来分析和修改程序的行为。在安卓系统中,反调试技术是应用程序开发中非常重要的一部分,因为它可以提高应用程序的安全性,防止黑客攻击和数据泄露。另一方面,恶意软件也通过反调试技术,防止安全系统与软件对其进行分析,因此,安全从业有必要了解常见的反调试对抗技术。
|
反调试是指在软件运行时,防止恶意用户或者黑客使用调试器来分析和修改程序的行为。在安卓系统中,反调试技术是应用程序开发中非常重要的一部分,因为它可以提高应用程序的安全性,防止黑客攻击和数据泄露。另一方面,恶意软件也通过反调试技术,防止安全系统与软件对其进行分析,因此,安全从业有必要了解常见的反调试对抗技术。
|
||||||
|
|
||||||
在本章中,我们将介绍反调试的概念、原理和常见的反调试方案,以及如何对这些方案进行相应的安全对抗。
|
在本章中,我们将介绍反调试的概念、原理和常见的反调试方案,以及如何对这些方案进行相应的安全对抗。
|
||||||
|
|
||||||
## 11.1 反调试常见手段
|
## 11.1 反调试常见手段
|
||||||
|
|
||||||
|
@ -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`函数,传递的参数,以及其返回值。
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user