斯威夫特是否能够抵抗挂钩?

时间:2014-07-21 06:15:23

标签: security swift hook cydia-substrate cycript

Cycript是一个基于控制台的应用程序,它是Objective-C和JavaScript的混合体。 Cycript对于iOS应用程序的动态分析非常有用。

如果您使用Swift编写任何方法或完整的ipa,是否仍然可以将应用程序挂钩到越狱设备上?或者Swift是否像iOS上的“原生C”代码一样安全?

1 个答案:

答案 0 :(得分:1)

我对Cycript并不熟悉,但我对Swift编译器有一点了解。

Swift代码将更能抵抗挂钩,但它不应该是完全不可能的。声明为@objc的NSObject子类和Swift类应该与Objective-C代码一样可访问。纯Swift代码,特别是在优化的构建中,将更难以注入代码,因为它们通常是静态分派的,并且在许多情况下实际上将内联到调用代码中。

在没有内联代码的情况下,可能可以修补内存中的函数以跳转到替代函数,但这并不像修改函数表那么容易。

在内联键功能的情况下,如果可以识别的常见代码模式可以查找和修改每个用法,并且如果功能足够长,则可以跳转到备用版本进行修补但是这样会变得非常棘手。