【发布时间】:2015-11-26 05:04:06
【问题描述】:
我已经搜索了 2 天以防止我的应用越狱设备,我得到了它,问题是我仍然可以使用操作系统挂钩我的班级并覆盖越狱检查功能。
您是否有任何经过验证的想法,框架,库或其他东西?
【问题讨论】:
-
我们一直在使用 EnsureIT 的Arxan。
-
感谢Vin的回答...我看到价格真的很贵:D,
我已经搜索了 2 天以防止我的应用越狱设备,我得到了它,问题是我仍然可以使用操作系统挂钩我的班级并覆盖越狱检查功能。
您是否有任何经过验证的想法,框架,库或其他东西?
【问题讨论】:
您可以为此使用dyld。
_dyld_image_count 返回加载到您的应用程序地址空间中的一些动态库。然后您可以使用_dyld_get_image_name 检查动态库路径来遍历它们。这样您就可以确定是否将 CydiaSubstrate 库或任何路径未知的动态库加载到您的应用程序中。
当然,越狱甚至可以挂钩这些功能,我认为您对此无能为力。 Arxan 声称它可以用它做一些事情,但即使它检测到某些东西,你也可以随时挂钩它用于检测的任何函数。 CydiaSubstrate 调整总是领先一步,因为它们是在调用 main 之前加载的。因此,它可以在构造函数中挂钩它想要的所有内容,而您对此无能为力。
如果没有越狱,加载恶意库的唯一方法是修改和退出您的应用程序,以便它链接到该库。如果没有越狱,您将无法挂钩 C 函数,因此 _dyld_get_image_name 将能够检测到该库。
【讨论】: