목요일, 10월 18, 2007

[독서광] 바이너리 핵스: 해커가 전수하는 테크닉 100선



오라일리에서 나오는 핵스 시리즈를 평소에 즐겨보는데, 시간 없는 바쁜 현대인을 위한 토막 편집( 작은 이야기 100개를 모아놓은 형식이다), 때로 등장하는 숨겨진 노하우, 잡지에서나 다룰만한 조금 특이한 주제 때문이라고 생각한다. 그런데 일본 오라일리 출판사에서 자체적으로 출간한 바이너리 핵스가 한국어판으로 나왔기에 잽싸게 구입해서 읽어보았다.



이름에서 조금 낚이기 쉽겠지만, 바이너리 핵스는 해커들이 컴퓨터에 침투하기 위한 방법을 소개하는 책이 아니라 이진 파일에 가까운 저수준 프로그래밍 기법을 다루는 책이다. 즉, C/C++ 프로그램을 만들줄 아는 사람이 읽어야 한다(스크립트 키드는 가라~~~). 기본적으로 리눅스와 유닉스를 중심으로 내용을 전개하고 있지만, 종종 윈도우와 맥OS X등도 등장한다.



이 책에서 다루는 내용은 크게 목적 파일 핵(ELF와 GNU binutils 다루는 방법), GNU 프로그래밍 핵(GCC, glibc로 재미있는 프로그램 만들기), 보안 프로그래밍 핵(GCC와 Valgrind를 비롯한 각종 프로그래밍 도구와 라이브러리를 사용해서 보안 허점을 제거하는 방법), 런 타임 핵(동적으로 라이브러리를 다루고, 실행 중인 프로그램을 추적하고 변경하고 수정하는 방법), 프로파일러/디버깅 핵(프로파일러와 디버거 원리) 등으로, 일반적인 프로그래밍 서적에는 잘 등장하지 않는 주제가 대부분이다.



이 책 대상 독자 층은 초급을 벗어난 중급 개발자에 맞춰져 있으므로, 이미 어느 정도 리눅스 시스템 프로그래밍 짬밥을 먹은 개발자라면 조금 시시할 가능성도 있다. 핵스 시리즈 스타일은 깊이를 희생해서 다양성을 추구하기 때문에 심도 깊은 내용을 바라고 이 책을 들면 실망할 가능성이 크다는 사실을 명심하자. 책을 읽는 도중에 "세상에 이런 방법도 있군"이라는 생각이 많이 들수록 본전에 가까워지리라는 생각이다.



본문 중 '시작하며'에 나오는 '바이너리 핵스' 정의를 옮겨보며 마무리하겠다. 모두모두 즐거운 프로그래밍!



이 책에서는 바이너리 핵스를 '소프트웨어의 저수준 기술을 이용한 프로그래밍 노하우'
라 정의하고, 기본적인 툴 사용법에서 보안 프로그래밍, OS나 프로세서의 기능을 이용한 고도의 테크닉까지 폭넓게 다루고 있다.


EOB

댓글 2개:

  1. 제목부터 흥미가 땡기는데 소개해주시는 내용 읽고 구매를 결정했습니다..
    재미나게 읽어볼 수 있을 것 같습니다..

    답글삭제