2012-03-12 53 views
10

Tôi đã sử dụng Dotfuscator để bảo vệ ứng dụng của mình khỏi kỹ thuật đảo ngược Tôi đã mã hóa các tệp dll trong ứng dụng windows, nhưng làm cách nào tôi có thể thực hiện trong OSX/MonoTouch?MonoTouch: Cách bảo vệ ứng dụng của tôi

Trích xuất dll từ ipa, sau đó gây nhầm lẫn các dll trong cửa sổ và đóng gói lại các tệp được mã hóa thành IPA, sau đó xuất bản nó lên appstore?

Có giải pháp đơn giản nào không?

Trả lời

16

Quan trọng nhất bạn cần nhớ là iOS không cho phép biên dịch JIT (chỉ trong thời gian). Điều này có nghĩa là mọi thứ cần phải đi qua trình biên dịch AOT (trước thời hạn).

Điều này dẫn rằng tất cả các mã IL từ hội đồng của bạn đã được chuyển đổi thành ARM bản địa (v6, v7 và/hoặc ngón tay cái) hướng dẫn rằng IL được không cần nữa.

Điều này có nghĩa là khi bạn xây dựng cho Release|iPhone, mã IL sẽ bị xóa khỏi các hội đồng của bạn. Kể từ khi nó strip'ed đi nó sẽ không có mặt (để được decompiled) trong ứng dụng bạn xuất bản.

GHI CHÚ

  • các hội đồng vẫn sẽ ở bên trong ứng dụng siêu dữ liệu vẫn còn cần thiết (ví dụ System.Reflection cần nó). Vì vậy, các tên biểu tượng và các tệp tài nguyên sẽ không bị xáo trộn/mã hóa như obfuscators thường làm;

  • Bạn có thể tháo rời lắp ráp ARM (mà có thể đúng ngay cả khi bạn obfuscated các hội đồng trước khi biên soạn AOT) nhưng nó nhiều khó hiểu (và lấy lại cho C#) so với IL là.

  • Trích xuất các hội đồng từ IPA và xử lý chúng sẽ phá vỡ ít nhất chữ ký của ứng dụng (bạn có thể ký lại). Nó cũng sẽ có khả năng phá vỡ rất nhiều thứ khác (vì mã sẽ tham chiếu đến tên/cấu trúc có thể đã thay đổi). Tôi không nghĩ rằng điều này sẽ làm việc (nhưng nó phụ thuộc vào các tùy chọn bạn sẽ sử dụng từ obfuscator của bạn).

+1

cảm ơn. phản xạ – BlueSky

+3

cảm ơn. Có, tôi hiểu đó là trình biên dịch AOT trong monotouch. nhưng tôi đã có một sai lầm với nó, bởi vì ngày hôm qua tôi đặt các dlls (từ gói ipa) trong các công cụ phản xạ, tôi thấy rất nhiều mã C#. Bây giờ tôi xem lại nó, nó chỉ là một phương thức, không có bất kỳ mã logic nghiệp vụ nào. cảm ơn rất nhiều, nhờ đội xamarin mang đến một sản phẩm tốt như vậy. – BlueSky

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