인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최정안님의 프로필 이미지
최정안

작성한 질문수

해커를 위한 iOS 앱 모의 해킹 전문 과정

Jailbreak Detection(3)

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

작성

·

282

0

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

답변 1

0

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

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

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

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

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

감사합니다.

최정안님의 프로필 이미지
최정안

작성한 질문수

질문하기