• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

탈옥검증 우회 TBZ 0x0 우회 관련 질문입니다.

21.11.09 13:42 작성 조회수 573

0

강사님 안녕하세요. 해당 강의로 많은 도움을 얻고 있는 수강생입니다.
 
Jailbreak Detection(3) 강좌에서 w0값 0x0 을 0x1로 변경하여 if문을 변조하는 방법으로 검증로직을 우회하는 강좌를 잘 봤는데
 
혹시 tbz값이 아닌 다른 어셈블리언어로 if문을 구현하고 있다면 해당 로직은 어떻게 변조하면 좋을지 궁금합니다.
 
============예시============
 
그림과 같이 왼쪽이 아닌 오른쪽으로 가게끔 변조하고 싶은데 해당 로직은 어떻게 변조하면 좋을까요?
 
답변 부탁드립니다 ㅠㅠ
 
감사합니다.
 
*해당 로직은 0x0 ->0x1로 변조하는게 아니라 주소값을 변조해야될거같은데.. 답변부탁드립니다 ㅠ
 
*추가 질문입니다.
w0이 x0이라고 하셨는데 그럼 x0은 무엇인지 알려주세요 ㅠㅠ
 
여기는 x21이라고 되어 있네요 w21이면 x21을 변조하면되는데..
 
참고로 사용하는 툴은 IDA 입니다

답변 1

답변을 작성해보세요.

1

김태영님의 프로필

김태영

2021.11.15

안녕하세요. 보안프로젝트 김태영입니다.

 

첫 번째 질문에 대해 답변드리겠습니다.

B.NE 분기 명령어로 이동하는 것으로 판단됩니다. 해당 분기문은 바로 위에 있는 CMP 비교를 통해 분기하게 됩니다. 따라서 B.NE 분기 명령어를 다른 분기 명령어로 변조하시거나, 분기 명령어 값으로 주어진 loc_10007458C 주소를 변조하면 될 것 같습니다.

 

두 번째 질문에 대해 답변드리겠습니다.

AArch64 아키텍처는 32 정수 레지스터를 지원합니다. 따라서 x0~x30은 w0~w30과 맵핑되어 동일하다고 생각하시면 됩니다.

 - 64비트 값(x0~x30)

 - 32비트 값(w0~w30)

자세한 내용은 아래 링크 참고해주시면 도움이 되실거 같습니다.

https://docs.microsoft.com/ko-kr/cpp/build/arm64-windows-abi-conventions?view=msvc-170#integer-registers

 

감사합니다.

rndai님의 프로필

rndai

질문자

2021.11.16

답변 감사드립니다.

많은 도움 됐습니다.

rndai님의 프로필

rndai

질문자

2021.11.17

강사님 한가지 더 여쭤봐도 될까요??

강사님 덕분에 우회코드를 작성하여 검증로직을 우회했는데

해당 앱이 메인 화면으로 넘어가고 10초-15초 정도 후에 자동으로 앱이 off가 되는 현상이 발생하더라구요. 그 부분도 우회를 하고 싶은데 그 exit함수를 어떤 코드를 찾으면 좋을까요??

바쁘신데 답변 부탁드립니다 ㅠㅠ 감사합니다.

김태영님의 프로필

김태영

2021.11.18

안녕하세요. 보안프로젝트 김태영입니다.

 

10~15초 정도 후에 앱이 자동으로 종료되는 이유는 여러가지 있을 수가 있습니다.

또 다른 탈옥 탐지 코드가 있어서 종료가 된다거나, 우회하신 부분에서 충돌이 일어나서 강제 종료되는 경우가 있습니다.

따라서 해당 내용을 해결하기 위해선 코드 분석이 더 필요할 것으로 보입니다.

 

감사합니다.