Security 12

System Hacking: Tool Installation - 1

DreamHack의 System Hacking 로드맵을 기반으로 정리한 글입니다.Tool: gdb디버거프로그램을 개발할 때는 일반적으로 코드의 논리구조를 신중하게 설계하고, 코드를 작성해 나간다. 그런데 개발 초기에 아무리 신중하게 설계해도, 코드의 규모가 커지다 보면 실수가 발생하기 마련이다. 컴퓨터 과학에서는 이렇게 실수로 발생한 프로그램의 결함을 버그(bug)라고 한다. 개발자들은 농담처럼 개발에 투자한 시간만큼을 버그를 잡는 데 사용한다고 말한다. 그 정도로 이미 완성된 코드에서 버그를 찾는 것은 어렵다. 그래서 이런 어려움을 해소하고자 디버거(Debugger)라는 도구가 개발되었다. 디버거는 문자 그대로 버그를 없애기 위해 사용하는 도구이다. 프로그램을 어셈블리 코드 단위로 실행하면서, 실행 결..

System Hacking: Background - Computer Science

DreamHack의 System Hacking 로드맵을 기반으로 정리한 글입니다.Computer Architecture폰 노이만 구조폰 노이만은 컴퓨터에 연산, 제어, 저장의 세 가지 핵심 기능이 필요하다고 생각했다.근대의 컴퓨터는 연산과 제어를 위해 중앙처리장치(Central Processing Unit, CPU)를, 저장을 위해 기억장치(memory)를 사용한다. 그리고 장치 간에 데이터나 제어 신호를 교환할 수 있도록 버스(bus)라는 전자 통로를 사용한다.▶ 폰 노이만 구조 중앙처리장치CPU는 프로그램의 연산을 처리하고 시스템을 관리하는 컴퓨터의 두뇌이다.프로세스의 코드를 불러오고, 실행하고, 결과를 저장하는 일련의 모든 과정이 CPU에서 일어난다.CPU는 산술/논리 연산을 처리하는 산술논리장치(..