• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

Jailbreak Detection (3) 메모리 주소를 왜 더하는지 모르겠어요 ..

22.10.18 22:53 작성 조회수 187

0

DVIA-V2 가 로드된 메모리의 주소에 탈옥 체크 분기점이 시작되는 주소를 더하는 이유가 ASLR 로 이루어져 있어서 메모리 주소가 바뀌기 때문에 DVIA 주소를 불러오고 그 다음 탈옥 분기점 주소를 더해 후킹할 타겟 주소를 변수에 담는것인가요 ?? 이러면 궁금한게 왜 탈옥 분기점의 메모리주소는 매번 바뀌지가 않는걸까요 ??

답변 1

답변을 작성해보세요.

0

김태영님의 프로필

김태영

2022.10.19

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

ASLR은 운영체제 메모리에 로드되는 실행 파일 위치를 무작위로 생성하여 여러 공격으로부터 보호하는 기술입니다. 점검에 사용되는 DVIA-v2 앱도 ASLR 기술이 적용되여 실행할 때마다 메모리가 랜덤하게 변경되어 변경된 위치로부터 실행됩니다.

DVIA-v2 앱 "내부 로직"에서 사용되는 탈옥 분기점 주소는 랜덤하게 할당되지 않고 Ghidra에서 분석한 앱 흐름대로 이루어지게 됩니다. ASLR이 적용되기 전인 상태(실행되는 메모리 주소가 위치가 0인 상태)로 부터 계산된 주소를 Ghidra에서 볼 수 있습니다. 따라서 탈옥 분기점 주소는 상대 주소(Relative address) 관점에서 보았을 때 항상 동일한 주소를 가리킵니다.

따라서 최종 절대 주소(Absolute address)는 ASLR이 적용되어 올라오는 주소에 DVIA-v2에서 점검할 상대 주소(Relative address)를 더하면 계산할 수 있습니다.

(분석하고 싶은 위치 = ASLR 주소 + DVIA-v2 분석 위치 상대 주소)

감사합니다.