Flutter의 코드 난독화(Android)
Dec 15 2022
이 이야기는 Flutter 앱을 프로덕션에 게시하려고 할 때 시작됩니다. 하지만 그 전에 앱은 VAPT(취약점 평가 및 침투 테스트) 프로세스를 거쳤습니다.
이 이야기는 Flutter 앱을 프로덕션에 게시하려고 할 때 시작됩니다. 하지만 그 전에 앱은 VAPT( 취약성 평가 및 침투 테스트 ) 프로세스를 거쳤습니다.
코드 난독화란 무엇입니까?
코드 난독화는 프로그램의 코드를 이해하기 어렵게 만드는 과정으로, 일반적으로 리버스 엔지니어링이나 수정을 더 어렵게 만드는 것을 목표로 합니다. 이는 변수 및 함수 이름을 읽을 수 없게 만들거나 코드에 간접 또는 복잡성 계층을 추가하는 등의 다양한 기술을 통해 수행할 수 있습니다. 난독화는 종종 지적 재산을 보호하거나 프로그램의 악의적인 변조를 방지하는 데 사용됩니다. (ChatGPT 덕분에 ).
코드가 난독화되는 이유는 무엇입니까?
사용자 데이터의 보안이 무엇보다 중요한 앱을 개발하는 경우 이를 손상시킬 수 없습니다. 어리석은 증거 보안은 신화이지만. 그러나 다음 방법을 사용하여 어느 정도까지 최대화할 수 있습니다.
- 코드 축소(또는 트리 쉐이킹) : 앱에서 사용하지 않는 클래스, 필드, 메서드 및 특성을 감지하고 안전하게 제거합니다.
3. Proguard 활성화 : Proguard 규칙을 사용하여 축소 및 축소 프로세스 중에 변경하지 않으려는 파일을 정의합니다.
방법 부분으로 이동하겠습니다.
flutter 명령을 사용한 난독화
export version=1.0.0
flutter build apk --release --shrink --obfuscate --split-debug-info=misc/mapping/${version}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
설명 :
- 릴리스 모드 서명 구성을 사용합니다. 서명 자격 증명을 언급할 수 있는 .jks 파일과 key.properties를 만들어야 합니다.
- 앱 폴더 안에 proguard-rules.pro를 보관하면 그 안에 규칙을 정의할 수 있습니다. 여기에서 proguard 규칙을 정의하는 방법을 읽어보세요.
- 난독화 중에 플러터 파일을 보호하려면 proguard-rules 파일 내에서 다음 줄을 사용하세요.
#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.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class org.xmlpull.v1.** { *;}
-dontwarn org.xmlpull.v1.**
이제 전문가의 팁을 받을 시간입니다.
여기까지 오셨다면 여기 선물이 있습니다. proguard를 활성화한 후 앱이 계속 충돌합니까?
이 해킹을 시도하여 디버깅하십시오.
릴리스를 디버그로 교체하고 디버그 모드에서 앱을 실행합니다.
buildTypes {
debug {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
오늘은 그게 다야. 끝까지 함께해주셔서 감사합니다. 제안을 환영합니다.
Twitter , Instagram 또는 LinkedIn 에서 지금 연결합시다 .

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































