Proguard có hoạt động để làm xáo trộn các hằng số chuỗi tĩnh không?Proguard có hoạt động để làm xáo trộn các hằng số chuỗi tĩnh không?
Trả lời
Dựa trên đọc sách của tôi trong những lựa chọn obfuscation trong cuốn hướng dẫn, câu trả lời là số
Chuỗi obfuscation đen là về mặt lý thuyết có thể, nhưng nó sẽ là cần thiết để sử dụng một classloader đặc biệt mà de-obfuscated các literals String như chúng được đọc từ tệp lớp. Điều này sẽ phức tạp. Trên hết, nó không đạt được nhiều, vì ai đó có thể dễ dàng khôi phục các chuỗi ban đầu bằng cách chạy ứng dụng của bạn với trình gỡ lỗi Java được đính kèm.
Bạn không cần phải sử dụng trình nạp lớp tùy chỉnh, bạn chỉ có thể chèn các hàm vào lớp để xắp xếp lại các chuỗi khi chạy. Đó là những gì Zelix Klassmater làm. Tất nhiên thật dễ dàng để bỏ qua nếu bạn biết những gì bạn đang làm, nhưng obfuscation chỉ là tốt cho deterring người dùng bình thường anyway. – Antimony
Điều gì ProGuard hiện (nếu được định cấu hình chính xác để làm như vậy) là hằng số chuỗi trong dòng. Nó sẽ không có ý nghĩa nhiều để làm xáo trộn chúng, nghĩ về nó, một chuỗi liên tục có thể được sử dụng để đại diện cho một thông điệp cho người dùng, và những gì tốt sẽ làm gì nếu nó đã được obfuscated?
Proguard được sử dụng để làm cho mã biên dịch trở nên khó đọc và dễ hiểu, nếu mỗi điểm của một phương thức hiển thị thông điệp người dùng rõ ràng cho người dùng, tôi nghĩ mỗi dòng mã trở nên khá dễ hiểu. Nếu trong các trường hợp như tôi, nơi tôi log.debug ("fun()"), sự khởi đầu của mỗi phương thức được hiển thị trong mã được biên dịch, việc tước tên của phương thức là khá vô ích! Vì vậy, đó là một vấn đề lớn ... –
@ sarah.ferguson Bạn có thể [cấu hình ProGuard để loại bỏ các cuộc gọi đăng nhập] (http://stackoverflow.com/questions/13218772/removing-log-call-using-proguard), quá . –
Không, ProGuard không mã hóa chuỗi hằng số (Proguard FAQ Link)
Nhưng có một số sản phẩm thương mại mà sẽ giúp bạn điều đó. Tôi sẽ giới thiệu các Stringer Java Obfuscator vì nó có tính năng kiểm soát ngữ cảnh và kiểm soát tính toàn vẹn của cuộc gọi làm cho kỹ thuật đảo ngược càng khó càng tốt. IMHO Stringer là bộ mã hóa chuỗi tốt nhất cho Java và Android trên thị trường hiện nay.
Đồng thời xem Allatori Java Obfuscator.
N.B. Tôi là CEO tại Licel LLC. Nhà phát triển của Stringer Java Obfuscator.
Stringer Java Obfuscator là không miễn phí –
@ sarah.ferguson Một sản phẩm thương mại vốn dĩ không miễn phí, vâng. – Sipty
ProGuard không làm xáo trộn các hằng số chuỗi, như được đề cập trong FAQ của nó. Người anh em nguồn đóng chuyên ngành gần đây hơn của nó cho Android, DexGuard, cung cấp các kỹ thuật bảo vệ ứng dụng bổ sung, như mã hóa chuỗi và mã hóa lớp.
(Tôi là nhà phát triển của ProGuard và DexGuard)
+1 DexGuard là sản phẩm thương mại để bảo vệ các chuỗi trong ứng dụng của bạn. Cá nhân tôi sử dụng một hoạt động bithift, nhưng sẽ không ủng hộ cho các giá trị mà PHẢI đứng lên để kẻ tấn công. – Syntax
@Syntax Tôi sẽ không bênh vực cho tất cả những gì phải đứng trước kẻ tấn công. Những chuỗi đó không nên nằm trong mã của bạn nếu chúng quan trọng. Tôi chưa nhìn thấy một obfuscator Java, nơi mã hóa chuỗi không phải là dễ dàng để phá vỡ, và tôi đã nhìn khá một vài. – Antimony
Như tôi đã nói: P Tôi sẽ KHÔNG ủng hộ việc sử dụng obfuscation cho bất cứ điều gì mà tin tặc không được phép truy cập. Tôi bithift khóa công khai của tôi cho API thanh toán Android và không quá quan tâm nếu mọi người phá vỡ sự che khuất và có quyền truy cập vào nó. – Syntax
- 1. Cách yêu cầu Proguard làm xáo trộn tên lớp
- 2. Có sai khi làm xáo trộn mã bị xáo trộn không?
- 3. Tùy chỉnh tên lớp bị xáo trộn trong proguard
- 4. Làm cách nào tôi có thể làm xáo trộn chỉ com.foo. * Và com.bar. * (ProGuard)?
- 5. Làm cách nào để yêu cầu ProGuard làm xáo trộn phương thức và tên lớp?
- 6. xáo trộn chuỗi trong python
- 7. làm thế nào để làm xáo trộn tập tin chiến tranh bằng cách sử dụng proguard
- 8. Làm xáo trộn mã PHP
- 9. Làm xáo trộn hình ảnh
- 10. Cách xáo trộn các ký tự trong một chuỗi
- 11. Các lớp không xác định Ghi chú ILicensingService khi làm xáo trộn dự án Android
- 12. Làm thế nào để gỡ lỗi với các ứng dụng bị xáo trộn (với ProGuard) trên Android?
- 13. Làm thế nào để tắt tất cả các tính năng của Android ProGuard ngoại trừ sự xáo trộn?
- 14. SPOJ: Xáo trộn thẻ
- 15. Giảm bớt/Làm xáo trộn Mã PHP
- 16. Làm xáo trộn email trong html
- 17. Làm cách nào để xáo trộn các ký tự trong một chuỗi trong JavaScript?
- 18. Có cách nào để làm xáo trộn các khóa API trong gói R không?
- 19. hằng số chuỗi tĩnh trong lớp vs không gian tên cho hằng số [C++]
- 20. Xáo trộn nếu có vấn đề khác
- 21. Xáo trộn thẻ trong C#
- 22. Làm thế nào để làm xáo trộn SQL Sprocs?
- 23. Làm thế nào để xáo trộn một ArrayList
- 24. android - strings.xml vs hằng số tĩnh
- 25. Hằng số biểu tượng Java - Hằng số tĩnh có ổn không?
- 26. Ức chế mã Android với ProGuard ... làm sao người ta biết nó đã bị làm xáo trộn?
- 27. Hằng số tĩnh trong C#
- 28. Xáo trộn phân tích thuật toán
- 29. android: onClick không hoạt động với ProGuard
- 30. Sử dụng API bộ sưu tập để xáo trộn
Đây là mẫu của chuỗi đơn giản ẩn sử dụng file 'build.gradle': https://gist.github.com/shomeser/68f4fe360be0edac95e4 –
@OleksiiKropachov Tôi nghĩ trên bình luận nên được đăng như là một câu trả lời, coz nó là giúp đỡ. –
Proguard không làm xáo trộn các chuỗi tĩnh [nhập liên kết mô tả tại đây] (http://stackoverflow.com/questions/7435980/protect-string-constant-against-reverse-engineering/38050992#38050992) –