2014-07-21 14 views
5

Cycript là một giao diện điều khiển dựa trên ứng dụng đó là một sự pha trộn của Objective-C và JavaScript. Cycript rất hữu ích cho việc phân tích động các ứng dụng iOS.Có phải Swift kháng hooking không?

Nếu bạn viết bất kỳ phương pháp hoặc ipa hoàn chỉnh với Swift là nó vẫn có thể móc ứng dụng trên một thiết bị jailbroken? Hoặc Swift có an toàn như mã "native C" trên iOS không?

+0

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

+0

Tôi có hiểu đúng là không còn sự cố nào nữa? – user3859460

+0

Tôi không chắc chắn những gì bạn có nghĩa là bằng cách "hooking", nhưng trong video đó họ là để introspect trong các lớp học Swift. Với các phương thức '@ objc', bạn vẫn có thể làm rối loạn chúng với thời gian chạy Objective-C; nhưng điều đó có thể chỉ hoạt động trong thời gian khi chúng được gọi thông qua thời gian chạy Objective-C (không chắc chắn). Tôi không nghĩ rằng có swizzling nói chung cho các phương pháp Swift bản địa. – user102008

Trả lời

1

Tôi không thực sự quen thuộc với Cycript nhưng tôi có một chút hiểu biết về trình biên dịch Swift.

Mã Swift sẽ có khả năng chống hooking hơn nhưng không hoàn toàn là không thể. Các lớp con NSObject và các lớp Swift được khai báo @objc nên có thể truy cập được như mã Objective-C. Mã Swift thuần túy, đặc biệt là trong các bản dựng được tối ưu hóa sẽ khó chèn mã vào vì chúng thường được gửi đi tĩnh và trong nhiều trường hợp thực sự sẽ được đưa vào mã gọi.

Trường hợp mã không được gạch chân, có thể có khả năng tự vá các hàm trong bộ nhớ để chuyển sang hàm thay thế nhưng sẽ không dễ dàng như chỉ sửa đổi bảng chức năng.

Có thể tìm và sửa đổi từng cách sử dụng các chức năng chính nếu các mẫu mã phổ biến có thể được xác định và nếu chức năng đủ dài có thể được vá khi nhảy sang phiên bản thay thế nhưng điều này sẽ thực sự khá phức tạp.

Các vấn đề liên quan