스택의 반환 주소를 덮는 공격은 스택 카나리, NX, ASLR의 도입으로 인해 점점 어려워졌다. 공격 기법은 셸코드 실행에서 라이브러리 실행으로, 그리고 다수의 리턴 가젯을 연결해서 사용하는 Return Oriented Progamming(ROP)로 발전하였습니다. 사실 바이너리의 PLT에 system 함수를 많은 개발자가 공격 벡터로 사용할 수 있음을 알고 있으며, 여러 개발 도구들에서도 해당 함수의 사용을 지양하도록 경고하고 있습니다. 그래서 실제 바이너리에서 system 함수가 PLT에 포함될 가능성은 매우 적습니다. 현실적으로, ASLR이 걸린 환경에서 system 함수를 사용하려면 프로세스에서 libc가 매핑된 주소를 찾고, 그 주소로부터 system 함수의 오프셋을 이용하여 함수의 주소를 계산..