카테고리 없음

movaps  %xmm0, 0x50(%rsp)

성난붱이 2025. 2. 24. 11:16

 

 

 

 

포너블 해킹을 하다보면 알 수 없는 이유로 stack segment fault가 뜰 때가 있다.

그럴 때 디버깅을 해봤는데, "movaps  %xmm0, 0x50(%rsp)" 이런 명령어에서 segment fault가 뜨는 걸 확인했다면,

0x50(%rsp) 주소가 0x10으로 정렬되어 있는 지 확인 해봐야한다.

movaps 명령어는 Move Aligned Packed Single-Precision 명령어이다. 정렬이 필수다.

그런데 xmm0 레지스터는 128bit 즉 0x10byte 레지스터이다.

즉 0x10으로 정렬된 0x12345610은 괜찮지만, 0x12345618은 안된다는 뜻이다.