Android Security

디컴파일(Decompile)이란?

junnybottle 2023. 3. 12. 23:38

디컴파일(Decompile)

 

 - 컴파일된 코드를 원래 소스 코드로 변환하는 것

 - 컴파일된 바이너리 코드를 읽을 수 있는 원시 코드로 분해하는 작업이다.

 - 디컴파일(Decompile) 또는 역컴파일(Reverse Compilation)이라고도 불린다.

 

 - 애플리케이션의 APK 파일에서 리소스 파일, 매니페스트 파일, 코드 등을 추출하여 원시 코드로 변환하는 작업이다

 - 개발자는 다른 애플리케이션의 코드와 리소스를 분석하거나 애플리케이션의 동작 방식을 이해하는 데 도움을 얻을 수 있다.

 

1. 내부 파일을 확인만 해볼 경우

 - apk에서 jar 파일로 변환

 - jar 파일 확인

 

2. 파일을 수정하고 앱 재빌드 하는 경우

 - APK 압축 풀기

 - dex에서 jar 파일로 변환

 - jar 파일 확인

 - 파일 수정

 - 다시 빌드하기

 - 서명 및 설치

 주의해야 할 점

 

 - 디컴파일된 코드가 원래의 소스 코드와 완전히 동일하지 않을 수도 있다.

 - 컴파일 과정에서 최적화가 이루어져서 원래의 소스 코드와 차이가 있을 수 있다.

 - 디컴파일된 코드를 수정하여 다시 패키징 하는 것은 어려울 수 있다.

 - 저작권 침해나 악의적인 목적으로 사용 되는 것은 불법적이다.