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

+ Recent posts