5

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

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

4

1 回答 1

1

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

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

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

在已内联关键功能的情况下,如果可以识别常见的代码模式,并且如果功能足够长,则可以在跳转到替代版本时进行修补,但这会变得非常相当棘手。

于 2015-04-05T01:28:26.580 回答