【问题标题】:How to hook system calls of my android app (non rooted device)如何挂钩我的 android 应用程序的系统调用(非 root 设备)
【发布时间】:2014-06-20 01:33:53
【问题描述】:

我正在尝试拦截我的 Android 应用在非 root 设备上进行的所有系统调用。

因此,每次我的应用程序写入/读取文件时,出于安全目的,我都想拦截系统调用并加密/解密流。加密部分没问题,但是如何拦截系统调用呢?

由于应用程序的某些部分是由第三方提供商开发的模块,我无法更改其源代码,因此没有其他方法可以确保数据安全存储。

由于我没有 root 访问权限,因此我无法访问系统调用表的地址,如 here 所述,我也无法通过 LKM 模块执行此操作。

如果有任何建议,我将不胜感激,谢谢。

编辑:

好的,我得到了 Simone Margaritelli 的代码链接,现在可以使用了!我的代码一直崩溃的原因是我必须设置正确的内存访问权限:

uint32_t page_size = getpagesize();
uint32_t entry_page_start = reloc& (~(page_size - 1));
mprotect((uint32_t *)entry_page_start, page_size, PROT_READ | PROT_WRITE);

【问题讨论】:

  • 我需要完全相同问题的解决方案。
  • @John 你有什么可行的方法吗?
  • @IndraYadav 不,我没有。遗憾的是,我没有得到任何可以尝试的新建议。这个问题可能会得到更多的关注。
  • 嗨,尝试了你的建议,但我无法让它发挥作用。请看详细查询Here

标签: android hook system-calls function-interposition library-interposition


【解决方案1】:

This 是在没有 root 权限的情况下在 Android 上挂钩系统调用的方法(当然只适用于您自己的进程,这不是系统范围的)。

【讨论】:

  • 是的,这实际上正是我想要的。可悲的是,我的应用程序在尝试运行代码时总是崩溃。我曾尝试联系博客的所有者,但未成功。
  • 此博客代码在 android 6.0 操作系统中无效。 Linker.h 成员在 6.0 操作系统中是私有的。任何解决方法请告诉我。我问这个博客的所有者,但没有答案。
【解决方案2】:

您可以参考Suterusu。但它不是线程安全的,我也在努力寻找线程安全的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多