ret2usr exp.c 코드 이해..
276
작성한 질문수 3
ret2usr 익스플로잇 코드를 보면서 이해가 되지 않는 부분이 3가지가 있었습니다.
1. __attribute((regparm(3)) 이부분은 어떤 역할을 해주는 것인가요??
2. payload함수에서 mov %%rsp, %0 이렇게 되어있는데 %0값에 스택값이 저장되어 있나요..?
3. payload함수에서 : : "r" (&rv)는 어떻게 해석하나요?? 처음보는 어셈블리어 코드라서 많이 헷갈립니다ㅠ

답변 1
0
안녕하세요.
1. __attribute((regparm(3)) 는 말 그대로 gcc 컴파일 과정에서 해당 함수에 대한 attribute를 지정하는 것이며 대략 해석하자면, 해당 함수 포인터를 호출할 때 3개까지의 파라미터는 레지스터를 이용하여 전달하라는 뜻입니다.
2 ~ 3. 이 부분은 c언어의 inline assembly 문법이며, &rv를 input 변수(inline assembly 코드에 넘겨주는 파라미터)로 사용하여 rsp에 mov 하라는 뜻입니다. 즉, mov rsp, &rv 와 같습니다.
해당 내용들은 구글링을 통해 어렵지 않게 찾을 수 있으니, 참고하시기 바랍니다.
강의 들으며 정리한 글을 블로그에 공개로 올려도 될까요?
0
104
2
cred 구조체에 __randomize_layout이 적용된건가요?
0
91
1
ppt자료 문의
0
126
2
빌드환경 및 커널소스의 버전
0
154
1
Stack based BOF 강의에서 질문입니다.
0
199
2
kaslr 우회 기법에서 commit_creds, prepare_kernel_cred의 offset을 구하는 과정 질문
0
228
1
CTF 참가 시 전문 분야
0
330
1
SMAP 우회에서 궁금한게 하나 있습니다.
0
419
2
KADR 우회에서 init파일이 없는 경우는 어떻게 하나요?
0
474
1
KADR 우회에서 init파일이 없는 경우는 어떻게 하나요
0
318
1
여전히 해결책 없는 build_result
0
435
1
KASLR 강의에서 주어진 환경에서는 /proc/kallsyms 확인 못하는 것이 맞나요?
0
622
1
build_result가 안보입니다
0
299
1
kernel stack pivoting에서 gadget 관련 질문드립니다.
0
516
1
안녕하세요 수강중 궁금한 것이 있습니다.
0
583
2
pwndbg가 커널에 attach는 되는데 디스어셈코드나 레지스터 표시가 안됩니다.
0
593
1
가젯에 대해 이해가 잘 안됩니다.
0
616
1
Kernel KPTI 적용시 영향?
0
665
1
qemu 스크립트 실행시 Kernel panic이 발생합니다.
0
898
2
Kernel UAF
0
660
1
디버깅 방법
0
948
3
강의 자료 문의
0
383
1
boot.sh 실행시
0
369
1
Kernel Debugging
0
417
1





