본문 바로가기
[ROP emporium]

[ROP emporium] callme

by 토끼여우 2026. 6. 3.
728x90
SMALL

x64 바이너리 파일 풀이입니다.

 

연결절차에 마지막줄에 .dat파일은 무시하라고 되어있습니다

 

main과 pwnme 함수는 앞 문제들과 동일합니다

패딩을 0x28로 채우고 뒤에서 반환값을 덮어쓰면 됩니다

 

문제 설명에서 callme_one, callme_two, callme_three를 호출해야하는데

인자로 

0xdeadbeef     0xcafebabe    0xdoodoof

값을 넘겨줘야한다고 되어있습니다

 

문제 설명에 64비트에서는 아래처럼 2배로 값을 써야한다고 되어있습니다

0xdeadbeefdeadbeef 0xcafebabecafebabe  0xdoodoofdoodoof

 

문제 설명에서 예시를 보여줬는데

callme_one(0xdeadbeefdeadbeef, 0xcafebabecafebabe, 0xd00df00dd00df00d)

이런식으로 함수를 호출해주어야합니다

 

 

strings로 바이너리 내부의 필요한 함수 3개가 있는거를 알수있습니다

이번 문제에서는 인자를 3개를 넘겨주어야하기 때문에

System V 호출규약에 따라

rdi가젯뿐만이 아니라 rsi rdx 가젯도 필요합니다

 

 

0x40093c 가젯이 바이너리 내부에 존재합니다 이것을 사용하면 됩니다

ret으로 스택을 정렬하고 레지스터 가젯 + 인자 3개 + 함수호출을

3번 다 반복하면 됩니다

 

 

728x90
LIST

'[ROP emporium]' 카테고리의 다른 글

[ROP emporium] split  (0) 2026.06.02
[ROP emporium] ret2win  (0) 2026.06.01