PIE 적용 시 가젯 사용

지금까지 PIE가 꺼져 있는 상태에서는 리턴 가젯을 활용해서 read와 같은 함수 주소를 추출할 수가 있었는데요
(GOT 값 직접 추출)
PIE 적용 시 read를 가젯을 통해 추출할 수 없는 건
코드 섹션 주소가 랜덤화되어 ROPGadget으로 가젯 주소를 구할 수 없기 때문인가요?
PIE가 적용된 실행 파일에서 ROPGadget으로 pop rdi 주소를 뽑아보니
0x0000000000000aa3 : pop rdi ; ret
과 같이 뭔가 그럴듯한 주소값으로는 안보이는 값인데요 관련이 있는지 궁금합니다.

#시스템_해킹 #기초 #보호_기법 #pie
작성자 정보
답변 1
avatar
wyv3rn
무플 방지 위원회장

거의 정답을 말씀하셨는데요.
보호 기법 중 ASLR이나 PIE의 경우 특정 영역의 주소를 랜덤화 합니다.
이 랜덤화라는게 모든 주소에 대해 섞어놓는 것이 아닌 BASE ADDRESS만 랜덤하게 할당합니다.

즉 찾으신 값은 OFFSET 값 이며 이를 통해 다른 주소를 찾을 수 있으며,
전제 조건이 "memory leak 가능 시" 입니다.

2022.08.05. 11:15
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기