DexGuard trong phiên bản cũ bằng cách sử dụng "DES" Alg để mã hóa lớp được chỉ định. Sau đó nó thay đổi "AES" alg. Sau khi mã hóa Lớp được chỉ định, nó lưu trữ dữ liệu mã hóa vào một lớp khác thông qua định dạng mảng dữ liệu với phương thức giải mã. Phương thức giải mã là khối tĩnh trong Dex là phương thức định dạng clinit, làm cho obfuscation bị obfuscation và che giấu API. Vì vậy, nó là một chút để giải mã phương pháp giải mã. Trong các lớp khác, tham khảo sự thay đổi lớp được chỉ định cho opcode phản chiếu. Mỗi khi APK chạy, lớp được mã hóa sẽ được giải mã trong phương thức tĩnh trước tiên. Và các lớp được giải mã sẽ được tải vào bộ nhớ dvm bằng cách sử dụng API phản chiếu. vì vậy các lớp khác có thể tham chiếu lớp được chỉ định một cách chính xác. Đó là nó. Theo tôi, DexGuard là công cụ obfuscation rất mạnh mẽ. Nếu mỗi tính năng obfuscations áp dụng cho APK, bạn sẽ mất rất nhiều thời gian để đảo ngược toàn bộ chương trình thực.
Nguồn
2013-07-22 08:42:38
Xin chào! Cảm ơn vì đã trả lời! Có, tôi đã nhầm lẫn với định nghĩa mã hóa trong DexGuard. Về cơ bản, sự hiểu biết của tôi là mã hóa chuyển đổi dữ liệu với việc sử dụng một khóa bí mật. Tuy nhiên, nếu một ứng dụng Android được mã hóa, Dalvik sẽ không thể hiểu ứng dụng được mã hóa vì Dalvik không chứa bộ giải mã cho ứng dụng. Trừ khi tất nhiên một bộ giải mã được gắn bên trong ứng dụng cùng với khóa. Bằng cách này, lớp sẽ được giải mã bởi chính ứng dụng trước khi được Dalvik chạy. Đó có phải là cách DexGuard hoạt động không? – Arci
Tôi có thể sử dụng DexGuard cùng với tính năng encyption của Google Play dành cho Android 4.1 không? Ngoài ra, có nên sử dụng DexGuard cùng với Proguard không? Tôi nhận thấy trên trang của Proguard rằng DexGuard không xác định trước các lớp. Làm thế nào tôi có thể chiếm ưu thế trong các lớp học nếu tôi sử dụng DexGuard? Cảm ơn bạn! : D – Arci
Chính xác. Có, từ bên ngoài, một ứng dụng đã xử lý vẫn trông giống như bất kỳ ứng dụng nào khác; Google Play vẫn có thể mã hóa nó. Không, bạn không cần phải kết hợp ProGuard và DexGuard, vì DexGuard đã cung cấp chức năng của ProGuard. Chỉ cần yêu cầu xác minh trước cho Java Micro Edition và Java 6, không phải cho Android. –