글
6월, 2018의 게시물 표시
[WinDbg] x64 security_cookie 사용(버퍼오버런을 진입점과 종료점에서 검사해서 틀리면 예외 발생)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
x64에서는 콜스택을 볼때 #1, #2 매개변수는 rcx, rdx로 입력이 되기 때문에 기존의 콜스택처럼 매개변수 값을 확인할 수 없다. 다음은 FileTimeToSystemTime 호출될때의 과정을 기술한 거다. rsp = 008f8ef8 rcx = 008f8f48 rdx = 008f8f60 rsp -> 00000000`008f8ef8 00007ff6`4d7e1fc2 01d3f629`e281c09d 00000000`008f8f08 00000000`00000000 00000000`00910072 위 RSP값은 rsp+18h = rbx를 넣은 상태이다. push rbp ; rsp = 008f8ef0 { 00000000`008f8ef0 rbp 00007ff6`4d7e1fc2 01d3f629`e281c09d 00000000`008f8f08 00000000`00000000 00000000`00910072 } mov rbp, rsp ; rbp는 이 함수내에서 로컬변수를 저장하기 위한 기준점이 된다. 보통 rbp-8 = security_cookie sub rsp, 40h ; rsp = 008f8eb0 { 00000000`008f8eb0 0 0 0 0 0 0 0 security_cookie 00000000`008f8ef0 rbp 00007ff6`4d7e1fc2 } KERNELBASE!FileTimeToSystemTime: 00007ff9`3e283ba0 48895c2418 mov qword ptr [rsp+18h],rbx 00007ff9`3e283ba5 55...