帮我分析一下https://github.com/eventtracing/EventTracing-Android的原理
时间: 2023-06-17 19:08:36 浏览: 109
EventTracing-Android 是一个基于 Android 平台的事件追踪工具,其原理是在 Android 系统中通过 hook 系统函数,获取系统事件,然后将获取到的事件信息存储到本地文件中,以便进行分析和调试。
具体来说,EventTracing-Android 会 hook Android 系统中的以下函数:
1. `AndroidRuntime::start`:hook 这个函数可以在应用启动时获取应用的包名和进程 ID。
2. `jvm::JVM::StartJVM`:hook 这个函数可以获取应用中 JNI_OnLoad 函数的地址。
3. `open`、`openat`、`fopen`、`fopen64`、`stat`、`lstat`、`access`、`chmod`、`remove`、`rename`、`mkdir`、`rmdir`、`opendir`、`readdir`、`readdir64`、`closedir`:hook 这些函数可以获取应用中文件的读写、删除、修改等操作。
4. `connect`、`send`、`recv`、`sendto`、`recvfrom`、`getaddrinfo`、`gethostbyname`:hook 这些函数可以获取应用中网络通信的细节信息。
5. `pthread_create`、`pthread_join`、`pthread_mutex_lock`、`pthread_mutex_unlock`、`pthread_cond_wait`、`pthread_cond_signal`:hook 这些函数可以获取应用中线程的创建、销毁、加锁、解锁、等待等操作。
通过 hook 这些系统函数,EventTracing-Android 可以获取到应用中的各种事件信息,并将其记录到本地文件中。在应用调试时,可以通过读取这些事件信息来进行分析和定位问题。
阅读全文