当前位置: 首页 > 知识库问答 >
问题:

无法绕过的Android根检测方法

令狐宜民
2023-03-14

我知道在根设备上运行包含敏感信息的应用程序根本不安全。因此,开发人员通常会在这种情况下进行根目录检测,如果发现设备已根目录,则无法安装该应用程序。一切都好。

开发人员在根检测中使用的主要技术是检查超级用户。apk文件、检查chainfire、busybox、执行su命令等。但攻击者可以通过多种方式绕过这些检查,如重命名超级用户。apk到超级用户0。apk。

所以,我要寻找的是一个独特的解决方案,在这个问题上,攻击者无法绕过根检测检查。即使不存在这样的解决方案,也请分享您的观点。因为你们的解决方案至少有助于强化根检测代码。

共有3个答案

子车安和
2023-03-14

查看谷歌的SafetyNet服务:https://developer.android.com/google/play/safetynet/index.html

它将进行一些检查,以验证设备是否安全,并生成您可以验证的结果。结果以JSON Web签名的形式返回,您可以在应用程序中读取,但为了提供额外的保证,您还可以将此结果发送到服务器,让它直接与Google验证结果。

https://developer.android.com/google/play/safetynet/start.html

我认为这不会在非谷歌版本的Android上运行(不含氰),所以需要记住一些事情。

邹英悟
2023-03-14

据我所知,没有“单一解决方案”,但您需要检查最常见的问题。以下文章也很有用:https://blog.netspi.com/android-root-detection-techniques/

这里有一些提示...也是你不应该做的:确定是否在根设备上运行

应向晨
2023-03-14

有一个名为rootbeer的开源库和一个示例应用程序,它执行以下检查以检测root。

  • CheckRootManagementApps
  • 检查潜在的危险应用程序
  • CheckRootCloakingApps
  • CheckTestKeys
  • 检查DangerousProps
  • ################################################################################################
  • 检查子二进制
  • 检查是否存在
  • 检查ForRWSystem
 类似资料:
  • 我想用toolchain版本4.4.3(用于工作armeabi libs) 我下载了最新的Android SDK、NDK和其他所需的工具 我还下载了ndk-legacy-toolschains并复制了“path_to_ndk/toolchains”下的内容 我试图用下面的脚本配置qt5 但是它失败了:无法检测Android NDK工具链。请使用-android-toolchain-version指

  • 我们都知道,有时候cloudflare喜欢检查他们的客户访问者,以确保访问者不是真正的人。安全检查要求我们通过谷歌recaptcha。我想问的是,是否有可能通过使用我们自己的服务器(即使与远程服务器和回答验证码由我们自己等),以及如何?

  • 希望专家能帮我解答硒/云闪之谜。我可以让一个网站在正常(非无头)硒加载,但无论我尝试什么,我不能让它加载在无头。 我遵循了StackOverflow帖子的建议,比如是否有无法检测到的SeleniumWebDriver版本?。我还研究了和对象并修复了无头和无头之间的所有差异,但不知何故,仍在检测无头。在这一点上,我非常好奇Cloudflare如何能够找出差异。谢谢你抽出时间! 我尝试过的事情列表:

  • 问题内容: 除了出于正确性的考虑绕过任何实例属性之外,隐式特殊方法查找通常还绕过该方法,甚至对象的元类。 这些文档中提到了,和等特殊方法,根据经验,我也知道它也适用于Python 2.7。 引用相关问题的答案: “魔术被特殊对待:它们在类型数据结构中内部分配给“插槽”,以加快查找速度,并且仅在这些插槽中查找。” 问题答案: 你可以找到python3在应答文件的,其中规定: 无条件调用以实现类实例的

  • 我正在开发小程序,我的类扩展了一个第三方api类,它有它的油漆(图形g)方法。这个类扩展了JComponent,并从它的油漆(图形g)调用super.paint(g)。现在我想直接从我的类调用JComponent油漆方法。有什么方法可以做到这一点。我在下面尝试,但给出错误 或者你可以通过跟随来理解这一点

  • 我目前正在学习继承,对于在超类中声明一个方法final应用于子类的限制,我有点困惑。假设我有一个具有取款方法的超类BankAccount,它需要用户密码和金额才能取款,并将帐户余额设置为(balance - amount)。我希望将该方法声明为final,这样其他子类就不会潜在地覆盖它,并允许客户端在不改变帐户余额的情况下取款。 我想避免这样的事情被允许: 然而,有些银行账户允许透支,在提款时也必