반응형

기기에서 실행중인 프로세스 목록 출력 

frida-ps -U

-U : USB로 연결된 기기에 접속.

-D : Device ID로 기기에 접속.

-R : Remote Server(원격서버)에 접속

-H : Host의 Remote Server(원격서버)에 접속

 

 

pid후킹

frida -D 192.168.0.173:5555 -p 27402

frida -R 192.168.0.173:5555 -p 27402

sudo -H python fridump.py -U -s -r  apppos

 

 

Frida-server다운로드

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

 

 

 

cd Downloads

cd frida-server-arm

unxz frida-server-12.9.8-android-x86_64.xz

 

이름변경

frida-server

 

# frida server 복사

#adb push frida-server data/local/tmp

 

연결된 디바이스 목록 출력

adb devices

 

TCP로 접속 설정 (포트는 5555)

adb tcpip 5555

 

포트는 5555가 기본이고 adb tcpip 명령어를 통해 port를 바꿀수있다.

 

접속

adb connect 192.168.0.173

 

 

 

cd /Applications/NoxAppPlayer.app/Contents/MacOS/

ls

 

 

adb shell "getprop dhcp.eth0.ipaddress"

adb shell "/data/local/tmp/frida-server -l 10.0.2.15:21502 &"

frida-ps -H 127.0.0.1:21502

frida -H 127.0.0.1:21502 -f it.app.mobile -l "D:\frida-android-repinning_sa-1.js" --no-pause1

 

root@hammerhead:/data/local/tmp # ps | grep server

drm       187   1     20952  1856  ffffffff b6eea384 S /system/bin/drmserver

media     188   1     127024 10652 ffffffff b6f83384 S /system/bin/mediaserver

system    747   199   1898228 159416 ffffffff b6f832b8 S system_server

radio     1439  199   1491828 37264 ffffffff b6f832b8 S com.android.server.telecom

root      31228 31158 56184  31260 ffffffff b5eb6d9c S ./frida-server-12.9.8-android-arm

 

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

반응형
블로그 이미지

SKY STORY

,
반응형

xz 압축 해제

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install xz

 

$ xz -d easytag-2.4.3.tar.xz

// xz 해제

$ tar -xvf easytag-2.4.3.tar

// tar 해제

 

 

 

cd Downloads

cd frida-server-arm

unxz frida-server-11.0.13-android-arm.xz

 

연결된 디바이스 목록 출력

adb devices

 

TCP로 접속 설정 (포트는 5555)

adb tcpip 5555

 

포트는 5555가 기본이고 adb tcpip 명령어를 통해 port를 바꿀수있다.

 

접속

adb connect 192.168.0.173

 

 

shell실행

adb shell

 

 

다음과 같은 에러가 발생하면 

usb로도 연결되어있고 TCP/IP로도 연결되어있어 발생하는 에러이다.

둘중 하나만 선택해야한다. (이경우 TCP로 연결되어 있으므로 usb연결 케이블은 뽑도록 한다)

adb: error: failed to get feature set: more than one device/emulator

 

서버 파일 복사

adb push frida-server data/local/tmp

 

 

 

adb shell

su

chmod 777 /data/local/tmp/frida-server

/data/local/tmp/frida-server &

 

맨아래 frida-server가 정상 동작중임을 알수있다.

ps | grep server

 

exit로 종료하고 빠져나온다.

 

모든 연결 끊기

adb disconnect

 

usb모드로 재연결한다.

adb usb

 

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

반응형
블로그 이미지

SKY STORY

,
반응형

안드로이드 디바이스가 32bit인지 64bit인지 체크 

 

ADB (Android Debug Bridge)

Terminal에서 다음 커맨드 수행.

adb shell getprop ro.product.cpu.abi

adb shell getprop ro.product.cpu.abi2

다음 결과의 x86에서 테스트 단말은 32비트 환경임을 확인할 수 있다.

ro.product.cpu.abi : x86

ro.product.cpu.abi2 : armeabi-v7a

 

 

 

 

ps명령으로 현재 프로세스 목록 확인 

 

ps | grep "frida" 결과로 ./frida-server 가 떠있으면 성공

아래와 같이 frida-ps -U 명령어 실행  시 녹스 기기의 항목들 정보가 나오면 성공

 

 

현재 USB에 연결된 디바이스 목록 출력

fridump % frida-ls-devices

 

 

 

 

숨김파일 보기 단축키

Command + Shift + .

 

 

adb push frida-server data/local/tmp

adb shell

su

cd data/local/tmp

ls

chmod 755 frida-server

./frida-server &

 

 

 

다음과 같은 에러 발생시

shell@vu2sk:/data/local/tmp $ Unable to load SELinux policy from the kernel: Failed to open file ?/sys/fs/selinux/policy?: Permission denied

Unable to start: Error binding to address 127.0.0.1:27042: Address already in use

 

이렇게 처리

adb shell "su - setenforce 0"

 

 

ps | grep "frida"

 

u0_a157   9544  230   647576 79456 ffffffff 00000000 S com.harex.android.apppos

python fridump.py -U -s -r u0_a157

 

 

frida-ls-devices

sudo -H python fridump.py -U -s -r apppos

 

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

반응형
블로그 이미지

SKY STORY

,
반응형

adb 설치

https://developer.android.com/studio/releases/platform-tools

 

설치확인

 

적용여부 체크 

 

 

안드로이드 단말 32 or 64 비트 확인

getprop ro.product.cpu.abi

 

 

디바이스에 frida-server 설치

아래 주소에서 파일을 다운받아 압축을 해재한다.

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

 

 

 

frida-server라 변경하고 콘솔창에서 다음 명령으로 파일을 복사한다.

adb push frida-server data/local/tmp

 

 

설치가 잘 됬는지 확인

netcanis@netcanis-MacBook-Pro Downloads % adb shell

shell@vu2sk:/ $ su

root@vu2sk:/ # cd data/local/tmp

root@vu2sk:/data/local/tmp # ls

 

 

파일 권한 설정

chmod 755 frida-server

 

fridump 실행

./frida-server &

 

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

메모리 덤프 완료 후 결과물에서 strings.txt파일만 열어서

검출 여부를 판단해서는 안된다.

이 경우 스트링 버퍼를 사용한 경우 대부분 검출이 되지만 만약

바이너리 상태에서 문자열을 처리한 경우는 검출되지 않는다.

위 사진은 메모리 덤프 후 나온 결과물이다. 

바이너리 상태의 문자열을 찾아보려면 위에 data파일들을 모두 

찾아봐야한다. 

맥에서 사용할 만한 바이너리 에디터로 data파일을 열어보았다.

사용한 앱은  0xED 이다. 

다운로드 : www.macupdate.com/app/mac/22750/0xed

 

원한는 값을 Hex 또는 Text로 검색

덤프 완료후 100개가 넘는 바이너리 덤프파일들이 생성되므로 

폴더내 모든 파일들을 열어서 바이너리를 검색할 수 있는 툴(Ultraedit)을 사용해야한다.

다운로드 : www.ultraedit.com/downloads/

 'Find In Files...'를 선택한다.

검색할 폴더를 선택하고 검색하면 폴더내 모든 바이너리 덤프파일들을 검색하여 결과를 출력해 준다.

 

결과내용을 클릭하면 해당 파일에 대한 내용을 확인할 수 있다.

 

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/06/03 - [iOS/Objective-C] - NSString <-> CBUUID

2020/06/03 - [iOS/Swift] - 위치서비스(location service) 활성화 여부 체크

2020/06/02 - [개발노트] - Luhn 알고리즘

2020/06/01 - [iOS/Swift] - The Ultimate Guide to WKWebView

2020/06/01 - [iOS/Tips] - WKWebView에서 로컬 웹 파일 및 리소스 로드

2020/06/01 - [iOS/Tips] - WKWebView

2020/05/29 - [iOS/Swift] - 네비게이션바 투명 처리

2020/05/29 - [개발툴/Xcode] - NFC Xcode 설정

2020/05/29 - [개발노트] - NFC (Near Field Communication)

2020/05/29 - [개발노트] - NFC Tag 저장용량

2020/05/29 - [개발노트] - NDEF

2020/05/29 - [개발노트] - Mifare

2020/05/29 - [iOS/Swift] - 클로저(Closure)

2020/05/29 - [개발노트] - QR 코드 결제 타입

2020/05/29 - [iOS/Objective-C] - Objective-C Block Syntax

반응형
블로그 이미지

SKY STORY

,
반응형

[ Mac OS X ] 메모리 덤프

테스트할 디바이스를 연결한 뒤 Fridump를 통해 메모리 덤프를 해보록 하겠습니다.

 

USB에 연결된 디바이스내 프로세스 이름과 PID목록 출력

frida-ps -U

 

 

만약 테스트하려는 앱이름이 한글일 경우

fridump.py파일을 열어 73번 라인 코드를 이름대신 PID값으로 처리되도록 다음과 같이 수정한 다.

 

아래와 같이 변경하면 입력한 앱이름대신 PID로 입력했을경우 입력된 PID문자열을 int형 변환을 통해 PID로 인식되어 처리되도록 한다.

session = frida.get_usb_device().attach(int(APP_NAME))

 

프로세스 이름으로 메모리 덤프 실행 ( 중요 : 관리자 권한 실행을 위해 -H옵션 추가)

sudo -H python fridump.py -U -s -r [앱이름] 

 

 

Finder에서 fridump폴더 아래 dump폴더가 생성된 것을 확인할 수 있다.

 

 

덤프 데이터파일 맨 아래 strings.txt파일을 볼 수 있다. 이것은 메모리내 문자열로 처리되어 검출된 데이터들을 모아놓은 텍스트 파일이다. 

(대부분 heap메모리 상에서 문자열 처리한 부분은 이곳에서 검출된다.)

 

 

strings.txt을 얼어보면 다음과같이 메모리에서 검출된 문자열정보들을 확인할 수 있다.

 

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump, Tcpdump, OpenSSL Quick Guide

2020/05/19 - [OS/Mac OS X] - gdb 사용

2020/05/19 - [iOS/Jailbreak] - Frida 설치 및 사용법

2020/05/19 - [OS/Mac OS X] - gdb 설치

2020/05/19 - [OS/Mac OS X] - Mac에서 Node.js 설치

2020/05/19 - [iOS/Jailbreak] - Tcpdump 사용법

2020/05/19 - [개발노트] - UUID의 구성 요소

2020/05/18 - [iOS/etc] - APNs

2020/05/18 - [iOS/Swift] - Multiple font colors in a single UILabel

2020/05/18 - [개발툴/Xcode] - Storyboard References (스토리보드 분리)

2020/05/18 - [iOS/Jailbreak] - OpenSSL Mac 연동

2020/05/18 - [iOS/Objective-C] - NSLog 출력 크기 제한 풀기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

[ Mac OS X ] 환경 구축

Fridump를 사용한 메모리 덤프는 Mac OS X 환경에서 Fridump를 콘솔환경에서 실행하여 USB로 연결된 iOS디바이스에 실행중인 앱의 메모리를 덤프하게 됩니다.

이제 맥 환경구축을 해보도록 하겠습니다.

 

Homebrew 설치

https://brew.sh

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ master/install)"

 

python 설치 (2.7.x버전이 설치되어 있음) - 아래 명령 실행시 python3 설치됨.(선택사항)

brew install python 

python —version

 

wget 설치

brew install wget

 

usbmuxd 설치

brew install usbmuxd rm get-pip.py

 

Xcode Command Line Tool 설치

xcode-select --install

 

MacPorts 다운로드 및 인스톨

https://www.macports.org/install.php

 

콘솔창 종료후 재실행

 

MacPort 설치

sudo port -v selfupdate

 

Putty 설치

sudo port install putty

 

pip설치

wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py

 

Frida-tools 설치

sudo pip install frida-tools

 

'Cannot uninstall six' 에러 발생시 아래와 같이 처리한다.

sudo pip install frida-tools —ignore-installed six

 

버전문제로 인한 에러 처리

frida-tools 버전과 frida버전이 업데이트 되면서 서로 버전 지원 문제로

실행시 에러가 출력되며 실행되지 않는 경우가 있다.

탈옥 iPhone이 12.4버전일 경우 아래 버전으로 설치하기 바란다.

pip install frida==12.6.11

pip install frida-tools==2.0.2

 

실행중인 프로세스 이름과 PID 목록 출력

frida-ps

 

frada-ps 옵션을 확인

frida-ps -h

 

기기에서 실행중인 프로세스 목록 출력

frida-ps -U

-U : USB로 연결된 기기에 접속.

-D : Device ID로 기기에 접속.

-R : Remote Server(원격서버)에 접속

-H : Host의 Remote Server(원격서버)에 접속

 

USB에 연결된 디바이스 목록 출력

frida-ls-devices

 

기타 Frida관련 명령 및 사용법은 아래 사이트에서 참고하도록 한다.

https://www.frida.re/docs/ios/#with-jailbreak

 

 

fridump 설치

cd ~ 

git clone https://github.com/Nightbringer21/fridump

 

설치확인

cd fridump 

ls

 

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump, Tcpdump, OpenSSL Quick Guide

2020/05/19 - [OS/Mac OS X] - gdb 사용

2020/05/19 - [iOS/Jailbreak] - Frida 설치 및 사용법

2020/05/19 - [OS/Mac OS X] - gdb 설치

2020/05/19 - [OS/Mac OS X] - Mac에서 Node.js 설치

2020/05/19 - [iOS/Jailbreak] - Tcpdump 사용법

2020/05/19 - [개발노트] - UUID의 구성 요소

2020/05/18 - [iOS/etc] - APNs

2020/05/18 - [iOS/Swift] - Multiple font colors in a single UILabel

2020/05/18 - [개발툴/Xcode] - Storyboard References (스토리보드 분리)

2020/05/18 - [iOS/Jailbreak] - OpenSSL Mac 연동

2020/05/18 - [iOS/Objective-C] - NSLog 출력 크기 제한 풀기

 

 

 

반응형
블로그 이미지

SKY STORY

,
반응형

[ iOS ] 환경 구축

iOS앱 메모리 덤프 Fridump 사용 방법에 대해 알아보겠습니다.

처음 해보는 경우 약간 복잡해 보일 수 있지만 최대한 쉽게 설명하도록 하겠습니다.

 

준비사항 :

⁃ jailbreak된 iOS Device (iPhone, iPad, iPod touch) 

⁃ Mac OS or Windows OS에 fridump, python, brew, pip, frida, frida-tools 등.

 

[ iOS Device ]

Cydia에서 OpenSSL, OpenSSH 설치

Cydia / Srouces 텝에서 다음 주소 추가 https://build.frida.re/

 

 

추가된 소스를 텝한다.

 

 

디바이스 비트수에 맞게 Frida 설치 (64bit일 경우 상단 Frida설치)

 

 

같은 방법으로 OpenSSL도 설치

 

 

OpenSSH, iFile, MobileTerminal등도 설치

 

 

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (1/4) - iOS디바이스 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/4) - Mac OS X 환경 구축

2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/4) - 메모리 덤프

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (1/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 사용하기 (4/4)

2020/05/19 - [iOS/Jailbreak] - Fridump, Tcpdump, OpenSSL Quick Guide

2020/05/19 - [OS/Mac OS X] - gdb 사용

2020/05/19 - [iOS/Jailbreak] - Frida 설치 및 사용법

2020/05/19 - [OS/Mac OS X] - gdb 설치

2020/05/19 - [OS/Mac OS X] - Mac에서 Node.js 설치

2020/05/19 - [iOS/Jailbreak] - Tcpdump 사용법

2020/05/19 - [개발노트] - UUID의 구성 요소

2020/05/18 - [iOS/etc] - APNs

2020/05/18 - [iOS/Swift] - Multiple font colors in a single UILabel

2020/05/18 - [개발툴/Xcode] - Storyboard References (스토리보드 분리)

2020/05/18 - [iOS/Jailbreak] - OpenSSL Mac 연동

2020/05/18 - [iOS/Objective-C] - NSLog 출력 크기 제한 풀기

 

 

 

 

 

 

 

반응형

'개발 > iOS' 카테고리의 다른 글

Fridump 사용법 (3/4) - 메모리 덤프  (0) 2020.05.19
Fridump 사용법 (2/4) - Mac OS X 환경 구축  (0) 2020.05.19
Fridump, Tcpdump, OpenSSL Quick Guide  (0) 2020.05.19
Frida 설치 및 사용법  (0) 2020.05.19
Tcpdump 사용법  (0) 2020.05.19
블로그 이미지

SKY STORY

,