문제풀이 2

[리버싱] 3차시 과제2

main 0: rpb를 push한다. main 1: rbp에 rsp를 저장한다. main 4 : rsp의 값과 0x20를 뺀 후에 그 값을 rsp에 저장한다. main 8: mov rax에 fs:0x28부터 QWORD만큼까지에 해당하는 값을 저장한다. 스택 카나리 기법이다. main : rbp-0x8에서부터 QWORD만큼까지에 rax값을 저장한다. main : eax와 eax를 xor연산한다. 따라서 0이다. main : edi에 0xfeedc0de값을 저장한다. (0xfeedc0de로 최기화) main : 0x400580에 있는 함수를 호출한다. main : rbp-0x10에서 DWORD까지에 0x0 저장한다. main : 0x4007ca에 위치한 함수로 점프한다. main : edi에 0x4008d4..

[리버싱] 3차시

main +0: 스택에 rbp를 스택에 넣는다. rbp는 함수의 경계를 구분할 때, 함수와 함수의 맨 아래 경계를 가리킨다. main +1: 옮긴 rbp에 rsp를 대입한다. rsp도 함수의 경계를 구분할 때 사용되는데, rbp가 맨 아래 경계를 가리킨다면, rsp는 맨 위 경계를 가리킨다. main +4: rsp의 값에서 0x10만큼 뺀 값을 rsp에 저장한다. 0x10는 10진수로 10이다. main +8: 0x28은 10진수로 40이다. main +17: rbp에서 0x8(10진수로: 8)만큼 뺀 주소에 rax의 값을 QWORD(8byte)만큼 복사한다는 뜻이다. ptr은 포인터의 약자이다. main: 21: eax와 eax를 xor한 값을 eax에 저장한다. 0이 저장된다. eax는 산술연산과 함..