2014-07-21 63 views
5

Cycript, Objective-C ve JavaScript'in bir karışımı olan konsol tabanlı bir uygulamadır. Cycript, iOS uygulamalarının dinamik analizi için çok kullanışlıdır.Swift, kancalamaya karşı dayanıklı mıdır?

Eğer Swift ile herhangi bir yöntem yazıyorsanız ya da ipa'yı tamamlıyorsanız, bu uygulamayı jailbroken aygıtına bağlayabilirsiniz? Ya da iOS'ta "native C" Kodu gibi Swift güvenli midir?

+0

https://www.youtube.com/watch?v=Ii-02vhsdVk – user102008

+0

Bunu daha fazla kullanabilmem için doğru bir şekilde swizzling veya hooking yok mu? – user3859460

+0

"Hooking" ile ne kastettiğinizden emin değilim, ama o videoda Swift sınıflarında yer alacaklar. '@ Objc' yöntemleriyle, onları Objective-C çalışma zamanı ile yine de kaydırabilirsiniz; ancak bu yalnızca Objective-C çalışma zamanı (emin değil) aracılığıyla çağrıldıkları zamanlar için çalışabilirler. Yerel Swift yöntemleri için genel olarak sersemletme olduğunu düşünmüyorum. – user102008

cevap

1

Cycript'e aşina değilim ama Swift derleyicisini çok az anlıyorum.

Swift kodu, kancalamaya daha dayanıklı olacak, ancak tamamen imkansız olmamalı. NSobject alt sınıfları ve @objc bildirilen Swift sınıfları Objective-C kodu kadar erişilebilir olmalıdır. Saf Swift kodunun, özellikle optimize edilmiş yapılarda, kodları çoğu zaman statik olarak gönderildiği ve çoğu durumda aslında çağrı koduna yönlendirileceğinden, kodu enjekte etmek daha zor olacaktır. Kod satır içinde belirtilmediyse, işlevlerin belleğe kendileri de ek bir işlevle atlamak için yamaları olabilir, ancak işlev tablolarını değiştirmek kadar kolay olmaz.

Anahtar işlevlerin satır içi olduğu yerlerde, tanımlanabilecek kodların ortak kalıpları varsa, her bir kullanımın bulunması ve değiştirilmesi mümkün olabilir ve işlev yeterince uzunsa, başka bir sürüme atlamanız mümkün olabilir; Bu gerçekten çok zor olur.