how to change control flow shortcut

이글은 control flow를 바꿀 수 있는 방법을 정리해놓은 글이다.

RA overwrite

가장 대표적인 방법, 스택에 존재하는 RA 값을 overwrite하는 방법이다.

Got overwrite

역시 대표적인 방법, got 영역에 존재하는 값을 덮어쓰는 방식

FSOP

많이 사용되는 방법, FSOP를 통해 vtable overwrite를 하는 것이 주 flow 였으나, vtable 검증이 생기면서

house of apple이나 다른 방식이 채택이 된다.

Glibc Got overwrite

고급 기술, glibc에서도 IFUNC 같은 함수에 got가 존재한다는 것을 인지하고 이 got를 overwrite하는 기술

exit() - handler overwrite

추가하삼