play/box

odex to dex(smali) 파일 보는법

카고형 2023. 3. 19. 22:05
728x90

ARM은 안드로이드에서 실행되는 대부분의 모바일 기기의 아키텍처 중 하나입니다. 이는 모바일 기기에서 사용되는 프로세서 기반 아키텍처로, 안드로이드 운영체제와 함께 작동하여 모바일 애플리케이션을 실행합니다.

ART는 안드로이드 애플리케이션을 실행하기 위한 런타임 환경 중 하나입니다. ART는 JIT(Just-In-Time) 컴파일러 대신 AOT(Ahead-Of-Time) 컴파일러를 사용하여 애플리케이션을 미리 컴파일하여 실행 시간을 단축시킵니다. 이는 안드로이드 애플리케이션의 실행 속도와 반응성을 향상시키는 데 도움이 됩니다.

따라서, ARM은 모바일 기기의 아키텍처이고, ART는 안드로이드 애플리케이션을 실행하기 위한 런타임 환경 중 하나입니다.

odex 

파일은 최적화된 dex 파일을 기계어 형식으로 변환한 파일이며, 기본적으로 실행 시간을 줄이기 위한 최적화 파일입니다. 이 파일은 이전 안드로이드 버전에서 사용되었습니다.APK의 메서드에 사용되는 AOT 컴파일된 코드가 들어 있습니다.

vdex

APK의 압축되지 않은 DEX 코드가 들어 있고, 확인 속도를 높이기 위한 추가 메타데이터가 들어 있습니다.

최적화된 dex 파일을 저장하는 새로운 형식의 파일입니다. 이 파일은 ART (Android Runtime)에서 동작하는 안드로이드 8.0 이상에서 사용됩니다. 이전 odex 파일에 비해 더 나은 성능과 보안을 제공합니다. vdex 파일은 dex 파일을 최적화하고, 그 최적화된 코드를 저장하는 것으로, odex 파일에 비해 더 적은 디스크 공간을 차지하며 빠르게 로드될 수 있습니다.

 

.art

APK에 나열된 일부 문자열과 클래스의 ART 내부 표현이 포함되어 있습니다. 이러한 항목은 애플리케이션 시작 속도를 높이는 데 사용됩니다.

 

 

준비 사항

JDK 또는 JRE 설치 및 환경 변수 체크 (없으면 설치)

data/app/arm 폴더에 있는 거 다 가져오기(디컴파일 할 떄 같은 주소에 있어야됨)

 

첫번쨰 방법

https://bitbucket.org/JesusFreke/smali/downloads/

 

 

위 주소에서 baksmli.jar, smali.jar 파일을 다운 받는다.

 

 

odex to smali

java -jar baksmali.jar d <변환하고자 하는 odex파일 및 경로> -o <결과값이 저장될 폴더명>

 

실행 시킬 떄 odex 파일과 vdex파일이 같은곳에 있어야됨

 

smali to  dex

java -jar smali.jar a <결과값이 저장된 폴더명> -o classes.dex

 

두번쨰 방법

APK Easy Tool 을 사용 해서 디컴파일을 한다 이것도 JDK 또는 JRE 가 필요하다

https://forum.xda-developers.com/t/discontinued-windows-apk-easy-tool-v1-60-2022-06-23.3333960/

https://androidfilehost.com/?fid=15664248565197183138

 

728x90

'play > box' 카테고리의 다른 글

dexprotector unpack  (1) 2023.04.21
VBA 매크로 비밀 번호 푸는 법  (0) 2023.03.25
[Git] 주로 사용하는 Git 명령어 모음  (0) 2023.03.09
프리다(Frida) CLI 명령어 정리  (0) 2023.03.05
ProGuard 와 복호화  (0) 2023.03.04