메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

시스템 내부 동작과 저수준 프로그래밍에 관심있다면~

joen***

|

2025-11-23

0과 1 사이

임베디드 시스템, 디버깅, 시스템 보안, 최적화 등 각종 기술과 89가지 노하우를 한 권에!

  • 저자 : 가와타 아키라 , 고이케 유키 , 와타나베 게이치 , 사에키 다카야 , 아라타 미즈키
  • 번역 : 진명조
  • 출간 : 2025-10-16

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

 

책의 부제를 유심히 살펴봤다.

"고수준 코드 아래 숨은 실행, 구조, 보안, 메모리의 비밀"

"이 책은 저수준 프로그래밍의 세계를 탐색하고 이해하는 데 필요한 기법, 즉 핵(Hack)를 89가지 엄선해 제공합니다."

그렇다 이 책은 기본적인 수준에 그치지 않고 더 깊이있는 접근을 한다.

 

거의 모든 프로그래밍 책에서 시작은 “Hello, World!”를 출력하는 것부터 시작한다.

이 책에서는 이런 기본적인 printf 에서 나아가

  1. libc의 시스템 콜 래퍼를 사용
  2. 어셈블리 언어 사용

을 통해서 “Hello, World!’를 출력해본다. 

 

흥미로운 챕터를 살펴보자.

 

Hack #40 일반 유저가 root처럼 행동하는 방법 3가지

  1. setuid 설정하기
  2. 필요한 케이퍼빌리티만 부여하기
  3. 유저 네임스페이스 내에서 root 되기

케이퍼빌리티는 root 권한을 세분화한 것으로 스레드별로 부여되는 속성입니다. 각 스레드는 여러 케이퍼빌리티를 가질 수 있으며 커널은 스레드가 가진 케이퍼빌리티를 부여하여 할 수 있는 작업을 늘리거나 반대로 root 권한을 가진 프로세스에서 케이퍼빌리티를 제거하여 실행 가능한 작업을 제한할 수 있습니다.

 

Hack #55 ASLR: 잘못된 메모리 접근에 대한 보안 메커니즘

- 리눅스 유저 영역 프로세스에 대한 ASLR의 동작

- 리눅스 유저 영역 프로세스에 대한 ASLR의 구현

- ASLR을 회피하는 공격기법

  1. 랜덤화되지 않거나 랜덤화 엔트로피가 낮은 메모리 영역 이용하기
  2. 주소 특정하기
  3. Heap Spraying하기
  4. mmap으로 매핑된 영역이 연속하는 점 이용하기

깊이있는 내용이 많다.

89가지 기법을 하나씩 이해하고 넘어가는 방법보다는, 관심있는 주제에 대해 스터디 모임용으로 가져가면 좋을 것 같다. 

그래도 친절한 LLM들 덕분에 이해하는데 부담이 없어서 다행이다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?