본문 바로가기

BOOK

Application Hacking 애플리케이션 해킹



1장 윈도우, 메시지(Window, Message)
01 윈도우(Window)
02 윈도우 프로시저(Window Procedure)
03 윈도우 메시지(Window Message)
04 모달 윈도우 해제하기(Modal Window Free)
05 데스크톱(Desktop), 세션(Session), 스테이션(Station)

2장 프로세스, 스레드(Process, Thread)
01 프로세스의 구조
02 스레드의 구조
03 스레드 관리 기법
04 스레드 로컬 스토리지(Thread-Local Storage)

3장 커널 객체(Kernel Object)
01 핸들(Handle)과 객체(Object)
02 동기화 객체(Synchronization Object)
03 커널 객체 공유
04 보안 속성(Security Attributes)

4장 디버깅(Debugging)
01 디버거(Debugger)
02 디버기(Debuggee)
03 디버깅 API
04 심볼과 맵(Symbol & Map)
05 디버거 연결
06 특권(Privilege)
07 PEB, TEB 확인하기

5장 어셈블리(Assembly) 언어
01 어셈블리 언어 형식(Instruction Format)
02 레지스터(Register)
03 기본 명령어 이해

6장 해킹 기법(Hacking Techniques)
01 버퍼 오버플로우(Buffer Overflow)
02 포맷 문자열 공격(Format String Attack)
03 코드 케이브(Code Cave)
04...펼처보기

책속으로

이 책은 여러 가지 보안 영역 중에 애플리케이션 보안 영역을 기본부터 충실하게 다루고 있다. 윈도우즈 운영체제에서 애플리케이션의 동작 원리, 악성코드 분석의 기본이 되는 리버스 엔지니어링, 해커로부터 애플리케이션 디버깅을 방어하는 기술 등을 단계적으로 설명하고 있다. 또한, 저자들이 현업에서 직접 분석하고 대응했던 해킹 기법들도 소개하고 있다. 최근에는 해킹 기법과 보안 기술을 따로 구분하지 않는다. 해킹에 사용되는 기법들이 보안 기술에 적용되고 있으며, 그 반대의 경우도 허다하다. 이런 관점에서 이 책에서 설명하는 해킹 기법들은 독자들이 보다 재미있고 쉽게 최신 보안 기술을 습득하는 데 큰 도움이 될 것이다.--- '감수의 글' 중에서

출판사 리뷰

해킹의 최종 목적은 시스템과 프로그램을 변경해서 해커가 원하는 정보와 결과물을 얻는 것이다. 여기에 직접적으로 이용되는 리버스 엔지니어링은 프로그램의 구조를 전부 바꿔 의도하지 않은 방식으로 동작하게 할 수 있는 강력한 기술이다. 하지만 대부분의 사람들이 흔하게 접하지 못하는 분야이고 보안과 관련된 개발자들도 어렵다는 이유로 나와는 상관없는 분야로 치부하려는 경향이 있다. 리버스 엔지니어링이라는 분야가 위험성과 더불어 강력한 파괴력을 가지고 있는 분야이지만 반대로 보안을 유지할 수 있는 강력한 도구로 사용될 수 도 있다. 자신의 프로그램과 시스템을 지키기 위해서 이 분야에 대한 이해가 필요하지 않을까? 하지만 막상 보안이나 해킹에 대한 공부를 시작하려 해도 어디서부터 손을 대야 하는지 모르는 상황에 놓이게 되는 것이 현실이다.

리버스 엔지니어링을 다루는 서적은 많지 않으며, 그나마 존재하는 해킹 서적들도 대부분 웹이나 네트워크 환경만을 다루고 있다. 리버스 엔지니어링이라는 분야가 관심을 가지고 있는 소수의 마니아나 해커들에 의해서 발전하고 있고 본질적인 폐쇄성 때문에 더욱 접하기 어려운 것이 사실이다. 자료를 찾으려면 외국 서적이나 해외 인터넷 사이트를 힘들게 찾아야만 하고 여기저기 흩어져 있는 정보 속에서 제대로 된 지식을 얻기도 쉽지 않다. 국내와 해외의 해킹 기술 격차의 주요한 원인 중에 하나가 이 분야에 대한 정보와 공유가 부족하기 때문이라 볼 수 있다.