시험대비로 공부하기에 20, 21, 22, 29, 33, 37, 38, 41번만 진행합니다. 밝은 모드가 좀 더 잘 보입니다. 해석은 직접 했기 때문에 잘못 돼있거나 이상한 부분이 있을 수 있습니다. 20번 We tend to / go long periods of time / without reaching out to / the people (that) we know. 우리는 우리가 아는 사람들에게 오랜 기간 연락 없이 지내는 경향이 있습니다. tend to : ~하는 경향이 있다. periods : 기간 reaching out to : 연락하다. Then, we suddenly / take notice of the distance / ( that has formed ) / and we scramble ..
시험대비로 공부하기에 35번부터 41번까지 진행합니다. 밝은 모드가 좀 더 잘 보입니다. 해석은 직접했기때문에 잘못 되있거나 이상한 부분이 있을 수 있습니다. 35번 The Zeigarnik effect / is commonly referred to / as the tendency (of the subconscious mind) / to remind you of a task / [that incomplete until that task is complete] 자이가르닉 효과는 일반적으론 너에게 불완전한 일을 완료할 때까지 일을 상기시켜주는 잠재의식의 경향을 가리킨다. commonly : 일반적으로 referred to A as B : A를 B라고 가르키다(언급) tendency : 경향 subconsci..
스택 프레임(Stack Frame)이란? What's the stack frame? 스택 프레임(Stack Frame)이란 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위하여 생기는 영역이다. 이 공간에는 함수와 관계되는 지역 변수, 매개변수가 저장되며, 함수 호출 시 할당되며 함수가 종료되면 소멸한다. 함수가 호출되면 스택에는 함수의 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소값, 함수에서 선언된 지역변수 등이 저장됩니다. 이렇게 스택영역에 차례대로 저장되는 함수의 호출 정보를 스택프레임(Stack Frame)이라고 합니다. 이러한 스택 프레임 덕분에 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있습니다. 1. 함수 프롤로그(Prolog) push rbp, m..
FSB(Format String Bug) FSB(Format String Bug)란 버퍼 오버플로우 해킹 기법중 하나이며 사용자의 입력을 통해 프로그램의 흐름을 바꿀 수 있는 취약점이다. FSB(Format String Bug) printf의 인자 개수는 포맷 문자 개수로 결정됩니다. buf의 값에 우리가 마음대로 입력이 가능하다면 우리가 원하는 포맷문자를 넣어서 조작이 가능해집니다. BOF가 발생하지 않아도 원하는 값을 얻을 수 있습니다. 오른쪽으로 상황에서는 FSB취약점이 발생하여 main 함수 스택의 내용을 모두 노출 시킬 수 있습니다. %p 출력 %p를 통해 다음 주소를 유출 시킬수 있으며 %[숫자]$p를 통해 숫자만큼 떨어져 있는 메모리를 출력 가능하다. 위와 같이 입력하게 되면 다음 스택의 메..
BUFFER OVERFLOW BOF 설정되어 있는 버퍼의 크기보다 크게 입력을 받을 수 있을 때 생기는 취약점입니다. int __cdecl main(int argc, const char **argv, const char **envp) { char s[40]; // [esp+4h] [ebp-34h] BYREF int v5; // [esp+2Ch] [ebp-Ch] v5 = 0x4030201; fgets(s, 45, stdin); printf("\n[buf]: %s\n", s); printf("[check] %p\n", v5); if ( v5 != 0x4030201 && v5 != 0xDEADBEEF ) puts("\nYou are on the right way!"); if ( v5 == 0xDEADBEEF ..