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

설구화님의 프로필 이미지
설구화

작성한 질문수

리눅스 커널 해킹. A부터 Z까지

커널 ROP 관련 질문 (익스플로잇 코드 내 rep movs의 역할 관련)

해결된 질문

작성

·

294

0

 

 좋은  강의 잘 듣고 있습니다. 커널 ROP 관련해서 간단한 질문이 있습니다.

 

 mov rdi,rax; rep movs...; 에서 rep movs가 commit_creds 실행에 필요한 인자 구성을 위한 명령어인가요? 아니면 mov rdi,rax 가젯을 구하는 중에 함께 있어 어쩔 수 없이 rcx 조작을 통해 무력화해서 사용하는건가요?

 

mov rdi,rax만 있는 가젯을 구한다면 rep movs가 붙어 있는 가젯을 사용하지 않아도 되나요?

 

답변 1

1

김현우님의 프로필 이미지
김현우
지식공유자

안녕하세요.

질문 주신 대로 pop rcx; ret 와 rep ... 부분은, default 옵션으로 빌드된 커널에 executable한 "mov rdi, rax; ret" 가젯이 존재하지 않기 때문에(혹은 찾기 힘들기 때문에) 우회해서 사용된 가젯입니다.

만약 "mov rdi, rax; ret" 가젯을 찾으셨다면 해당 가젯을 사용하셔도 됩니다.

감사합니다.

설구화님의 프로필 이미지
설구화
질문자

빠른 답변 감사합니다!

설구화님의 프로필 이미지
설구화

작성한 질문수

질문하기