웹해킹은 그래도 조금 찍먹해본 수준이었는데 리버싱은 제대로 다뤄보지 못해서 이번 기회에 제대로 배워볼려구한다!

시스템 해킹 학습하기 전에 리버싱부터 학습하면 훨 도움이 되지 아느까시픈...ㅎㅎ

1. 컴퓨터 구조와 명령어 집합 구조

컴퓨터 구조

컴퓨터 구조: CPU, 메모리, 입출력 장치와 같은 하드웨어 구성 요소가 어떻게 설계되고 상호작용하는지를 연구하는 학문 => 프로그램이 실제로 어떤 과정을 거쳐 기계 수준에서 실행되는지에 대한 큰 그림을 다루는 분야

명령어 집합구조(Instruction Set Architecture, ISA): CPU의 명령어에 대한 설계로 CPU가 이해하고 실행할 수 있는 명령어 집합과 해당 명령어들의 동작 방식을 정의한 규악(ex. ARM, MIPS, AVR, 인텔의 x86-64)

마이크로 아키텍쳐(Micro Architecture): CPU의 하드웨어적 설계로, CPU가 명령어 집합 구조(ISA)를 어떻게 효율적으로 구현하고 실행할지 CPU의 회로를 설계하는 분야

=> 파이프라인(명령어를 순서대로 병렬로 처리), 캐시(자주 사용하는 데이터를 임시로 보관해두는) 등 성능과 전력 소모에 영향을 미치는 부분들을 다룬다.

폰 노이만 구조(Von Neumann Architecture)

초기 컴퓨터 과학자 중 한명인 폰 노이만은 컴퓨터에 연산, 제어, 저장의 세 가지 핵심 기능이 필요하다고 생각했다.

근대의 컴퓨터는 연산과 제어를 위해 **중앙처리장치(Central Processing Unit, CPU)**를, 저장을 위해 **기억장치(Memory)**를 사용한다. 그리고 장치간에 데이터나 제어 신호를 교환할 수 있도록 **버스(Bus)**라는 전자 통로를 사용한다.

폰 노이만 구조

중앙처리장치

CPU는 쉽게 말하면 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌이다.

CPU는 산술논리장치(산술/논리 연산을 처리하는, Arithmetic Logic Unit, ALU), 제어장치(CPU를 제어하는, Control Unit), 레지스터(CPU에 필요한 데이터를 저장하는, Register) 등으로 구성된다.

기억장치

기억장치는 컴퓨터가 동작하는데 필요한 여러 데이터를 저장하기 위해 사용되며, 용도에 따라 주기억장치와 보조기억장치로 분류된다.