이번 방법은 추출하거나 복호화를 하지 않아도 가능하나 IDA처럼 세부적인 분석은 어려울 수 있음.

 

먼저 소스 추가(https://getdelta.co/) 후에 flex3 beta를 설치해 줌.

 

여기에서부터는 PC가 따로 필요 없음.

 

간단한 사용방법을 올려보겠음.

처음 Flex3 beta를 켜면 위의 화면을 볼 수 있음.

오른쪽 위의 +는 변조할 앱을 추가하는 버튼임.

위의 검색창에 찾을 앱을 검색해서 추가하면 됨.

처음 사진에서 추가된 앱을 지우려면 왼쪽으로 쓸어주면 delete가 생기고 버튼을 누르면 변조된 부분이 적용됨.

아래의 구름모양을 누르면 이런 창이 뜨는데 여기에서 다른 사용자에 의해 변조된 앱을 찾아서 적용할 수도 있음.

앱을 들어가면 이런 창이 뜨는데 앱을 변조하기 위해서는 Add Unit....을 들어가면 됨.

이런 창이 뜨면 Executable을 누르면 앱의 Class와 Method를 찾아 변조할 수 있음.

들어가면 위 사진처럼 뜨는데 여기에서 Class와 Method를 찾아 추가하면 앱 내부 목록에 추가된 Method가 추가됨.

이후 추가된 Method형식에 따라 변조하면 됨.

 

끝!

'IOS' 카테고리의 다른 글

application analisys (IDA)  (1) 2022.02.17
Application decrypt & extraction  (0) 2022.02.17
sftp 연결  (0) 2022.02.15
SSH 터미널 접근 방법  (1) 2022.02.15
cycript 설치 및 사용  (0) 2022.02.14

iOS 앱 분석 순서 : 앱 복호화 > 앱 추출 > 앱 분석 > 바이너리 서명 이식 > 바이너리 패치

 

전에 앱 복호화와 추출을 설명했으니 여기에서는 분석 단계부터 쓰겠음.

 

분석에 앞서 바이너리 파일이 뭔지 알 수 있는게 중요함.

(사진 속 앱은 아주 오~~~~~~~래전 앱이지만 바이너리는 같은 형태를 띠고 있음.)

모든 IPA파일은 추출 후에 반디집으로 압축을 풀 수 있음.

압축을 풀면 Payload > [앱 이름].app 폴더를 열어볼 수 있음.

폴더를 열어보면 위의 사진처럼 용량이 가장큰 파일 이거나 2, 3번째로 용량이 크더라도 확장자가 없는 파일이 있음.

그게 바이너리 파일임.

 

1. 앱 분석

저는 대부분 IDA로 함.

IDA에 바이너리 파일을 넣으면 처음뜨는 화면인데 아키텍처에 맞춰서 하면 되는데 ARMv7을 선택해서 진행하겠음.

이후 IDA를 활용해서 분석하면 됨.(사용법 : https://haerinn.tistory.com/56)

이 외에도 개인에 따라 활용하는 방식은 차이가 있음.

변조할 부분의 Hex값을 바꾸면 되는데 IDA에서는 F2를 누르고 변조해도 되고 

변조한 후 Edit > Patch Program > Patched bytes 여기에서 저장해도 되고

 

다른 방법으로는 HxD로 하는 방법도 있음.

위의 변조할 부분의 Hex값을 한줄 복사함.

Ctrl + F를 누르면 위와 같이 뜨는데 16진수 값으로 아까 복사한 값을 넣어줌.

 

그리고 검색해주면 IDA에서 변조하고 싶은 부분을 찾아서 변조 가능.

이후 Ctrl + s로 저장하면 됨.

 

2. 바이너리 서명 이식

바이너리 파일 변조 후 저장하면 바이너리 자체를 그냥 패치하는 경우도 있으나 서명을 이식해주지 않으면 대부분 그냥 꺼짐.

 

먼저 바이너리 파일을 iphone에 sftp 툴을 이용해서 넣어줌. (참고 : https://rokefoke.tistory.com/38?category=844597)

 

이후 SSH로 iphone에 접근.(참고 : https://rokefoke.tistory.com/37?category=844597)

 

ldid -e [원본 Binary File] > [파일 이름].xml

chmod +x [변조된 Binary File]

ldid -S[파일 이름].xml [변조된 Binary File]

 

위부터 순서대로 입력해주면 변조한 바이너리 파일에 서명이 이식됨.

가장 아래 명령어의 -S와 [파일 이름]은 붙여서 씀.

 

3. 바이너리 패치

우선 sftp를 설치하는 방법은 https://rokefoke.tistory.com/38?category=844597 <-------- 요기에 포스팅해둠.

 

여기에서는 WinSCP를 사용해보도록 하겠음.

 

/private/var/containers/Bundle/Application <-----이 경로로 가면 설치된 앱을 확인할 수 있음.

하.지.만.

이런 화면을 마주할 수 있는데 가장 편한 거는 수정한 날자로 정렬해서 최근에 설치한 앱을 찾으면 쉽게 찾을 수 있음.

이후는 IPA 파일 압축을 풀었을 때와 같은 구조임.

 

그리고 이전에 2. 에서 바이너리 서명을 이식한 변조된 바이너리 파일을 폴더에 넣어줌.

같은 이름의 파일이 있는데 그 파일은 원본이므로 변조된 바이너리 파일로 대체함.

 

이후 앱 실행하면 됨.

'IOS' 카테고리의 다른 글

application analisys (Flex3 beta)  (0) 2022.02.17
Application decrypt & extraction  (0) 2022.02.17
sftp 연결  (0) 2022.02.15
SSH 터미널 접근 방법  (1) 2022.02.15
cycript 설치 및 사용  (0) 2022.02.14

앱을 추출할 경우 암호화가 되어 있어서 분석하기에 어려움이 있음.

그래서 복호화해서 추출해야 함.

 

몇 가지 방법이 있는데 포스팅해볼까 함.

 

1. Clutch

사실 Clutch는 iOS 12 이전 버전에서 주로 사용하던 복호화 툴이었음.

 

하지만 직접 빌드할 경우 가능하다고 해서 퍼와봄.

https://github.com/KJCracks/Clutch

 

GitHub - KJCracks/Clutch: Fast iOS executable dumper

Fast iOS executable dumper. Contribute to KJCracks/Clutch development by creating an account on GitHub.

github.com

 

Clutch
0.79MB

※출처 : https://hackcatml.tistory.com/49#google_vignette

아래에 파일도 함께 올림.

 

저 파일을 device의 /usr/bin 아래로 넣어줌.

Clutch -i <------ 왼쪽에 명령어를 넣으면 설치된 앱 목록을 볼 수 있음.

이후 Clutch -d <앱 번호>를 넣으면 앱이 복호화됨.

 

/private/var/mobile/Documents <--------이 경로에 복호화돼서 생성됨.

 

이후 ipa파일을 추출해서 분석하면 됨.

 

2. CrackerXI+

소스 : https://iphonecake.com/app/

cydia에서 소스 추가 후에 CrackerXI+에서 복호화하면 됨.

위와 같이 복호화를 하면 되는데 /private/var/mobile/Documents 아래에 CrackerXI+ 폴더 내에 ipa가 생성됨.

 

3. frida-ios-dump

전꺼는 안 되는 경우도 있는데 이건 웬만해선 됨.

Linux나 MacOS에서 하는 게 편하지만 Windows에서 하려면 수정이 필요함.

http://egloos.zum.com/playgame/v/2241145

 

iOS 앱 덥프 (frida-ios-dump)

* frida-ios-dump.py - 다운로드: https://github.com/AloneMonkey/frida-ios-dump - Clutch 가 최신 iOS에서 동작하지 않으므로 대용으로 frida-ios-dump 를 사용 - 리눅스 용 스크립트로 윈도우에서 돌리기 위해 몇 가지 수

egloos.zum.com

위 링크를 들어가면 Windows에서 사용 가능하도록 수정하는 방법이 있음.

 

하지만 전 MacOS에서 해보겠음.

 

우선 cydia에서 frida와 openssh를 설치해줌.

frida 소스 : https://build.frida.re

 

소스 추가 후에 트윅을 설치해줌.

 

컴퓨터에 frida툴을 설치해줘야 함.

중요한 게 python이 깔려있어야 함.

python3.x 버전을 설치해줘야 하는데 이후 bash_profile설정이 필요함.

i)

sudo vim ~/.bash_profile

 

ii)

alias python='python3'

# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH

 

아래는 bash_profile에 추가해줘야 함.

 

이제 frida-ios-dump를 pc에 설치하는 순서임.

pip3 install frida-tools

여기부터 frida-ios-dump설치임.

cd ~

git clone https://github.com/AloneMonkey/frida-ios-dump.git

cd frida-ios-dump/

sudo pip3 install -r requirement.txt --upgrade

 

여기에서 dump.py를 수정해 줘야 함.

User = 'root'

Password = 'alpine'

Host = '아이폰 IP 주소'

Port = 22

KeyFileName = None

 

이후 decrypt 진행.

앱 리스트 출력 : python3 dump.py -l

이후 추출을 하면 됨.

앱 추출 : python3 dump.py "추출할 앱 이름"

큰따옴표 같이 넣어서 이름을 넣거나 Identifier의 이름을 큰따옴표 없이 넣어도 됨.

-o <-----옵션으로 추출할 때 이름을 바꿀 수 있음.

이렇게 하면 frida-ios-dump 폴더 내에 앱이 추출됨

 

끝!

'IOS' 카테고리의 다른 글

application analisys (Flex3 beta)  (0) 2022.02.17
application analisys (IDA)  (1) 2022.02.17
sftp 연결  (0) 2022.02.15
SSH 터미널 접근 방법  (1) 2022.02.15
cycript 설치 및 사용  (0) 2022.02.14

탈옥된 아이폰을 사용했으며 usb 터널링이 되어있는 상태임. (SSH 터미널 접근 방법 참고)

 

1. 3utools

iDevice > Files

위의 경로로 들어가면 이용 가능함.

 

2. iFunbox

장치 > 빠른 도구 상자 > 원시 파일 시스템

위의 경로를 들어가면 이용 가능함.

 

3. WinSCP

WinSCP는 실행하면 처음 이 창부터 뜸.

항목에 맞게 127.0.0.1/root/alpine을 넣어줌.

그럼 로그인되면서 이런 창을 확인할 수 있음.

 

4. FileZilla

위 항목에 맞게 127.0.0.1/root/alpine을 넣어줌.

빠른 연결은 누르면 위와 같이 연결되는 것을 확인할 수 있음.

 

--------------------------------------------------------------------------------------------------------------------------------

 

바이너리 패치 시에 유용하게 쓰임.

 

끝!

'IOS' 카테고리의 다른 글

application analisys (IDA)  (1) 2022.02.17
Application decrypt & extraction  (0) 2022.02.17
SSH 터미널 접근 방법  (1) 2022.02.15
cycript 설치 및 사용  (0) 2022.02.14
jailbreak 후 도움되는 트윅  (0) 2022.02.14

+ Recent posts