2013-08-15 3 views
20

Android Studio에서 서명 된 APK를 생성하고 ProGuard를 실행할 수있는 옵션을 제공합니다. 그것은 설정 파일 경로를 제공하도록 요청하지만 설정 파일이 없습니다. 하나 만드는 방법? ProGuard를 사용해야합니까? ProGuard를 사용하지 않는 APK 파일을 쉽게 풀 수 있습니까?ProGuard를 사용해야합니까?

편집 : 답변 해 주셔서 감사합니다.하지만 어디서나 proguard.cfg 파일을 찾을 수 없습니다. 속성 만 내가 프로젝트의 루트 디렉토리에있는 local.properties 파일입니다 파일 나는 안드로이드 Studio에서 열 때 나는이있어 : ProGuard에서 실행을 갖는 것은 전적으로 선택하지만, 매우 좋습니다

# This file is automatically generated by Android Studio. 
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! 
# 
# This file must *NOT* be checked into Version Control Systems, 
# as it contains information specific to your local configuration. 

# Location of the SDK. This is only used by Gradle. 
# For customization when using a Version Control System, please read the 
# header note. 
sdk.dir=C:/.../... 

답변

17

안드로이드 애플리케이션을 리버스 엔지니어링하는 것은 매우 쉽습니다. 그렇다면이 문제를 방지하려면 예를 들어 난독 화의 ProGuard를 사용해야합니다. 사용하지 않는 코드를 제거하고 분명 매우 유용 또한 최적화 축소 :

ProGuard에서 또한 다른 두 가지 중요한 기능이 있습니다. 최적화는 Java 바이트 코드로 작동하지만 안드로이드가 자바 바이트 코드에서 변환되는 Dalvik 바이트 코드로 실행되기 때문에 일부 최적화가 잘 작동하지 않습니다. 그래서 조심해야합니다.

Android 웹 사이트에 instructions on how to use proguard이 있습니다. 당신이 확인해야 할 주요 사항은 귀하의 project.properties 파일에

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

의 줄이 있다는 것입니다. Android Studio를 사용 중이며이 파일이 없지만 구성 파일에 대한 질문이 나오면 Android SDK (tools/proguard/proguard-android.txt)에있는 파일을 선택하십시오.

+0

설명해 주셔서 감사합니다. 그러나 project.properties 파일에는 Android 웹 사이트에서 언급 한 proguard.cfg 파일이 없습니다. local.properties 파일 만 있습니다. – user2687045

+0

@ user2687045 답변을 업데이트했습니다. 나는 안드로이드 스튜디오를 직접 사용하지 않았다. 그래서 이것은 단지 추측 일 뿐이다. – Malcolm

2

합니다.

당신이 찾을 수있는 모든 당신이 여기에서 필요로하는 무엇을 :

proguard.config = proguard.cfg

: 는 또한 http://developer.android.com/tools/help/proguard.html

당신이 당신의 프로젝트 루트 폴더에 default.properties 파일에서 다음 줄을 제거 할 수 있습니다

+0

"안드로이드 프로젝트를 만들면 proguard.cfg 파일이 프로젝트의 루트 디렉토리에 자동으로 생성됩니다."하지만 프로젝트 디렉토리에는 proguard.cfg 파일이 없으며 그 밖의 다른 위치에 있습니다. – user2687045

+0

@ user2687045 또한 다음 행을 기본값에서 제거 할 수 있습니다.프로젝트 루트 폴더의 등록 정보 파일 : proguard.config = proguard.cfg – Arseniy

12

ProGuard를 사용하는 것은 선택 사항이며 사용 여부에 관계없이 apk의 패키지를 풀고 리소스 (그래픽 및 기타 자산)를 얻는 것은 매우 쉽습니다. ProGuard를 사용하지 않으면 응용 프로그램 코드를 매우 쉽게 재구성 할 수 있습니다. ProGuard를 사용하면 (시간과 노력이 충분하지는 않지만 불가능한 것은 아니지만) 어떤 일이 발생하는지 이해하고 시도하는 것은 매우 어렵고 번거로워집니다.

응용 프로그램을 변경했기 때문에 응용 프로그램을 철저히 테스트해야합니다. 특히 oyu가 반사 효과를 많이 사용하는 경우가 있습니다.

6

ProGuard 난독 화를 수행하는 중요한 경우 중 하나는 악의적 인 사람들이 apk를 풀고 구매 모듈을 주입/교체하는 것입니다 (). 모든 사용자가 Play 스토어에서만 apk를 다운로드 할 수는 없으며 사용자는 구매 계정을 도용 당할 수 있습니다.

+0

와우, 프로 가드와 관련하여 사용자 보안에 대해 생각해 본 적이 없습니다. 확실히 그것을 사용하는 또 하나의 이유. 감사. – HopefullyHelpful

관련 문제