머리말
때때로 개발 과정에서 어떻게 해야 할지 모르는 기능이 있을 수 있습니다. 그러나 현재 다른 소프트웨어에는 이미 해당 기능이 있습니다. 기능. 프로그램의 일부 사례를 이해하는 동시에 다른 사람의 소프트웨어 구조, 리소스 파일 등에서도 배울 수 있습니다. 하하. 그런 다음 디컴파일에 대한 몇 가지 지식을 주로 세 부분으로 나누어 설명하겠습니다. 첫 번째 부분에서는 디컴파일의 도구와 방법을 소개하고, 두 번째 부분에서는 smali의 구문을 소개하고, 세 번째 부분에서는 디컴파일을 방지하는 방법을 소개합니다. 디컴파일 및 코드 강화 방법을 배울 수 있는 기사입니다.
도구
apktools - 현재 가장 강력한 디컴파일 도구
쉽게 apk를 디컴파일하고, 리소스 파일, xml 파일을 구문 분석하고, smali 파일을 생성하고 수정합니다. APK를 생성하고 싶습니다.
Windows, Linux, Mac을 지원합니다.
다운로드 주소: https://code.google.com/p/android-apktool/downloads/list 사다리를 가져오세요
dex2jar
dex를 넣으세요 apk 파일은 jar 파일로 변환됩니다. 많은 사람들이 smali 파일을 읽는 방법을 모르고 Java 클래스 파일을 보는 것이 더 편합니다. 이때 이 도구를 사용하여 Java로 변환할 수도 있습니다. 리눅스, 맥.
다운로드 주소: http://code.google.com/p/dex2jar/downloads/list
jd-gui
jar 파일을 보면 기본적으로 볼 수 있습니다. java 클래스 파일로, Mac, Windows, Linux도 지원합니다.
다운로드 주소 : http://jd.benow.ca/
apktool의 명령줄 종합 도구 추천 apktool plus
는 사실 다른 사람이 작성한 도구를 조립해서 만든 기능입니다 apktool은 APK 서명도 지원합니다. 최신 버전은 Windows 시스템만 지원하는 v9update6입니다.
다운로드 주소 : http://dl.dbank.com/c0jndlkbu4#
디컴파일
apktools 사용
apktools 디렉토리에서 다음 실행 Command
./apktool d pathtoapk outdir #mac linux
apktool.bat d pathtoapk outdir #window
이렇게 하면 디컴파일이 성공하고 리소스 파일과 리소스 파일을 볼 수 있습니다. smali 파일은 물론 일부 앱은 특수 처리를 거쳤으며 모든 앱을 디컴파일할 수는 없습니다.
동시에 apktool은 디컴파일된 파일을 다음 형식의 apk 파일로 되돌릴 수도 있습니다.
./apktool b apppath outpath
역전된 파일이 서명되지 않은 경우 서명해야 설치할 수 있습니다.
dex2jar 사용
apk 파일 자체는 실제로 zip 압축 패키지입니다. 먼저 apk를 .zip 파일로 변경하고 압축을 풀어classes.dex를 얻습니다. dex2jar 디렉터리로 이동하여 다음 명령을 실행합니다.
./d2j-dex2jar.sh pathtoclasses.dex #mac linux
d2j-dex2jar.bat pathtoclasses.dex #wind
jd-gui로 jar 파일을 열면 java 코드가 들어있는 것을 볼 수 있습니다.
기타
사실 우리가 사용하는 디컴파일만으로는 충분하지 않습니다. 보통 우리는 많은 코드를 처리할 수 없습니다.