7. Adroid 앱 코드 정적 분석 tool

2024. 12. 12. 09:00·기반 지식/Android

○ apk > dex > smali > class > java

목록 설명
apk 파일 압축해제 시 모바일 전용 dex 파일 생성
apktool apk 파일을 smali 파일로 디컴파일
dex2jar apk 파일을 class 파일로 디컴파일
jadx-gui apk 파일을 java 파일로 디컴파일
Bytecode Viewer apk 파일을 java 파일 및 smali 파일로 디컴파일

 

1. apk 파일 압축 해제

java 설치 : https://www.java.com/en/download/

 

Download Java for Linux

Linux RPM filesize: 102.35 MB Instructions After installing Java, you will need to enable Java in your browser.

www.java.com

apktool 설치 : https://bitbucket.org/iBotPeaches/apktool/downloads/

 

iBotPeaches / Apktool / Downloads — Bitbucket

For large uploads, we recommend using the API. Get instructions

bitbucket.org

 

 

dex 파일 확인

○ .java 파일 -> dex + 리소스 + 권한 -> apk 파일

 

AndroidManifest.xml

○ 권한 정보를 나타내는 AndroidManifest.xml 파일

○ 디컴파일 없이는 해석할 수 없는 것을 볼 수 있음

 

2. apktool을 이용한 디컴파일

apktool.jar의 d(ecoding) 옵션을 이용해 apk 파일의 디컴파일 수행

 

디코딩 된 파일 확인(smali 코드 생성) - 원본 파일과 디렉터리 파일이 다름

 

AndroidManifest.xml이 디코딩 된 것을 확인

○ AndroidManifest.xml 파일에는 사용자 권한(permission)과 관련된 내용이 들어감

○ 불필요한 권한이 존재할 경우 취약으로 판단될 수 있음

 

activity 확인

○ activity라는 것은 앱을 실행했을 때 확인되는 UI라고 생각하면 편함

○ UI 마다 라벨이 붙어 있음

○ 테스트 activity 또는 불필요한 activity가 있을 경우 취약하다고 판단됨

 

exported = "true"

○ exported = "true"가 설정되어 있을 경우 외부에서 호출할 수 있음

○ 중요한 페이지일 경우 외부에 노출되면 취약하다고 판단

 

smali

○ .java 파일 -> class -> smali -> dex + 리소스 + 권한 -> apk 파일

○ smali 코드는 apk가 보호되어(솔루션 등)있을 경우 파일을 변경하여 루팅, 솔루션 우회 지점을 찾아 수정해 apk를 만듬

○ 솔루션이 존재할 경우 원본 파일(.java)로 변환되기 힘들 떄, smali 코드를 사용

 

3.  dex2jar를 이용한 디컴파일

dex2jar를 이용한 jar 파일 생성

 

class 파일 생성 확인

 

디컴파일 없이는

○ .java 파일 -> class -> smali -> dex + 리소스 + 권한 -> apk 파일

 

4. Bytecode Viewer

Bytecode Viewer

○ 디컴파일 도구로써 왼쪽은 java 코드, 오른쪽은 smali 코드를 출력함

○ 플러그인을 지원함

○ 하지만, 검색 기능이 뛰어나진 않음

 

jadx-gui

○ 앞서 배운 jadx-gui의 경우 검색 기능의 뛰어남

○ 그래서 2개의 툴을 많이 사용함

 

어느정도의 난독화 해제 기능도 지원함

끝판왕은 역시 JEB

'기반 지식 > Android' 카테고리의 다른 글

9. 로컬 암호화 이슈 & 취약한 SD카드 스토리지  (2) 2024.12.16
8. GDA를 활용한 디컴파일 코드 분석 사례  (0) 2024.12.13
6. 모바일 취약점 진단 항목  (0) 2024.12.09
5. 녹스(Nox Player) 가상 애뮬 설치  (0) 2024.12.06
4. 안드로이드 앱 구조  (0) 2024.12.05
'기반 지식/Android' 카테고리의 다른 글
  • 9. 로컬 암호화 이슈 & 취약한 SD카드 스토리지
  • 8. GDA를 활용한 디컴파일 코드 분석 사례
  • 6. 모바일 취약점 진단 항목
  • 5. 녹스(Nox Player) 가상 애뮬 설치
real-again
real-again
realagin 님의 블로그 입니다.
  • real-again
    또또, 다시
    real-again
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로젝트
        • AOS 모바일 앱 모의해킹
        • Spring Boot 웹 애플리케이션 구축
        • [ESXi]인프라 구축 및 모니터링
        • 인프라 취약점 진단 고도화
      • CVE 분석
      • 기반 지식
        • AWS
        • 인프라
        • 웹 어플리케이션
        • Android
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Snort
    tocken
    AWS
    android directory
    insecure authentication/authorization
    pfsense
    EC2
    aos정리
    vlan
    sd스토리지
    dvm
    diva
    통신 과정 취약점 진단
    owasp mobile top10
    콘텐츠 프로바이더
    하드코드
    app intsructure
    splunk #esm
    spring boot
    브로트캐스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
real-again
7. Adroid 앱 코드 정적 분석 tool
상단으로

티스토리툴바