-
Android 난독화 - FlutterAndroid 관련 2024. 7. 31. 10:54반응형
오늘 포스팅은 안드로이드 난독화에대해 알아보겠습니다.
안드로이드 난독화(obfuscation)는 안드로이드 애플리케이션의 소스 코드를 이해하기 어렵게 만들어 보안성을 높이는 기술입니다. 난독화를 통해 코드를 분석하거나 역공학하려는 공격자로부터 애플리케이션을 보호할 수 있습니다.
- 이름 난독화 (Name Obfuscation):
- 클래스, 메소드, 변수 등의 이름을 의미 없는 문자나 단어로 변경합니다. 예를 들어, calculateSum()이라는 메소드 이름을 a()로 변경합니다.
- 제어 흐름 난독화 (Control Flow Obfuscation):
- 프로그램의 제어 흐름을 복잡하게 만듭니다. 예를 들어, 불필요한 조건문이나 루프를 추가하여 코드의 흐름을 이해하기 어렵게 만듭니다.
- 데이터 난독화 (Data Obfuscation):
- 상수 값이나 리터럴 값을 암호화하거나 인코딩하여 저장합니다. 실행 중에만 복호화하여 사용합니다.
- 코드 인라이닝 (Code Inlining):
- 메소드 호출을 제거하고 메소드의 코드를 호출 위치에 직접 삽입합니다. 이를 통해 디버깅이나 분석을 더 어렵게 만듭니다.
- 리플렉션 사용 (Using Reflection):
- 리플렉션을 통해 런타임 시에만 접근할 수 있는 방식으로 메소드나 변수를 호출합니다. 이는 코드 분석 도구가 코드의 실제 동작을 이해하기 어렵게 만듭니다.
app/build.gradle
android/app 안에 proguard-rules.pro 파일을 만든다.
proguard-rules.pro 안에 아래 코드를 입력한다.
## Flutter wrapper -keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter.view.** { *; } -keep class io.flutter.embedding.** { *; } -keep class io.flutter.** { *; } -keep class com.nextdoor.god.** { *; } -dontwarn okio.** -dontwarn retrofit2.** -dontwarn io.flutter.embedding.**
주의사항
- 난독화는 애플리케이션의 보안을 강화할 수 있지만, 모든 공격을 막을 수 있는 것은 아닙니다. 난독화는 보안 강화 전략의 하나로 사용되며, 다른 보안 기법들과 함께 사용해야 합니다.
- 난독화 설정을 잘못하면 애플리케이션의 동작에 문제가 생길 수 있습니다. 따라서 난독화 후 애플리케이션이 정상적으로 동작하는지 충분히 테스트해야 합니다.
반응형'Android 관련' 카테고리의 다른 글
Google Play Console 앱 권한 관리 (0) 2023.09.06 AndroidManifest 란? (0) 2023.05.06 playStore App 판매 중단하기 (0) 2023.03.20 PlayStore 검색 노출 시기키 (0) 2023.02.21 No signature of method (0) 2023.02.20 - 이름 난독화 (Name Obfuscation):