앱 진단할 때에 가장 먼저 기본적으로 해야할 것이 탈옥 탐지 우회이다.
우회하지 않으면 아예 앱에 접근할 수가 없기 때문이다
앱을 복호화해서 추출했다면 이제 분석을 해서 우회를 해야한다.
2022.04.21 - [모바일/Ios] - [ios] Frida를 통한 앱 복호화 및 추출
추출된 ipa 파일의 압축을 풀어준다
폴더 안으로 들어가게되면 앱이름과 똑같은 이름으로 확장자가 없는 바이너리 파일이 존재한다.
리버싱 도구인 IDA로 열어준다
위에 노란 버튼이 그림처럼 초록 버튼으로 바뀌었다면 바이너리 파일이 모두 읽어와졌다는 뜻이고
그 때부터 분석을 시작하면 된다.
탈옥 탐지하는 부분을 찾았다면 해당 분기문들이 어디방향으로 가서 어떤 코드가 실행되는지 파악하면된다
아이폰 탈옥 탐지 로직은
아이폰 탈옥 시 생기는 파일들이 존재하는지 체크하는 로직 (FileExist)
원래라면 접근 불가한 경로인데 접근이 가능한지 여부 등을 체크해서 탐지하는게 일반적이다. (can Open)
이 앱을 예시로 간단하게 적자면 먼저 파일이 존재하는지 체크하는 분기문이 시작된다.
대표적으로 Cydia 앱 , bash, ssh 등을 확인하는 것을 볼 수 있다.
파일들 중 하나라도 발견이 된다면 그 다음 실행되는 로직이 한 곳으로 향하며 그 로직을 따라 앱이 종료되게 된다.
검증을하는 파일들의 이름을 바꿔볼 수도 있고 리턴값을 변조해서 우회하는 방법도 있고
다양한 방법들이 있지만 분기문의 바이너리 변조를 통한 우회방법이 기초적이다.
위 그림들의 검증 로직을 다 건너뛴다는 개념으로 첫 시작 분기문을 변조하는 것이다.
이 분기문을 이해하고 변조하기 위해서는 어셈블리어를 아주 조금 알면 편하다.
변조하고싶은 부분에 마우스를 포커싱한 후 Hex View에서 확인해서 Hex값을 Armconverter를 이용하여 어셈블리 변조를 수월하게 할 수 있다.
Hex값을 넣어주면 어셈블리어로 변환하여 주는데
CBZ와 리턴이 상반되는 값인 CBNZ로 바꿔준다면 리턴값이 기존과 반대로 나오게 되어
분기문 변조가 이루어진다.
이제 변조할 값도 찾았으니 변조를 해야하는데
IDA 자체에서도 변조를 할 수도 있지만 다른 도구를 사용해서 변조하는 습관을 들이면 여러모로 편하다.
HxD를 통해서 해당 부분을 찾아 CBNZ의 값인 B5로 변조 후 저장한다.
바이너리 파일을 단말기 안 앱 경로에 덮어쓰기를 한다.
그 후 앱을 실행하면 탈옥탐지가 우회된다.
'모바일 > Ios' 카테고리의 다른 글
[ios] 프리다[Frida] Fridump를 이용한 메모리 덤프 (2) | 2022.04.28 |
---|---|
[ios] 복호화 ipa 서명 후 설치하는 확실한 방법 (Feat.Sideloadly) (6) | 2022.04.22 |
[ios] Frida를 통한 앱 복호화 및 추출 (2) | 2022.04.21 |
[ios] 탈옥 후 모의해킹을 위한 필수 및 추천 트윅(Tweak) (4) | 2022.03.23 |