이번에 트윅 개발을 위해 세팅을 진행할려고 한다.
본 환경은 맥북 m1 pro 환경에서 진행 되고 필자가 오늘 설치한 방법이니 참고하면 좋겠다.
기본적으로 트윅은 theos라는 툴을 이용하여 제작한다. 여러 라이브러리 및 기본 세팅을 도와주는 좋은 툴이다.
기본 세팅에 대한 정보는 hackcattml 님에게 얻었습니다.
https://hackcatml.tistory.com/107
THEOS 설치
frida로 후킹 시 알수 없는 이유로 크래시나는 경우가 있습니다. 그럴 경우, Theos 후킹 트윅 개발을 고려해볼수 있습니다. 저 같은 경우 탈옥탐지우회를 위해 fopen함수를 frida로 후킹하였는데, 알
hackcatml.tistory.com
맥에는 Homebrew가 세팅되어야 나중에 설정이 안꼬입니다.
# git과 ldid 설치
brew install git
brew install ldid
# user명 아래 파일에 theos 폴더와 안에 staging명으로 폴더 생성
mkdir ~/theos
mkdir ~/theos/staging
# theos와 staging을 환경 변수로 설정
echo "export THEOS=~/theos" >> ~/.zshrc
echo "export THEOS_STAGING_DIR=~/theos/staging" >> ~/.zshrc
# theos device 라이브러리를 다운로드
git clone --recursive https://github.com/theos/theos.git $THEOS
# ios sdk 중 원하는 버전을 다운로드 필자는 우선 다 다운로드함
# tmp이라는 거는 임시 폴더를 생성해야 불필요한 파일 생성을 줄이기 위해 임시 폴더 이용
curl -LO https://github.com/theos/sdks/archive/master.zip
TMP=$(mktemp -d)
unzip master.zip -d $TMP
mv $TMP/sdks-master/*.sdk $THEOS/sdks
rm -r master.zip $TMP
# 환경 변수에 추가
export workzone="$HOME/theos/bin"
# 환경 변수 적용을 위해서는 아래 명령어를 실행해야함
source ~/.zshrc
# 환경 변수 문제가 없다면 빨간 표시 없이 아무것도 뜨지 않을것이다.
위 세팅이 끝나면
theos/bin 내부에 있는 nic.pl을 실행시키면 된다
다만 ~경로가 아닌 theos 내부에서 프로젝트 생성이 아래 에러가 날것이다. 그렇기 때문에 ~경로에서 nic.pl을 실행하여
~디렉토리 바로 아래에 프로젝트를 생성한다.
[error] Cowardly refusing to make a project inside $THEOS
Project Name 은 소문자로 작성
특정 패키지 명으로 설정하고 싶으면 아래와 같이 설정 ex) com.hack.test
Package Name [com.yourcompany.tio]: com.hack.test
- "이름 <메일>" 형식으로 작성
Author/Maintainer Name [Tyrell]: <root@tyrell.kr>
SpringBoard에서 작동 시키고 싶다면 그냥 스킵을 위해 엔터
만약 특정 bundle id에 만 트윅이 작동하기 위해서는 세팅에 아래와 같이 설정
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.aaa.bbb
- 설치 후 적용을 위해 지정한 앱 강제 종료
- 강제 종료 원하지 않으면 "-"
- 무시 "enter"로 스킵
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: (enter)
이제 code ./Tweak.x 명령어로 트윅 코딩을 시작하면 된다.
# vscode로 tweak.x를 여는 명령어
code ./Tweak.x
# 아래 둘다 가능하고 작성 코드를 기반으로 deb 아이폰 설치 파일을 만들어 주는 명령어
make package
# 빌드 번호 없이 파일명으로 생성
make package FINALPACKAGE=1
만약 빌드가 다 완료되었을 경우
scp를 이용하여 deb 파일을 기기 내로 이동시킨다.
# 파일 보내기
# 폴더 전송시 -r 옵션을 주면 됨
scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]
scp testfile root@[IP]:/tmp/data/local/
# 파일 가져오기
cp [옵션] [원격지_id]@[원격지_ip]:[원본 위치] [받는 위치]
scp root@[IP]:/tmp/data/local/testfile /tmp
만든 트윅 파일 설치
dpkg -i [deb패키지파일]
설치 시
/Library/MobileSubstrate/DynamicLibraries 에 해당 트윅이 설치된 것을 확인가능
해당 트윅이 정상 작동 안할 시 SpringBoard 리스프링 할 것
killall SpringBoard
'APP 모의해킹 > iOS' 카테고리의 다른 글
RootHide Dopamine 설치 (Feat.탈옥 탐지 우회 RootHide) (0) | 2023.11.03 |
---|---|
palera1n ios 15~16 탈옥방법 with 맥북 (0) | 2023.06.18 |
iOS Setting (0) | 2023.04.03 |
iOS 탈옥 탐지 우회 예시 코드 [추가 업로드예정] (0) | 2023.03.30 |
iOS 정적 분석 (0) | 2023.03.30 |