Android Security
디컴파일(Decompile)이란?
junnybottle
2023. 3. 12. 23:38
디컴파일(Decompile)
- 컴파일된 코드를 원래 소스 코드로 변환하는 것
- 컴파일된 바이너리 코드를 읽을 수 있는 원시 코드로 분해하는 작업이다.
- 디컴파일(Decompile) 또는 역컴파일(Reverse Compilation)이라고도 불린다.
- 애플리케이션의 APK 파일에서 리소스 파일, 매니페스트 파일, 코드 등을 추출하여 원시 코드로 변환하는 작업이다
- 개발자는 다른 애플리케이션의 코드와 리소스를 분석하거나 애플리케이션의 동작 방식을 이해하는 데 도움을 얻을 수 있다.
1. 내부 파일을 확인만 해볼 경우
- apk에서 jar 파일로 변환
- jar 파일 확인
2. 파일을 수정하고 앱 재빌드 하는 경우
- APK 압축 풀기
- dex에서 jar 파일로 변환
- jar 파일 확인
- 파일 수정
- 다시 빌드하기
- 서명 및 설치
주의해야 할 점
- 디컴파일된 코드가 원래의 소스 코드와 완전히 동일하지 않을 수도 있다.
- 컴파일 과정에서 최적화가 이루어져서 원래의 소스 코드와 차이가 있을 수 있다.
- 디컴파일된 코드를 수정하여 다시 패키징 하는 것은 어려울 수 있다.
- 저작권 침해나 악의적인 목적으로 사용 되는 것은 불법적이다.