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 |