Google Play 스토어에서 다운로드하여 일부 Android APK 파일을 리버스 엔지니어링했지만 (With1, With2 및 수동), 프로 가드 사용에 대한 정확한 힌트를 얻지 못했습니다.Android APK가 Proguard를 사용하도록 설정했는지 여부를 어떻게 확인합니까?
안드로이드 APK 파일에서 리버스 엔지니어링 된 코드로 프로 가드 사용법을 사용하고 있는지 알 수있는 방법이 있습니까?
그리고
코드를 리버스 엔지니어링 난독 사이 난독 사용하지 않고 차이점은 무엇입니까?
내가 리버스 엔지니어링 코드를 가지고 무엇입니까 다음 APK 파일의 코드 중 일부에서
- 는 클래스 이름은 같다, B는 C, D와 그 패키지 이름이 같은 방법도 있습니다. 이 코드는 디 컴파일 후 너무 복잡하고 쉽게 이해할 수 없었습니다.
- 일부 APK 파일은 쉽게 형식이 지정된 코드를 가지고 있습니다. 디 컴파일 된 코드는 일반적인 코드 구조와 같습니다. 클래스 이름과 패키지 이름은 읽을 수 있지만 코드에서 일부 함수는 불일치 코드가 있습니다.
APK가 Android Studio로 서명 된 경우 모든 APK의 디 컴파일 된 코드 구조가 동일하지 않은 이유를 알고 있기 때문에 기본적으로 프로 가드가 활성화됩니다.
읽었습니까? https://developer.android.com/studio/build/shrink-code.html 섹션을 참조하십시오. 특히 '보관할 코드를 사용자 정의하십시오' –
minifyEnabled true를 사용하면 a, b, c, d ... 같은 코드 구조? 또는 Proguard 사용으로 인한 것입니까? –
먼저 서명 된 APK에 Proguard가 기본적으로 활성화되지 않으므로 수동으로 활성화해야합니다. 이제 동일한 코드의 두 가지 프로젝트를 생성하십시오. 첫 번째 코드에서는 Proguard를 활성화하고 다른 코드에서는 비활성화합니다. 일반적으로 Proguard가 활성화 된 apk는 올바른 클래스 이름을 찾기가 어렵습니다. 클래스 이름이 MyFirstAndroidClass 인 경우 Proguard를 활성화 한 후 디 컴파일 후 클래스 이름이 변경된 것을 볼 수 있습니다. Proguard를 활성화하면이 파일에서 모든 참조를 찾을 수 있습니다. app/build/outputs/mapping/debug/mapping.txt – Shekhar