스택 프레임(Stack Frame)
·
Reverse Engineering
📌스택 프레임(Stack Frame)이란? ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법 ➡️ 함수의 매개 변수, 함수 반환 주소값, 지역 변수 등메모리의 스택 영역에 순서대로 저장되는 함수의 호출 정보를 스택 프레임이라고 한다.    ❗짚고 넘어가기 - 스택 (1) Push스택에 Push를 하여 값을 넣으면 스택의 바닥(EBP)에서 스택 탑(ESP)을 향해 데이터가 쌓인다. (2) Pop스택에 Pop을 하여 값을 빼면 스택의 탑(ESP)에서 스택의 바닥(EBP)을 향해 데이터가 줄어든다.➡️ 즉, 데이터가 늘어날수록 낮은 주소에 저장이 된다. 데이터가 늘어날수록 낮은 주소에 저장이 되는 이유는 커널(Kernel)과 ..
Dreamhack | Reverse Engineering | Stage 2 | Background: Static Analysis vs. Dynamic Analysis
·
Reverse Engineering
해당 게시물은 드림핵의 강좌 내용을 정리한 것이다. https://dreamhack.io/ 해커들의 놀이터, Dreamhack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io Ⅰ. 서론 리버스 엔지니어링에서 소프트웨어를 분석하기 위해 사용하는 방법 > 정적 분석(Static Analysis) > 동적 분석(Dynamic Analysis) 리버스 엔지니어링에서는 상횡에 따라 어떤 방법을 택해 분석하는지에 따라 실력이 좌우됨 Ⅱ. 정적 분석 ▶정적 분석(Static Analysis) : 프로그램을 실행시키지 않고 분석하는 방법 --- 장점 --- ..
Dreamhack | Reverse Engineering | Stage 2 | Binary
·
Reverse Engineering
해당 게시물은 드림핵의 강좌 내용을 정리한 것이다. 예제 코드는 포함하지 않았다. https://dreamhack.io/ 해커들의 놀이터, Dreamhack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io Ⅰ. 서론 기계어(Machine Language) : 컴퓨터에게 명령을 내리기 위한 언어 어셈블리어(Assembly Language) : 0과 1을 대신한 사람이 이해하기 쉬운 언어 어셈블러(Assembler) : 어셈블리어를 기계어로 번역해주는 프로그램 컴파일러(Compiler) : C, C++, GO, Rust과 같은 어셈블리어보다 이해하..