답변1
버퍼 오버플로의 악용 가능성은 주변 코드에 따라 크게 달라집니다. 예를 들어 스택 카나리아와 같은 다른 완화 기술이 있습니까? 그러나 DEP/W^X만 고려한다면 일반적으로 여전히 이를 악용할 수 있습니다.
이를 활용하는 방법은 주로 버퍼 오버플로 유형에 따라 다릅니다. NOP 슬라이드 사용에 대한 언급을 보면, 간단한스택 기반 버퍼 오버플로. 이 경우 다음과 같은 것을 사용할 수 있습니다.반환 지향 프로그래밍(ROP)또는점프 지향 프로그래밍(JOP). 이러한 기술은 실행 가능한 것으로 표시된 메모리 부분에 존재하는 코드를 재사용합니다. 따라서 실행 가능하고 쓰기 가능한 것으로 표시된 메모리가 필요하지 않습니다.
이러한 코드 재사용 공격을 완화하는 한 가지 기술은 다음과 같습니다.제어 흐름 무결성(CFI)조사하다. 이 완화는 코드가 알려진 "양호한" 경로를 통해서만 흐르도록 허용하려고 시도합니다. 최근 몇 년 동안 이는 다음과 같은 회사의 컴파일러 지원과 같은 더 많은 주류 지원을 받기 시작했습니다.클랭/llvm.