Galaxy S22의 앱 adk 정적분석(jadx, frida)

2026. 1. 23. 10:20·cs/sec
728x90

0. 환경설정

  • Galaxy S22, 안드로이드 13 
  • Galaxy S22는 frida 16버전은 오류가 나서 frida 최신 버전을 사용해야 함

https://github.com/frida/frida/releases

  • server는 위의 링크에서 다운로드
  • frida-server-17.6.1-android-arm64
  • frida와 server 버전이 맞아야 하며, 아키텍처랑도 맞아야 함)
pip uninstall frida frida-tools -y
pip install frida frida-tools
//최신 버전인 frida-17.6.1,frida_tools-14.5.1가 다운로드

frida --version

//frida-server-17.1.4-android-arm64 다운로드 받은 곳으로 감
adb push frida-server-17.1.4-android-arm64 /data/local/tmp/frida-server //push하고 파일 가져오면 됨
adb shell
su
cd /data/local/tmp
ls -al
chmod 777 frida-server-17.1.4-android-arm64
ls -al
./frida-server-17.1.4-android-arm64 &

만약 프로세스 충돌 오류가 난다면?
ps -A | grep frida //프로세스 목록 나옴
kill -9 프로세스

 

  • 아래 사진은 위의 코드 중 대략적인 cmd창을 보여줌

그림. frida 설정

그림. adb shell 접속

그림. 777 이후 권한 상황

 

1.Jadx 분석

1.1 adk 파일을 추출

adb shell
su
cd /data/app //data/app에는 내가 설치하거나 아니면 설치된거 볼 수 있음
ls -al
pm list packages -f | grep [패키지명] //frida-ps -Ua로 패키지명 볼 수 있음

//shell창이 아닌 새로운 창에서
adb pull /data/app/~~~~~~==/base.apk //방법1. /base.apk 파일만 추출
adb pull /data/app~~~  ./ //방법2. 디렉터리 통으로 base.apk 전까지 복사하고 ./기입
  • 난독화가 되어 있음
  • 실제 앱이기 때문에 이미지에는 정보를 가렸음
  • adb pull 이후에 C:\Users\사용자명 폴더에 들어가면 관련 폴더가 생김 .apk를 가지고 분석 진행

그림.adk 파일 추출1

그림.adk 파일 추출2

 

위의 추출이 안되면 구글스토어에 Apk 추출기로 해도 됨

1.2 Jadx 분석

1) 텍스트 검색을 이용

2) Frida-trace 이용

https://hackcatml.tistory.com/48

 

Frida Android Method Trace

잘 알려진 method trace 코드인 raptor_frida_android_trace 를 다운받아 실행해보면 error가 발생하여 수정하였음. // generic trace function trace(pattern) { var type = (pattern.toString().indexOf("!") === -1) ? "java" : "module"; if (

hackcatml.tistory.com

  • 위의 사이트 코드에서 하단의 패키지 이름 지정 부분만 수정하여 돌려봄
  • Android 앱의 Java 메서드를 자동으로 대량 후킹(trace) 하기 위한 용도
  • 앱 내부에서 “어떤 메서드가 언제, 어떤 인자로 호출되는지 전부 훑어보려고” 만든 Frida 트레이싱 스크립트
  • frida-trace -U -f 패키지명 -i "open"//실행 중 아니면
  • frida-trace -i "open" -U 패키지명 //실행 중이면

 

3. FRIDA 우회 코드 작성

  • 아래의 코드는 안드로이드 기기 기본 틀임
Java.perform(function(){
   var root = Java.use("패카지명.클래스");
   root.함수.implementation = function(){
      var retval = this.a();
      console.log(retval)
      return false;
   }  
});

 

4. 트러블 이슈

  • frida를 돌렸는데 휴대폰이 꺼진다면 아래와 같이 진행
더보기

PC/호스트를 재시작/종료하세요

"pm uninstall cohttp://m.google.android.art"를 입력하세요.


안드로이드 재시작
완료

 

728x90
반응형

'cs > sec' 카테고리의 다른 글

[Dreamhack]Beginner  (0) 2026.02.01
아이폰XR 16.4 IPA 추출하기  (0) 2026.01.22
[모의해킹] Mobile 교육  (0) 2026.01.16
UnCrackable Level3(후킹을 활용한 실습 문제 분석)  (1) 2026.01.15
UnCreakable Level2 실습(후킹을 활용한 실습 문제 분석)  (0) 2026.01.15
'cs/sec' 카테고리의 다른 글
  • [Dreamhack]Beginner
  • 아이폰XR 16.4 IPA 추출하기
  • [모의해킹] Mobile 교육
  • UnCrackable Level3(후킹을 활용한 실습 문제 분석)
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

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

    • github
  • 공지사항

  • 인기 글

  • 태그

    AWS
    SQL
    docker
    Java
    알고리즘
    Security
    CS
    Spring
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
Galaxy S22의 앱 adk 정적분석(jadx, frida)
상단으로

티스토리툴바