2012-11-06 4 views
17

DexGuard의 작동 방식을 확인하고 싶지만 무료 평가판이없는 것 같습니다.DexGuard는 어떻게 클래스를 암호화합니까?

DexGuard는 Android 애플리케이션을 암호화 할 수 있습니까? 아니면 단순히 코드를 난독 화합니까? DexGuard 암호화는 어떻게 작동합니까? 디 컴파일 전후에 DexGuard로 실행되는 샘플 애플리케이션의 코드를 제공 할 수 있다면 좋을 것입니다.

답변

50

ProGuard은 이름 난독 화를 제공합니다. 클래스, 메소드 및 필드의 원래 이름을 짧고 의미없는 이름으로 바꿀 수 있습니다. DexGuard은 추가적으로 문자열 암호화와 클래스 암호화를 제공합니다. 기본적으로 암호화가 난독 화 유형이기 때문에 암호화라는 용어는이 컨텍스트에서 혼란 스러울 수 있습니다. 지정된 문자열 및 클래스는 일부 의도적으로 복잡한 암호화 된 형식으로 저장되며 런타임에 응용 프로그램에서 필수적으로 사용할 수있는 키와 알고리즘으로 해독됩니다. 비슷하게 Google Play 마켓에서는 Android 4.1 용 전체 애플리케이션을 암호화 할 수 있습니다. 그런 다음 런타임 환경은 제어 된 방식으로 실행되기 전에 응용 프로그램의 암호를 해독합니다.

(나는 ProGuard에서와 DexGuard의 개발자입니까? - 당신이 관심이 있다면 연락 주시기)가 용어 암호화를 사용하지만

+0

안녕하세요! 답장을 보내 주셔서 감사합니다! 예, 저는 DexGuard의 암호화 정의와 혼동합니다. 기본적으로, 나의 이해는 암호화가 비밀 키의 사용으로 데이터를 변환한다는 것이다. 그러나 안드로이드 애플리케이션이 암호화되어 있다면 Dalvik은 암호화 된 애플리케이션을 이해할 수 없습니다. Dalvik은 애플리케이션 용 해독기를 포함하고 있지 않습니다. 물론 암호 해독기가 키와 함께 응용 프로그램 내부에 부착되어 있지 않은 한. 이런 식으로 클래스는 Dalvik이 실행하기 전에 응용 프로그램 자체에서 해독됩니다. 덱스 가드가 어떻게 작동합니까? – Arci

+0

Android 4.1 용 Google Play의 encyption과 함께 DexGuard를 사용할 수 있습니까? 또한 Proguard와 함께 DexGuard를 사용하는 것이 좋습니다? Proguard의 페이지에서 DexGuard가 클래스를 사전 검증하지 않는다는 것을 알았습니다. DexGuard를 사용한다면 수업을 어떻게 향상시킬 수 있습니까? 고맙습니다! : D – Arci

+2

수정. 예, 외부에서 처리 된 응용 프로그램은 여전히 ​​다른 응용 프로그램과 비슷합니다. Google Play에서 계속 암호화 할 수 있습니다. DexGuard는 이미 ProGuard의 기능을 제공하므로 ProGuard와 DexGuard를 결합 할 필요가 없습니다. 사전 검증은 Java Micro Edition 및 Java 6에서만 필요하며 안드로이드에서는 필요하지 않습니다. –

1

을, 정말 난처 것 같다. 나는 그들이 단순히 특정 문자열/값을 암호화 할 수는 있지만 암호화 키가 앱에 저장되어야한다는 사실은 코드에 "잠금"을 제공함과 동시에 "키 " 그것으로.

+3

에릭은 위의 그의 대답에서 정확히 말합니다 ... – Dori

2

"DES"Alg를 사용하는 이전 버전의 DexGuard는 지정된 클래스를 암호화합니다. 나중에 "AES"가 변경됩니다. 암호화 후 지정된 클래스는 암호 해독 방법을 사용하여 데이터 배열 형식을 통해 다른 클래스에 암호화 된 데이터를 저장합니다. Dex에서 정적 블록 인 해독 방법은 제어 흐름 난독 화 및 API 숨김을 사용하여 난독 화되는 임상 형식 (Clitit) 형식 방법입니다. 따라서 해독 방법을 비인 화하는 것이 조금 있습니다. 다른 클래스에서는 지정된 클래스 변경을 리플렉션 연산 코드로 참조합니다. APK가 실행될 때마다 암호화 된 클래스가 정적 메서드에서 먼저 해독됩니다. 그리고 해독 된 클래스는 리플렉션 API를 사용하여 dvm 메모리에로드됩니다. 그래서 다른 클래스는 지정된 클래스를 적절하게 참조 할 수 있습니다. 그게 전부 야. 제 생각에는 DexGuard는 매우 강력한 난독 화 도구입니다. 난독 화 기능이 APK에 적용되면 실제 프로그램 전체를 뒤집을 시간이 많이 걸립니다.

관련 문제