안녕하세요.
오늘은 안드로이드 앱을 디컴파일 하는 것에 대해서 작성해볼까합니다.
안드로이드와 같이 Virture Machine(VM)환경에서 동작되는 프로그램들은 디컴파일(Decompile)이 용이하다는 특징이 있습니다. 자바를 이용해서 안드로이드 앱을 개발할 경우, 컴파일하면 *.java -> *.class ->*.dex 순으로 컴파일이 됩니다. 이를 거꾸로 dex파일을 class파일로 변환해주고, 또 java 파일로 변환해주면 원본 소스가 어느정도 복원이 됩니다.
잘만들어진 앱을 보면 이 앱에 대한 코드 정보가 궁금할 때가 있곤하는데요. 그때, 정확하게 모든 코드를 알수는 없지만
전체적인 구성이 어떠한 형태로 되었는지에 대한 정보를 얻을 수 있는 방법으로 디컴파일을 사용하기도 합니다. 말그대로 코딩에 대한 전반적인 학습이 되어 있을 때나 가능한 것이고, 디컴파일을 하고 볼 수 있는 코드들도 많이 변형이 되어서 있기 때문에 어설프게 아시는 분들은 시간 낭비일 수 있으니, 이 점 유념해주시기 바랍니다.
1. 준비 (필요한 프로그램 Download)
① APK Studio
- 무료로 제공되는 툴들을 엮어서 Apk 디컴파일을 할 수 있도록 해주는 프로그램.
- 다운로드 링크 : https://github.com/vaibhavpandeyvpz/apkstudio/releases
- 다운로드 후 압축을 푼 후에 실행을 시키면 첫 설정을 하는 화면이 나옵니다.
- 다운 받은 프로그램들이 있다면 Browse 버튼을 눌러서 연결을 시켜주면 되고, 만약 다운 받은 것이 없다면 Get it here!을 클릭하여 다운로드 받은 후 연결을 시켜주면 됩니다.
- java 같은 경우, 다운로드 후 환경설정이 되어 있다면 프로그램 실행이 되면 자동으로 연결시켜 줍니다.
② 필요한 APK 파일 다운로드.
- 필요한 APK 파일은 안드로이드 기기에서 백업 받은 후에 PC로 옮기는 방법도 있기는 하지만, 매우 번거롭고 초보들에게는 상당히 어렵게 느껴질 수 있으므로, PC에서 바로 다운로드 받을 수 있는 곳에서 받는 것이 좋습니다.
- 다운로드 링크 : https://apkpure.com/kr/
- 필요한 파일을 검색을 통해 다운로드 받을 수 있습니다.
2. 실행.
- 안드로이드 아이콘을 클릭한 후 다운로드 받은 APK 파일을 넣어주시면
다음과 같이 디컴파일 smali, resources, java를 체크하는 체크박스가 나옵니다. 모두 체크하시고 Decompile을 클릭하면 됩니다.
디컴파일이 진행되고 있으며, 100%가 되기를 기다리시면 됩니다.
디컴파일이 모두 진행이 되면 다음과 같이 Projects에 디렉토리들이 생성이 됩니다.
소스코드들이 나오면 해당 APK의 소스들을 확인할 수 있습니다. 해당 코드는 디컴파일러가 일종의 유추를 한 것이므로 분석용도로만 사용하는 것이 좋습니다.
'IT' 카테고리의 다른 글
[Flutter] 개발 환경 설정시 Windows 10 SDK 이슈 해결하기. (0) | 2024.07.11 |
---|---|
[openai ApiKey 발급 ] API란? & OpenAI API Key 발급방법. (0) | 2024.07.09 |
[HTML Editor] 브라켓(Bracket) 설치 / 확장기능 (플러그인) 설치 / 필수 확장 기능 추천. (0) | 2022.11.08 |
[Android] Firebase Google Social Login시 R.string.default_web_client_id 오류 & 해결방안 (0) | 2022.10.08 |
[Android] 패키지 생성 후 Manifest 파일에 액티비티 추가방법. (0) | 2022.10.01 |
댓글