완료됨
20 코인
arch_prctl 활용 방법을 모르겠습니다
arch_prctl syscall을 통해 fs/gs 레지스터에 주소 값을 넣을 수 있고, 또 지정된 주소에 fs/gs 레지스터에 저장되어 있는 값을 저장할 수 있다는 점은 알겠는데, 이를 어떤 식으로 활용할 수 있을지 모르겠습니다.
arch_prctl로 할 수 있는 동작은 단순히 위의 두 동작이라 스택에 arch_prctl을 통해 값을 쓰고 그 값을 stdout에다 write하는 방식 외에는 arch_prctl의 활용 방법이 떠오르지 않습니다. 그런데 이는 그냥 다른 레지스터들을 갖고서도 할 수 있는 동작이라 arch_prctl syscall의 필요성을 더더욱 느끼질 못하겠습니다.
혹시 arch_prctl에 또 다른 기막힌 활용 방법이 있다면 알려주시면 감사하겠습니다.
#포너블
#pwnable
#shellcode
#opcode
작성자 정보
답변
5
해당 함수를 통해 aaw가 가능합니다.
상세한 사항은
https://man7.org/linux/man-pages/man2/arch_prctl.2.html
를 참고하시면 될 것 같습니다.
결국 첫번째 인자의 값으로 get과 set이 가능하기에
arch_prctl(set, val) 이후에
arch_prctl(get, addr) 을 통해 addr에 val을 쓸 수 있습니다.
근데 문제랑은 큰 상관이 없....