반환 지향형 프로그래밍
반환 지향 프로그래밍은 스택 스매싱의 진화된 버전이다. 일반적으로 공격들의 이러한 종류들은 상대방이 프로그램의 버그(주로 버퍼 오버런)를 이용함으로써 콜 스택을 조작할 때 발생한다. 버퍼 오버런 시에 사용자가 제공하는 데이터를 적절한 경계 검사 없이 메모리에 저장하는 함수는 적정한 양보다 더 많은 데이터를 받아들일 수 있다. 데이터가 스택에 겹쳐써지면 초과된 데이터는 함수의 변수에 할당된 공간을 넘치게 되고 반환 주소도 겹쳐쓰게 된다. 이 주소는 이후에 함수에 의해서 제어 흐름을 다시 호출자로 넘겨줄 때 사용된다. 만약 겹쳐써졌다면 제어 흐름은 새로운 반환 주소로 넘겨지게 된다.
변환행렬
선형 변환은 행렬로 표현할 수있는 유일한 변환은 아니다. n 차원 유클리드 공간 formula_1 에서 비선형인 일부 변환은 n + 1 차원 공간 formula_2 에서 선형 변환으로 나타낼 수 있다. 여기에는 변환과 같은 아핀 변환(affine transformation) 과 사영 변환(projective transformation 또는 Homography) 이 모두 포함된다. 이러한 이유로, 정사각 행렬 변환은 3D 컴퓨터 그래픽 에서 널리 사용된다. 이러한 n + 1 차원 변환 행렬은 아핀 변환 행렬 , 사영 변환 행렬 또는 보다 일반적으로 비선형 변환 행렬 등 그 응용에 따라 다르게 불린다. n 차원 행렬과 관련하여, n + 1 차원 행렬은 첨가 행렬로 설명 될 수 있다.