avatar
文章
15
标签
0
分类
0

5ec1cff's blog
LSPlant 学习
发表于2023-08-14
LSPlanthttps://github.com/LSPosed/LSPlant 基本原理修改 ArtMethod 的 entry_point_from_quick_compiled_code_ ,这里原先是 dex2oat 优化后的本机代码,现在指向我们控制的代码。同时通过各种手段使调用方法时走本机代码 。 为此,hook 一个 method 需要另外两个 method ,一个作为 hook 的 stub ;另一个 method 用于备份被 hook 的方法。LSPlant 使用 DexBuilder 生成包含这两个方法的辅助类。 ArtMethod 调用约定我们可以从反射执行看 oat 后 ArtMethod 的本机代码是如何调用的。 ArtMethod::Invoke 根据方法是否为 static ,执行一段汇编编写的代码 art_quick_invoke_stub 或 art_quick_invoke_static_stub ,其代码位于: art/runtime/arch/{arch}/quick_entrypoints_{arch ...
Android 系统属性
发表于2023-08-11
系统属性Android Property 实现解析与黑魔法 - 残页的小博客 bionic属性系统概述bionic/libc/bionic/system_property_api.cpp bionic/libc/include/sys/_system_properties.h 属性系统实际上就是一个整个系统共享的键值对存储器,通过共享文件内存映射实现。 存放属性的文件位于 /dev/__properties__ ,这下面的多个文件,实际上是将属性按照前缀划分为不同的 SELinux 上下文,存放在对应的文件中。 划分的规则可以在 /{system,vendor,...}/etc/selinux/{plat,...}_property_contexts 等文件找到。 init 进程负责初始化属性存储区域,且是系统中唯一能够修改属性的进程(当然,只要某个进程能 rw 映射存放属性的文件,也是可以修改的),其他进程通过属性服务(一个名为 property_service 的 sock ...
Android ptrace
发表于2023-05-07
Android 上的 ptrace 实践前篇 dlopen获取 dlopen 有两种方法: 从 linker 获取 __loader_dlopen (或者 __dl___loader_dlopen),需要提供 caller_addr 从 libdl.so 获取 dlopen 详细代码: https://github.com/5ec1cff/ptrace-examples/tree/android 实现了注入到任意进程,调用 __loader_dlopen 打开指定路径的 lib ,或者调用 __loader_dlclose 关闭指定 handle 的 lib 。目前只支持 x86-64 和 arm64 。 对齐问题一开始总是得到 SIGSEGV ,并且 fault addr 为 0 。出现问题的时候注入信号并 detach ,观察 crash dump : 123456789101112131415161718192005-02 13:13:59.534 18907 18907 F DEBUG : *** *** *** *** *** *** *** *** *** * ...
ptrace
发表于2023-04-28
ptraceptrace(2) - Linux manual page wait(2) - Linux manual page 本文相关代码都在下面的仓库: https://github.com/5ec1cff/ptrace-examples tracee execve 时的行为当被跟踪者(tracee)进程成功调用 execve 后,会立即产生一个 SIGTRAP ,并进入 signal-delivery-stop 状态,允许我们在进程的所有新代码执行之前进行处理。 这个状态不好辨识,在 man ptrace 中已经不建议使用。我们可以用 PTRACE_O_TRACEEXEC 选项,这样当成功 execve 的时候,原先的 SIGTRAP 不会产生,取而代之的是另一个 stop ,status 满足 status >> 8 == (SIGTRAP | (PTRACE_EVENT_EXEC << 8)) ,并且我们可以通过 PTRACE_GETEVENTMSG 获得 execve 之前的 pid (在多线程中有用,因为在非主线程进行 execve ,pid 会发 ...
pwn-tv
发表于2023-01-27
Konka TV PWN 原文作于 2023.01.27, 整理于 2023.11.21 老家的 Konka 电视是个 Android 系统,曾经 nmap 扫描过,发现 adb 是开放的,这次过年回去研究了一下,发现可以提权。 分析使用 adb 是可以直接连接的,uid 是 shell ,不需要在 TV 上进行任何授权。 看看系统属性: 12345678910111213141516[ro.adb.secure]: [0][ro.allow.mock.location]: [1][ro.board.platform]: [bigfish][ro.boot.selinux]: [enforcing][ro.build.tags]: [release-keys][ro.build.type]: [user][ro.build.version.all_codenames]: [REL][ro.build.version.base_os]: [][ro.build.version.codename]: [REL][ro.build.version.incremental]: [eng. ...
12
avatar
5ec1cff
文章
15
标签
0
分类
0
Follow Me
最新文章
ELF 动态链接中的符号查找2024-09-01
记 LSPosed 的一个随机崩溃的调查过程2024-06-27
Android arm64 在 ptrace 中使用硬件断点2024-06-24
在 AVD 上使用 KernelSU - 第二回 -2024-01-31
在 AVD 上使用 KernelSU2024-01-16
归档
  • 九月 20241
  • 六月 20242
  • 一月 20242
  • 十二月 20231
  • 十一月 20231
  • 十月 20231
  • 九月 20231
  • 八月 20233
网站资讯
文章数目 :
15
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2024 By 5ec1cff
框架 Hexo|主题 Butterfly