3-2/정보보호론 2

Buffer Overflow - 기본적인 어셈블리어(mov, sub, and)(2)

예시를 통해 기본적인 어셈블리어를 설명하겠습니다. 1) mov mov eax,0x31 위 코드와 같은 상황의 mov는 0x31을 eax라는 변수에 넣으라는 의미입니다. 즉 0x31은 source이고, eax는 destination을 의미합니다! 우측 값이 좌측 변수에 저장되는것입니다. 이 명령어 후에는 eax라는 변수에 0x31이 저장되어있습니다. [0x는 16진수라는 것을 알려줍니다] [eax는 레지스터로 값은 저장하는 변수입니다] 2) sub sub eax,0x11 위 코드와 같은 상황의 sub는 0x11을 eax라는 변수의 값에서 뺀 값을 다시 eax에 넣으라는 의미입니다. 즉 앞선 mov를 통해서 eax에는 0x31이 들어있는 상황이라고 가정하면 eax - 0x11 = 0x31 - 0x11 = 0..

3-2/정보보호론 2021.10.18

Buffer Overflow - 기본적인 어셈블리어(push, pop)(1)

*/ 학교 수업을 바탕으로 배운 내용을 정리합니다. 오류가 있을수 있습니다. /* 정보보호 - Buffer Overflow에 대해서 배운다. 이것을 이해하기위해서는 어셈블리어의 이해가 있어야한다. 이것의 실행파일을 만들고 실행하면 당연하게도 x is 30이 출력된다. vi 명령어를 이용해 ex1의 txt를 볼수있다. txt에는 main의 기계어, 명령어를 볼수있다. 컴파일러가 ex1.c의 코드를 기계어로 바꾼다. (아래 사진에서 55, 89, e5,...등) 그리고 그 기계어들이 해당하는 어셈블리 명령어가 존재한다. -> 예를 들면 55는 push ebp에 해당하고 89 e5는 mov ebp, esp에 해당한다. 여기서 이해해야하는 것은 각 명령어가 실행될때, 시스템..

3-2/정보보호론 2021.09.07