본문으로 바로가기

가. 애플리케이션 패칭이란?

- 애플리케이션 패칭(Application Patching)은 애플리케이션의 바이너리 파일이 영구적으로 변경되는 것을 말하며 애플리케이션 위·변조라고도 부른다.

- 바이너리 파일에는 앱 실행 및 동작에 필요한 모든 데이터들이 들어가 있으므로 바이너리 파일을 수정하여 로그인 메소드, 탈옥 탐지 메소드 등을 우회할 수 있다.

* 바이너리(Binary) 파일이란 실행 가능한 형식의 데이터 파일을 말하며, 쉽게 윈도우즈의 exe 파일이라 생각하면 된다.

 

나. 대응방안

- 애플리케이션 바이너리 파일의 해시 값을 검증(코드 무결성 검증)하여 앱이 위·변조되었는지 체크한다.

출처 : https://www.kisa.or.kr/2060204/form?postSeq=3&lang_type=KO#fnPostAttachDownload

 

다. DVIA-v2 앱을 통한 실습

1. 분석 대상 앱 실행

- 어플리케이션 패칭 실습을 위해 DVIA-v2 앱을 실행한다.

 

※ DVIA-v2 어플이 설치되어있지 않은 사람은 아래의 글을 참고하여 앱을 설치하길 바란다.

2022.07.01 - [Mobile App 취약점 진단/iOS App 진단] - [iOS App 진단] 04강 - 진단 대상 설치

 

[iOS App 진단] 04강 - 진단 대상 설치

iOS 앱 진단을 위해 설치 파일을 요청하면, 대개 아래 3가지 방법 중에 하나의 방법으로 전달해준다. 1. 앱 스토어를 통해 설치 이미 앱 개발이 완료되어 앱스토어에 등록되어 있을 경우, 앱스토어

hagsig.tistory.com

 

- 메인메뉴 좌측 상단 메뉴 클릭 Application Patching 클릭 START CHALLENGE 클릭 Show Alert 클릭

- "I love Google"라는 문구가 적힌 메시지가 출력된다.

- 본글에서는 위 문구를 변조할 것이다.

 

2. 바이너리 파일 추출

- 바이너리 파일을 변조하기 위해서는 앱내부에 존재하는 바이너리 파일을 추출해내야 한다.

- 3uTools Files에서 Applications(User) 클릭 또는 탐색창에 /var/Containers/Bundle/Application 입력한다.

- 분석 대상 앱 이름과 동일한 폴더를 더블클릭한다.

 

- Size 클릭하여 파일을 크기순으로 정렬한다.

- 폴더를 제외하고 크기가 제일 큰 파일이 바이너리 파일이다.

 

-  바이너리 파일을 우클릭한 뒤 Export 버튼을 눌러 PC로 추출한다.

 

3. 바이너리 파일 변조

- 바이너리 파일의 문구를 변조하기 위해 아래의 사이트에서 HxD를 다운로드한다.

* HxD : 무료 헥사 코드 편집기(Hexa code editor)로, 파일의 데이터를 헥사(16진수)로 읽어드리고 편집할 수 있는 프로그램.

https://mh-nexus.de/en/hxd/

 

HxD - Freeware Hex Editor and Disk Editor | mh-nexus

HxD - Freeware Hex Editor and Disk Editor HxD is a carefully designed and fast hex editor which, additionally to raw disk editing and modifying of main memory (RAM), handles files of any size. The easy to use interface offers features such as searching and

mh-nexus.de

 

- 위에서 추출한 바이너리 파일을 HxD로 읽어드린다.

 

- Show Alert 클릭 시 출력되었던 메시지의 문구를 '검색 대상'에 입력  검색 방향을 '전체'로 선택   '모두 검색' 클릭

 

- 검색결과 중에서 분석하고자 하는 행(아이템)을 더블클릭 → 메인창의 커서가 더블클릭한 문구가 위치한 곳으로 이동되어 있다.

 

- 기존 문구를 변조하고 싶은 문구로 수정 → 파일 클릭 → 저장 클릭

※ 문자수정 시 띄어쓰기(스페이스 키)나 삭제(백스페이스 키)를 눌러 문자열의 주소가 변경되면 바이너리 파일이 깨지기 때문에 해당키를 누르지 않고 문자열을 수정하여야 한다.

 

- 3uTools를 통해 앱의 바이너리 파일을 위에서 변조한 파일로 교체(덮어쓰기)

 

-앱을 재실행 한 뒤 다시 시도해 보면 " "I love Google"대신 변조한 문구가 출력되는 것을 볼 수 있다.