-
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은 안된다는 뜻이다.