반환 지향형 프로그래밍
반환 지향 프로그래밍은 스택 스매싱의 진화된 버전이다. 일반적으로 공격들의 이러한 종류들은 상대방이 프로그램의 버그(주로 버퍼 오버런)를 이용함으로써 콜 스택을 조작할 때 발생한다. 버퍼 오버런 시에 사용자가 제공하는 데이터를 적절한 경계 검사 없이 메모리에 저장하는 함수는 적정한 양보다 더 많은 데이터를 받아들일 수 있다. 데이터가 스택에 겹쳐써지면 초과된 데이터는 함수의 변수에 할당된 공간을 넘치게 되고 반환 주소도 겹쳐쓰게 된다. 이 주소는 이후에 함수에 의해서 제어 흐름을 다시 호출자로 넘겨줄 때 사용된다. 만약 겹쳐써졌다면 제어 흐름은 새로운 반환 주소로 넘겨지게 된다.
데이터 스트림
데이터 스트림(data stream)은 연결지향통신에서, 전송된 정보를 수집하거나 정보를 전송할 때 사용되는 디지털 방식으로 암호화 된 일관된 신호의 흐름을 말한다. 전자 및 컴퓨터 구조 분야에서, 데이터의 흐름은 재구성 가능한 데이터경로 배열 다른 비슷한 파이프 네트워크나 다른 처리 블럭, 처리 유닛들의 포트로 언제, 어떤 정보들이 들어오거나 밖으로 나가는 지를 관할한다. 폰 노이만 구조의 컴퓨터는 명령 스트림기반인 반면, 안티머신은 데이터스트림 기반이기 때문에 종종 데이터 스트림을 명령 스트림으로 보기 쉽다.