'2017/04'에 해당되는 글 2건

GCC Stack Boundary

공부 2017. 4. 27. 16:30
반응형

Ubuntu 16.04에서 gcc로 컴파일 하게 되면 함수의 프롤로그와 에필로그에 ecx를 통한 esp 변조를 하는 것을 볼 수 있는데


이는 SSE계열의 함수들을 위해서 미리 예약해두는 공간이라고 한다.


sse계열의 함수는 고속 복사를 위해서 128비트 단위로 복사를 진행해서 기존의 push ebp, mov ebp, esp와 같은 형태로는 에러가 날 수 있다.


만약 sse계열 함수를 사용하지 않는다면 gcc 에 옵션을 줘서 해결할 수 있는데 옵션은 아래와 같다.


gcc -o hou hou.c -mpreferred-stack-boundary=(2 ~ 12)


여기서 boundary를 계산할 떄는 2^(num)으로 계산되고 스택에서는 최소 4바이트를 push해야하기에 boundary값의 min은 2가 들어간다.


'공부' 카테고리의 다른 글

[how2heap] poison_null_byte  (0) 2017.05.09
64비트 Calling Convention  (0) 2017.05.09
정보보안기사 정리  (0) 2017.04.20
[C++] 프로그램 관리자 권한 요구  (0) 2017.01.04
[how2heap] house_of_spirit  (0) 2016.12.28
블로그 이미지

KuroNeko_

KuroNeko

,

정보보안기사 정리

공부 2017. 4. 20. 00:56
반응형

http://kit2013.tistory.com/209

'공부' 카테고리의 다른 글

64비트 Calling Convention  (0) 2017.05.09
GCC Stack Boundary  (0) 2017.04.27
[C++] 프로그램 관리자 권한 요구  (0) 2017.01.04
[how2heap] house_of_spirit  (0) 2016.12.28
[how2heap] unsafe unlink  (0) 2016.12.26
블로그 이미지

KuroNeko_

KuroNeko

,