Fridump를 사용한 Memory Dump하기

SSY·2024년 8월 14일
0

Security

목록 보기
5/7
post-thumbnail

1. python3설치

brew install python3

파이썬이 잘 설치되었는지 확인

python3 --version

pip버전이 잘 있는지 확인

pip3 --version

2. frida설치

pip3 intall frida-tools

pip3 패키지 설치중 에러 발생 시, 아래 명령어를 입력해준다.

python3 -m pip config set global.break-system-packages true

설치 확인

frida --version

3. 안드로이드 에뮬레이터 루팅작업

rootAVD파일 다운로드 진행
https://github.com/newbit1/rootAVD?tab=readme-ov-file

  1. rootAVD.sh파일이 있는 경로로 이동
  2. 현재 설치된 에뮬레이터 기기 확인
`./rootAVD.sh ListAllAVDs` 
  1. 루팅작업 진행
./rootAVD.sh system-images/android-34/google_apis_playstore/arm64-v8a/ramdisk.img

참고

  1. 에뮬레이터 재실행

4. frida-server다운로드 및 에뮬레이터로 밀어넣기

  1. 에뮬레이터 아키텍처 확인
adb shell getprop ro.product.cpu.abi
  1. 서버파일 다운로드
    아키텍처에 맞는 서버 파일 다운로드 (필자는 frida-server-16.1.8-android-arm64.xz로 받음)

  2. xz파일 압축 해제

brew install xz
xz -d frida-server-16.1.8-android-arm64.xz
  1. adb사용 및 에뮬레이터에 frida-server밀어넣기
adb push frida-server-16.1.8-android-arm64 /data/local/tmp
  1. frida서버 실행을 위한 파일 권한 설정
chmod 777 /data/local/tmp/frida-server-16.1.8-android-arm64

5. frida서버 실행 및 메모리 덤프 시작하기

  1. 루트권한 확보
13|emu64a:/ $ su    

에뮬레이터 루트권한 허용 팝업

  1. 루팅여부 확인
emu64a:/ # whoami
root
  1. frida server 실행(포트번호가 나오면 성공)
emu64a:/ # cd data/local/tmp
emu64a:/data/local/tmp # ./frida-server-16.1.8-android-arm64 &                                 
[1] 4858
  1. frida server 돌아가는지 확인(4858에서 실행 중)
emu64a:/data/local/tmp # ps
USER           PID  PPID        VSZ    RSS WCHAN            ADDR S NAME                       
shell          532   416   10840836   2044 __skb_wai+          0 S logcat
root          3744   328   10823172   2008 sigsuspend          0 S sh
root          4858  3744   10899864  22960 do_sys_po+          0 S frida-server-16.1.8-android-+
root          4860  4858   10849028   2052 __skb_wai+          0 S logcat
root          4895  3744   10878508   3332 0                   0 R ps
  1. 메모리 덤핑을 원하는 앱을 실행시킨다.

  1. (중요)새로운 터미널을 연 후, 연 후, 해당 앱의 프로세스 아이디를 알아낸다.
n22301003-sysong@N22301003-sysongui-MacBookPro ~ % frida-ps -U
  1. 메모리 덤핑을 원하는 앱의 패키지명을 검색한다.

  2. 검색한 앱의 pid를 스크립트안에 적어주고 메모리 덤프를 실행한다. 이때 dump는 메모리 덤프 결과값이 담길 경로 및 폴더이다.

n22301003-sysong@N22301003-sysongui-MacBookPro ~ % python3 /Users/n22301003-sysong/AOSProjects/Penta/fridump3-master/fridump3.py -u -o dump -r 4978 -s
  1. 아래와 같이 뜨면 성공이다.

strings.txt파일 내, 결과를 확인한다.
결과가 담길 파일

파일 내 결과값 예시

참고
https://social.wanted.co.kr/community/post/100372

profile
불가능보다 가능함에 몰입할 수 있는 개발자가 되기 위해 노력합니다.

0개의 댓글

관련 채용 정보