본문 바로가기
정보보안/Reversing

[Reversing] 리버싱 전에 간단하게 공부하는 컴퓨터 구조

by Yoonsoo Park 2025. 3. 31.

컴퓨터 구조 (Computer Hardware의 내부 구성 요소)

  • 중앙처리장치(Central Processing Unit; CPU)
  • 주 기억 장치(Main Memory)
  • 보조 기억 장치(Secondary Memory)
  • I/O Device
  • Common bus

 

CPU: 산술, 논리, 제어 등을 실행하는 하드웨어 회로

  • CPU Register: CPU 내부의 임시 저장 공간으로 가장 빠른 저장 장치
    • 연산 장치: data register, shift register, status register
    • 제어 장치: program counter(PC), instruction register(IR), memory address register(MAR), memory buffer register(MBR) 등
    • common register, segment register
  • CPU internal bus: 장치와 장치 사이에서 데이터를 주고 받는 통로
    • address bus, data bus, control bus
  • 산술 논리 연산 장치(Arithmetic and Logical Unit, ALU)
    • 산술 연산과 논리 연산을 담당
    • 가산기(adder), 누산기(accumulator), 보수(complement)기, overflow 검출기 
  • 제어 장치(Control Unit)
    • 명령어를 해석하고 이를와 실행하기 위한 제어 신호를 전송하는 장치
    • instruction fetch
      • CPU가 다음 명령어를 읽어오는 단계
    • instruction execution
      • CPU가 명령어를 decode하고 execution하는 단계                                                                                             -> PC: 현재 실행 중이 명령어의 다음에 위치한 명령어의 메모리 주소를 저장한다(CPU가 어떤 순서로 명령어를 읽어와 실행할지 결정)
      • 명령어 코드(opcode)와 명령에 필요한 인자(operand)

 

CPU의 명령어 실행 방식 

  • instruction cycle 
    • 명령어가 처리되기 위해서는 main memory에서 CPU로 이동해야 한다
    • CPU 내에서 명령어를 해독하여 명령에 따른 기능이 작동한다
    • instruction frtch + execution으로 이뤄진다

 

Program and Process

  • program: storage에 저장된 실행 가능한 파일 
    • compiler: 프로그램을 메모리에 적재할 수 있게 하는 오브젝트 파일(.obj)을 생성
    • linker: 필요한 오브젝트 파일을 모두 모아서 실행 파일(exe)를 생성
    • loader: 실행 파일을 메모리에 적재하는 기능
  • process: 현재 동작 중인 프로그램 -> 메모리 위에 올라간 프로그램
    • register와 main memory는 CPU가 직접 접근할 수 있는 장소