ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android 난독화 - Flutter
    Android 관련 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

    댓글

Designed by Tistory.