如何防止 iOS 应用挂钩 theOS 或其他应用
How to Prevent iOS app from hook theOS or others
我已经搜索了 2 天以防止我的应用越狱设备,我找到了,问题是我仍然可以挂钩我的 class 使用操作系统并覆盖越狱检查功能。
您是否有任何经过验证的想法、框架、库或其他东西?
您可以使用 dyld。
_dyld_image_count
returns多个动态库加载到你的应用地址space。然后您可以使用 _dyld_get_image_name
检查动态库路径来遍历它们。这样您就可以确定是否将 CydiaSubstrate 库或任何路径未知的动态库加载到您的应用程序中。
当然,通过越狱,即使是那些功能也可以挂钩,我认为您对此无能为力。 Arxan 声称它可以用它做一些事情,但即使它检测到某些东西,你也可以随时挂钩它用于检测的任何函数。 CydiaSubstrate 调整总是领先一步,因为它们是在调用 main
之前加载的。因此它可以在构造函数中挂钩它想要的一切,而你对此无能为力。
如果没有越狱,加载恶意库的唯一方法是修改并退出您的应用程序,以便它链接到库。如果没有越狱,您将无法挂接 C 函数,因此 _dyld_get_image_name
将能够检测到该库。
我已经搜索了 2 天以防止我的应用越狱设备,我找到了,问题是我仍然可以挂钩我的 class 使用操作系统并覆盖越狱检查功能。
您是否有任何经过验证的想法、框架、库或其他东西?
您可以使用 dyld。
_dyld_image_count
returns多个动态库加载到你的应用地址space。然后您可以使用 _dyld_get_image_name
检查动态库路径来遍历它们。这样您就可以确定是否将 CydiaSubstrate 库或任何路径未知的动态库加载到您的应用程序中。
当然,通过越狱,即使是那些功能也可以挂钩,我认为您对此无能为力。 Arxan 声称它可以用它做一些事情,但即使它检测到某些东西,你也可以随时挂钩它用于检测的任何函数。 CydiaSubstrate 调整总是领先一步,因为它们是在调用 main
之前加载的。因此它可以在构造函数中挂钩它想要的一切,而你对此无能为力。
如果没有越狱,加载恶意库的唯一方法是修改并退出您的应用程序,以便它链接到库。如果没有越狱,您将无法挂接 C 函数,因此 _dyld_get_image_name
将能够检测到该库。