개발 공부/iOS

[IOS] iOS 메모리 덤프하는 방법

애해 2024. 10. 24. 18:05
728x90

메모리 덤프를 진행하기에 앞서 먼저 기기와 PC에 프로그램이 설치되어 있어야 한다.


* iOS기기 준비

1. 탈옥하기 

이전 글 참고(https://error-fighter.tistory.com/80

 

2. 프리다(frida) 설치하기

Cydia 앱 접속 ► 하단에 "소스" 탭 ► 우측 상단 "편집" 클릭 ► 왼쪽 상단 "추가" 클릭 ►

https://build.frida.re 입력 후 "소스 추가" 클릭 (frida 또는 frida for 32bits device)

 

 


* PC 준비

1. pip 설치하기 

$ sudo easy_install pip

 

2. python3 설치하기

$ brew install python3

 

3. 프리다3(frida3) 설치하기

$ pip3 install frida-tools

 

4.프리덤프3(fridump3) 설치하기

https://github.com/rootbsd/fridump3 에서 프로젝트를 클론받는다. 

 

5. fridump3.py파일 수정하기

앱이름 대신 pid 인식시키기 위해 attach(APP_NAME)를 attach(int(APP_NAME))으로 수정한다.

 

<수정 전>

# Start a new Session
session = None
try:
    if USB:
        session = frida.get_usb_device().attach(APP_NAME)
    elif NETWORK:
        session = frida.get_device_manager().add_remote_device(IP).attach(APP_NAME)
    else:
        session = frida.attach(APP_NAME)
except Exception as e:
    print(str(e))
    sys.exit()

 

<수정 후>

# Start a new Session
session = None
try:
    if USB:
        session = frida.get_usb_device().attach(int(APP_NAME)) # 수정한 코드
    elif NETWORK:
        session = frida.get_device_manager().add_remote_device(IP).attach(APP_NAME)
    else:
        session = frida.attach(APP_NAME)
except Exception as e:
    print(str(e))
    sys.exit()

 

 

5. fridump 실행하기 

- 탈옥폰 연결 : 탈옥폰에 usb로 연결한 후 테스트할 앱을 실행한다. 연결이 잘 되었는지 확인하기 위해서는 fridump3 디렉토리에 들어가서 아래의 명령어를 입력한다. 

$ frida-ls-devices

 

- PID 확인 : 덤프를 뜨려면 실행하는 앱의 PID가 필요하다. 아래의 명령어를 입력하여 PID를 확인한다. 

$ frida-ps -Uai

 

- 메모리 덤프 시작 : 아래의 명령어를 입력하여 PID에 대한 메모리 덤프를 시작한다. 명령어를 입력하면 dump 디렉터리가 생성된다. 

$ python3 fridump3.py -u -r [PID] -s


-o  디렉터리를 지정해주는 옵션
-u  usb를 이용하여 단말기와 연결했을 때
-H  wifi로 연결했을 때
-v  상세 과정표시
-r  read-only 데이터들도 덤프를 함 (훨씬 더 많은 데이터들을 덤프)
-s  텍스트 데이터들을 txt파일로 저장해주는 옵션

 

 

# 참고 

https://silver-g-0114.tistory.com/146

반응형