목록CS (4)
Priceless
Computer Systems: A Programmer's Perspective 위 책의 내용을 정리하였습니다 Chapter 3: Machine-Level Representation of Programs(프로그램의 기계 수준 표현) amd가 x86에 대해 먼저 개발했다 3-1. A Historical Perspective(역사적 관점) micro architecture는 어샘블리 수준에서 이해 Instructure Set Architecture는 아키텍처 3-2. Program Encodings(프로그램 인코딩) 3-2-1 3-2-2 pushq: 스택에 저장하여 레지스터에 백업한다 movq: 오른쪽으로 옮긴다(intel 시스템) diassemble 로 취약점을 찾을 수 있다 머신 코드를 assembly어..
보호되어 있는 글입니다.

Computer Systems: A Programmer's Perspective 위 책의 내용을 정리하였습니다 Chapter 2: Representing and Manipulating Information (정보 표현과 처리) 대부분의 컴퓨터는 메모리의 개별 비트에 access하는 대신, 8비트의 블록, 즉 바이트를 주소가 지정 가능한 최소 단위를 메모리를 사용한다 저장하고 있는 값이 너무 크면 오버플로우가 발생할 수 있다 비트 레벨의 값에 대해 운영 체제와 컴파일러 마다 다르게 연산되면 보안에 취약한 문제가 발생할 수 있다 2-1. Information Storage (정보 저장) C의 포인터 값은 다양한 타입의 변수의 저장 블록의 첫 번째 바이트 주소이다 프로그램 데이터, 명령 및 제어 정보를 저장하..

Computer Systems: A Programmer's Perspective 위 책의 내용을 정리하였습니다 Chapter 1: A Tour of Computer Systems 아래 코드를 기준으로 설명 // hello.c #include int main() { printf("hello, world\n"); } 1-1. Information Is Bits + Context 프로그램은 소스 프로그램(소스 파일)로 이루어져 있다 소스 프로그램은 bit(0과 1)의 연속이며, 8bit를 1byte로 정한다 ASCII code(아스키코드)를 사용하여 문자를 정수로 변한다 아래는 hello.c를 아스키코드로 변환한 결과이다 이러한 코드를 해석하기 위해서는 context가 필요하다 context를 통해 이 코드가..