2016 ASIS CTF alegria
St1tch
먼저 보호기법을 살펴보면 비교적 간단하게 되어있다. 함수의 프롤로그 부분 함수의 에필로그 부분 그런데 정적분석을 하다보면 함수마다 프롤로그 에필로그 부분에 같은 코드가 계속 반복되어 있는 것을 확인 할 수 있다. 연결리스트로 연결되어 있는듯한 모습을 하고 있는데, 대략 이런식으로 연결리스트가 구성된다고 생각하면 된다. 에필로그 부분에서는 프롤로그 부분에서 힙에 저장한 ret주소가 현재도 같은지 확인을 하고 같으면 이전 함수의 구조체 주소+8에 0xDEADCD80을 다시 저장을 한다. 즉, 이 문제는 보호기법에서 canary가 없는 대신, 힙에 간단한 연결리스트를 만들고 ret값을 저장하여 ret부분이 overwrite됬는지 매 함수마다 확인을 한다고 생각하면 된다. 이 부분은 인텔에서 발표한 CET보호기..