반환 지향형 프로그래밍
반환 지향 프로그래밍은 스택 스매싱의 진화된 버전이다. 일반적으로 공격들의 이러한 종류들은 상대방이 프로그램의 버그(주로 버퍼 오버런)를 이용함으로써 콜 스택을 조작할 때 발생한다. 버퍼 오버런 시에 사용자가 제공하는 데이터를 적절한 경계 검사 없이 메모리에 저장하는 함수는 적정한 양보다 더 많은 데이터를 받아들일 수 있다. 데이터가 스택에 겹쳐써지면 초과된 데이터는 함수의 변수에 할당된 공간을 넘치게 되고 반환 주소도 겹쳐쓰게 된다. 이 주소는 이후에 함수에 의해서 제어 흐름을 다시 호출자로 넘겨줄 때 사용된다. 만약 겹쳐써졌다면 제어 흐름은 새로운 반환 주소로 넘겨지게 된다.
마샬링 (컴퓨터 과학)
마샬링은 프로세스 간 또는 스레드 간 데이터 전송에 필요한 원격 프로시저 호출(remote procedure call, RPC) 매커니즘의 구현에 사용된다. 마이크로소프트 COM(컴포넌트 오브젝트 모델, Component Object Model)에서 인터페이스 포인터(interface pointer)는 COM 아파트먼트 바운더리(COM apartment boundaries)를 지날 때 (즉, COM 라이브러리 인스턴스들의 경계를 지날 때) 마샬링 되어야만 한다. 닷넷 프레임워크(.NET)에서, P/Invoke 프로세스 하의 관리되지 않은 타입과 CLR 타입 간의 변환은 마샬링을 요구하는 또 하나의 예이다.