간편결제, 신용카드 청구할인
네이버페이 1%
(네이버페이 결제 시 적립)
NH(올원페이)카드 12% (21,390원)
(3만원 이상 결제/최대 1만원 할인)
북피니언 롯데카드 30% (17,010원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (19,440원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (21,870원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (22,600원)
(최대할인 3만원 / 3만원 이상 결제)
Close

애플리케이션 해킹 Application Hacking : 대한민국 최고의 보안 연구원들이 공개하는 애플리케이션 해킹의 비밀[양장]

2013년 9월 9일 이후 누적수치입니다.

판매지수 101
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

27,000원

  • 24,300 (10%할인)

    1,350P (5%적립)

  • 이벤트/기획전

  • 연관도서

  • 사은품(3)

출판사 서평

해킹의 최종 목적은 시스템과 프로그램을 변경해서 해커가 원하는 정보와 결과물을 얻는 것이다. 여기에 직접적으로 이용되는 리버스 엔지니어링은 프로그램의 구조를 전부 바꿔 의도하지 않은 방식으로 동작하게 할 수 있는 강력한 기술이다. 하지만 대부분의 사람들이 흔하게 접하지 못하는 분야이고 보안과 관련된 개발자들도 어렵다는 이유로 나와는 상관없는 분야로 치부하려는 경향이 있다. 리버스 엔지니어링이라는 분야가 위험성과 더불어 강력한 파괴력을 가지고 있는 분야이지만 반대로 보안을 유지할 수 있는 강력한 도구로 사용될 수 도 있다. 자신의 프로그램과 시스템을 지키기 위해서 이 분야에 대한 이해가 필요하지 않을까? 하지만 막상 보안이나 해킹에 대한 공부를 시작하려 해도 어디서부터 손을 대야 하는지 모르는 상황에 놓이게 되는 것이 현실이다. 리버스 엔지니어링을 다루는 서적은 많지 않으며, 그나마 존재하는 해킹 서적들도 대부분 웹이나 네트워크 환경만을 다루고 있다. 리버스 엔지니어링이라는 분야가 관심을 가지고 있는 소수의 마니아나 해커들에 의해서 발전하고 있고 본질적인 폐쇄성 때문에 더욱 접하기 어려운 것이 사실이다. 자료를 찾으려면 외국 서적이나 해외 인터넷 사이트를 힘들게 찾아야만 하고 여기저기 흩어져 있는 정보 속에서 제대로 된 지식을 얻기도 쉽지 않다. 국내와 해외의 해킹 기술 격차의 주요한 원인 중에 하나가 이 분야에 대한 정보와 공유가 부족하기 때문이라 볼 수 있다.

[Application Hacking]은 이제 막 입문하려는 개발자부터 프로그래밍과 시스템에 어느 정도 기반 지식을 가지고 있는 고급 개발자에 이르기까지 해킹과 보안이라는 분야에 쉽게 접근할 수 있도록 구성된 책이다. 보안과 해킹의 관점에서 시스템과 프로그램에 대한 접근 방법을 설명하고 이러한 지식들을 어떻게 활용할 수 있는가를 다루고 있다. 단순한 배경 지식으로서의 이론이 아니라 실제 프로그램 구조의 변경을 통해서 적용이 가능한 해킹과 보안 기술들을 담아냈으며, 시스템의 구조적인 내용을 이해하고 이들이 어떤 취약점을 가지게 되는지도 배울 수 있다.

-해킹 기술을 설명하며 이를 고려한 안전한 프로그램을 개발할 수 있다.
-보안과 관련된 개발자라면 꼭 알아야 할 내용들을 담았다.
-프로그램의 구조와 원리를 이해할 수 있도록 구성하였다.
-시스템과 프로그램에 더불어 리버스 엔지니어링을 다룬 보안 및 해킹 서적이다.
-리버스 엔지니어링에 필요한 이론과 기술을 습득할 수 있다.

1장 | 윈도우, 메시지(Window, Message)
윈도우는 사용자로부터 입력을 받고 처리한 결과를 보여주는 사용자와 가장 접점에서 수행되는 윈도우즈 운영체제의 핵심적인 GUI(Graphic User Interface) 구성 요소이다. 또한 메시지는 윈도우의 동작을 제어하는 데 사용되는 윈도우즈 운영체제의 기본 개념으로, 윈도우의 형태와 메시지의 흐름을 이해해야만 윈도우즈 운영체제의 구조와 원리를 보다 쉽게 이해할 수 있다.

2장 | 프로세스, 스레드(Process, Thread)
프로세스와 스레드는 프로그램 실행에 있어 가장 기본적인 단위이다. 프로세스는 하나의 응용 프로그램을 구성하는 단위이며 실제 작업을 수행하는 스레드들로 구성되어 있다. 운영체제는 프로세스와 스레드로 구성된 프로그램들을 효율적으로 구동하기 위하여 여러 가지 기법을 가지고 관리하게 된다. 컴퓨팅 환경이 꾸준히 발전하면서 사용자는 더더욱 많은 기능을 요구하게 되는데, 프로세스와 스레드는 시스템의 내부적인 관리뿐 아니라 이러한 사용자 요구에 따라 제공되는 기능에 있어서도 중요한 역할을 수행하고 있다.

3장 | 커널 객체(Kernel Object)
윈도우즈 운영체제는 시스템 내부의 자원들을 효과적으로 접근하고 사용할 수 있도록 여러 종류의 객체들을 제공한다. 운영체제를 통해서 프로그램이 제어할 수 있는 프로세스, 스레드, 잡(job), 파일, 동기화 객체 등과 같이 시스템을 통해서 제공되고 제어되는 모든 객체들을 커널 객체라고 부른다. 프로그램이 수행되면서 사용하는 시스템의 자원인 커널 객체를 통해서 프로그램의 동작 방식에 접근한다면 프로그램의 구조와 원리를 쉽게 파악할 수 있을 것이다.

4장 | 디버깅(Debugging)
프로그래머에게 있어서 프로그래밍만큼 중요한 것이 디버깅이라고 할 수 있다. 프로그램을 개발하거나 배포된 프로그램에서 버그가 발생되었을 경우에 이 버그를 수정하기 위해서 디버깅을 수행하게 된다. 디버깅을 수행하기 위해서는 프로그램의 구조와 함께 시스템이 제공하는 많은 기능들을 이해하고 있어야 한다. 버그를 수정하는 디버깅 과정은 정상적인 프로그램의 구조를 파악할 수 있는 중요한 수단이기 때문에, 해킹 기법과 그 보안 기술을 개발하는 데 이용될 수도 있는 강력한 방법이다.

5장 | 어셈블리(Assembly) 언어
여러분이 직접 개발하지 않는 프로그램(Program)의 동작 원리를 이해하고 싶다면, 반드시 역어셈블(Disassemble)된 코드를 이해해야 한다. 또한, 여러분이 만든 프로그램이 컴퓨터와 어떠한 상호 작용을 통하여 동작을 하는지 좀 더 자세히 알고자 한다면 어셈블리(Assembly) 언어를 어느 정도 알아야 한다. 오늘날 대부분의 프로그래머들은 C, C++, 델파이 등의 고급 언어에 익숙해져 있다. 더욱이 최근에는 자신이 프로그래밍한 코드와 프로세서(Processor)와의 관계를 따지거나 프로그램이 어떤 방식으로 실행되는지 일일이 신경을 쓰며 프로그래밍하는 개발자는 거의 없다고 해도 과언이 아니다. 이것은 과거 어셈블리 언어로 프로그램을 하면서 고민했던 많은 부분을 고급 언어의 컴파일러(Compiler)가 대신해 주기 때문이다. 고급 언어들이 발달하면서 기존에 고민해야 했던 부분을 다른 곳에 투자할 수 있게 되었으며, 그 덕분에 보다 우수한 프로그램이 나온 것도 사실이다. 하지만, 이 책을 읽고 있는 독자라면 고급 언어의 틀 속에서 프로그램을 하기 보다는, 어셈블리어를 사용하여 자신이 작성한 프로그램이 컴퓨터와 어떠한 과정을 통해서 실행되는지를 따지고, 시스템의 내부적인 부분에 접근하여 이해하기를 바란다. 프로그램을 분석하기 위해서는 - 특히, 악성코드와 해킹 도구를 분석하기 위해서는 - 가장 중요한 것이 프로그램의 동작 방식을 이해하는 것이다. 이를 위해 디버거나 기타 툴을 이용하여 프로그램을 분석하게 되는데, 이때 우리가 확인할 수 있는 것은 역어셈블링된 소스 코드밖에 없다. 이러한 소스 코드를 이해하려면 반드시 어셈블리 언어를 이해하고 있어야 하며, 이번 장에서는 어셈블리 언어의 기본적인 내용을 설명하고자 한다.

6장 | 해킹 기법(Hacking Techniques)
프로그램을 해킹하기 위해서 다양한 기법들이 사용된다. 특정한 프로그램만을 대상으로 동작하는 해킹 기술부터 임의의 모든 프로그램들을 대상으로 사용할 수 있는 해킹 기술까지 대상에 따라서 다양한 해킹 방법이 존재한다. 최근의 해킹 이슈들을 보면 프로그램 자체의 버그(Bug) 또는 시스템의 버그들이 해킹의 직접적인 원인이 되는 경우가 많다. 해킹 기법도 유행을 타는 경우가 많이 있다. 새롭고 강력한 기법이 등장하게 되면 그 기법이 유행처럼 퍼지는 경향이 있다. 지금도 새로운 해킹 기법들은 나오고 있으며 기존의 해킹 기법과 결합해서 계속 발전하고 있기 때문에 매번 새로운 기법들을 모두 습득하는 것은 쉬운 일이 아니다. 시간이 흐를수록 해킹 기법과 보안 기술 사이의 차이는 점점 줄어들고 있다. 다시 말해서, 해킹 기법들이 보안 기술에 그대로 활용이 되고, 반대로 보안 기술들이 그대로 해킹 기법에 활용되고 있는 것이다. 또한 대부분의 해킹 기법들이 상황에 따라서 다양하게 응용되고 확장되기 때문에 그 기능을 명확하게 구분하는 것은 의미가 없을 수도 있지만, 여기서는 해킹 기법들의 흐름을 파악할 수 있도록 몇 가지 기본적인 부분을 소개하려고 한다. 이러한 기법들은 프로그램을 보호하기 위한 보안 기술을 익히는 데도 많은 도움이 될 것이다.

7장 | DLL 인젝션(DLL Injection)
다른 프로세스에 대한 후킹이나 분석을 진행하기 위해서는 일단 해당 프로세스의 메모리 영역에 접근할 수 있어야 한다. 이러한 접근을 위하여 다양한 기법들이 존재하지만 가장 널리 쓰이는 방법 중 하나는 바로 대상 프로세스에 DLL 파일을 삽입하는 것이다. 임의의 DLL 파일을 다른 프로세스에 삽입하는 것을 DLL 인젝션(DLL Injection)이라고 한다. 일반적으로 프로세스는 자신이 사용하는 DLL 파일을 필요에 따라서 로드해서 사용한다. 일반 프로세스에서 DLL 파일을 로드하는 방법을 약간 응용하면 다른 프로세스에도 같은 방식으로 원하는 DLL 파일을 로드시킬 수 있다. 해당 프로세스에 DLL 파일을 인젝션하여 로드하면 같은 실행 공간이므로 해당 프로세스의 메모리를 자유롭게 접근할 수 있다.

8장 | API 후킹(API Hooking)
여러분들이 사용하는 프로그램들은 수많은 API(Application program interface)로 구성되어 있으며, 각 API들은 자신만의 고유한 기능들이 있다. 또한 프로그램이 실행될 때에는 특정 상황에 따라 API들이 서로를 호출하며 여러분들이 원하는 기능을 수행하게 된다. 이런 API에 여러분들이 원하는 어떤 기능을 추가할 수 있다는 것은, 그 API를 사용하는 프로그램의 결과를 여러분 마음 대로 바꿀 수 도 있으며, 반대로 어떤 API를 사용하여 프로그램을 변경하고자 하는 것을 막을 수도 있다는 것이다. 예를 들어 어떤 응용 프로그램이 다른 프로세스에 접근하여 메모리를 변조하려면 일반적으로 OpenProcess 함수를 호출하여 프로세스 핸들을 얻어야 한다. 이러한 방법으로 메모리에 접근하는 것을 방어하려면 OpenProcess를 API 후킹하여 외부 프로세스에서 내 프로그램에 접근하는 것을 차단하는 기능을 추가하면 기본적인 방어는 가능하다. 이처럼 API 후킹은 프로그램이나 시스템에 어떤 조작을 가하여 원본 함수가 호출되기 전에 조작자가 원하는 기능을 수행하게 하는 것이다. API 후킹은 많은 해킹 도구들이 사용하기도 하지만, 대부분의 보안 프로그램들이 사용하고 있는 가장 중요하면서도 기본적인 기술이다.

9장 | 안티디버깅(Anti-debugging)
최근의 보안 프로그램들은 자체 보호를 위한 방법으로 디버깅 과정 자체를 어렵게 하거나 차단하는 안티디버깅(Anti-debugging) 기술을 많이 사용하고 있다. 안티디버깅에는 디버거의 동작 방식, 특징을 이용하거나 디버거의 버그를 이용해서 디버거가 처리 가능한 입력 범위 등을 조작해 디버깅이 불가능하도록 처리하는 등의 다양한 방법들이 존재한다. 이러한 기술들을 모두 습득하는 것은 어렵지만 몇 가지 대표적인 안티디버깅 기술을 살펴보는 것만으로도 방어 기법을 이해하는 데 많은 도움이 될 것이다. 물론 해킹을 차단하도록 설계된 대부분의 보안 프로그램들은 안티디버깅 기술들을 사용하고 있는 것은 물론이고 이외에도 실행 파일을 보호하기 위한 실행 압축(Packing)이나 해킹 행위를 실행 중에 실시간으로 판단하는 다양한 안티리버싱 방법들을 상호 보완적으로 사용하고 있다.

10장 | 메모리상의 데이터 변경
메모리는 응용 프로그램이 실제로 사용하는 데이터가 로드되는 공간이며 응용 프로그램의 코드, 데이터, 리소스 등이 로드된다. 하지만 실제 응용 프로그램이 사용해야 하는 메모리 용량에 비해 실제 메모리는 부족한 경우가 많다. 따라서 운영체제에서는 가상 메모리 개념을 가지고 있고 이 가상 메모리와 실제 메모리를 매핑하면서 사용하게 된다. 메모리에는 프로세스의 코드와 사용하는 데이터 값 등 응용 프로그램에서 사용하는 모든 정보가 들어 있다. 따라서 메모리에 대한 구조를 이해하는 것은 프로세스의 모든 정보에 대해 얻을 수 있다는 얘기가 된다. 오래 전부터 메모리는 해커들의 주 공격 대상이 되어 왔다. 메모리 조작에 대한 이슈는 오랜 역사를 가지고 있으며 현재도 메모리 조작으로 인한 해킹이 많이 발생하고 있다.

11장 | 자동 입력 프로그램 제작
자동 입력 프로그램은 사용자가 키보드나 마우스를 실제로 입력하지 않아도 가상으로 키보드나 마우스 입력을 발생시켜서 실제로 키보드나 마우스를 조작한 것과 동일한 효과를 발생하는 해킹 도구이다. 이러한 자동 입력 프로그램은 게임에서 많이 사용되며, 간혹 온라인 교육 프로그램에서도 사용되는데, 온라인 게임에서는 오토플레이, 오토마우스, 오토매크로라고 불린다. 특히 MMORPG 게임에서 자동사냥이라고도 불리며, 캐릭터가 자동으로 몹(Mobile Character)을 사냥하고, 아이템을 얻고, 거래하며, 특정 임무를 수행한다. 아이템 거래를 통해 금전적인 이익까지 얻을 수 있는 온라인 게임에서는 상당히 매력적인 해킹 도구라 할 수 있겠다. 자동 입력 프로그램은 응용 레벨 자동 입력 프로그램, 커널 레벨 자동 입력 프로그램, 하드웨어 자동 입력 프로그램으로 나뉜다. 구현 방법은 응용 프로그램의 동작 방식과 상관없이 주기적으로 마우스나 키보드 정보를 입력하는 방법과 응용 프로그램의 동작 방식을 분석하여 마우스나 키보드를 입력해야 하는 시점에만 입력하는 방식이 있다. 전자는 대부분의 응용 프로그램에서 사용할 수 있는 반면, 후자는 응용 프로그램마다 다르게 구현해야 한다. 일반적으로 후자의 경우가 특정 프로그램을 대상으로 한 경우이기 때문에, 기술적으로 난이도가 있고 금전적으로 거래되기도 한다. 이번 장에서는 모든 응용 프로그램에서 공통으로 사용할 수 있게 자동으로 키보드나 마우스를 입력시키는 것을 간단하게 구현해보도록 하겠다. 이번 장에서 소개하는 자동 입력 프로그램의 동작 원리를 통해, 자동 입력 프로그램을 방어하는 기술을 터득하기를 바란다.

12장 | 스풀 데이터(Spool Data) 조작
인터넷의 발달로 다양한 형태의 증명서 등을 자신의 컴퓨터에서 프린터(Printer)를 사용해 출력할 수 있게 되었다. 이러한 문서들은 중요성에 따라서 워터마크(Watermark) 또는 바코드(Barcode) 등과 같은 다양한 보안 방법으로 문서의 위조와 변조를 차단하거나 저장하지 못하도록 보호되고 있다. 하지만 이런 보안 방법들이 적용되어도 윈도우즈 운영체제에서 문서를 출력하기 위해서는 시스템이 제공하는 출력 방법을 거쳐서 출력할 수밖에 없다는 한계가 있다. 프린터 출력을 위한 임시 공간으로 사용되는 스풀 파일은 프로그램이 생성한 출력 데이터를 지정된 프린터 드라이버에 맞는 인쇄 형태로 저장하고 있게 된다. 스풀 파일에 접근할 수 있다는 것은 프린터로 출력되는 모든 인쇄 작업에 대해서 최종적인 출력 형태를 가로채거나 변조가 가능하다는 것을 말한다.

13장 | 디바이스 드라이버(Device Driver) 개발
해킹 도구들을 분석하다 보면 유저 모드(User mode)에서의 기술만으로는 방어하기 힘든 프로그램들이 있다. 이런 종류의 프로그램들은 보통 커널 모드(Kernel mode)의 기능을 사용해야 하고 이 기능을 사용하기 위해서는 디바이스 드라이버를 만들어야 한다. 반대로 어떤 방어 프로그램을 우회하거나 무력화시키기 위해서 디바이스 드라이버를 사용해야 하는 경우도 있다. 이번 장에서는 하드웨어 장치를 제어하기 위한 용도가 아닌 커널 모드의 기능을 수행하기 위한 용도의 드라이버를 작성하는 방법을 배운다.

14장 | 보안을 고려한 개발
모든 소프트웨어는 역공학(Reverse Engineering)에 의한 해킹에 노출되어 있다고 하더라도 과언이 아니다. 어렵게 개발된 소프트웨어가 해킹으로 인해서 가치를 인정받지 못하는 경우가 발생할 수 있다. 최근에는 시스템에서 기본적으로 DEP(Data Execution Prevention), ASLR(Address Space Layout Randomization), Security Cookie 등의 보안을 강화할 수 있는 기능들을 제공하고 있지만 개발 과정에서부터 해킹에 대비한 설계와 코드를 작성한다면 별도의 보안 기능이나 보안 소프트웨어를 사용하지 않더라도 해킹에 어느 정도 안전한 프로그램을 만들 수 있을 것이다.

부록 | 주요 디버거(Debugger) 소개
디버거(Debugger)는 단어 그대로 프로그래밍에 대한 버그를 제거하기 위해 만들어진 분석 도구이다. 디버거를 실행하면 디버거는 대상 프로그램에 대해서 기계어를 분석하고 이에 대해 디스어셈블링된 내용을 제공한다. 디버거가 컴파일된 코드를 분석하는 방식에는 주로 선행 해석 방식(Linear Sweeping Method)과, 재귀적 해석 방식(Recursive Traversal Method)이 사용된다. 선형 해석 방식은 하나의 명령어를 해석하고 그 명령어의 길이만큼 이동한 다음 그 위치에 있는 명령어를 해석하는 방식이고 재귀적 해석 방식은 하나의 명령어를 해석하고 그 명령어가 가리키는 해당 위치로 이동한 후 해석하는 방식이다. 디버거는 프로그램 오류를 수정하거나 특정 상황을 파악하기 위해 강력한 기능들을 제공하는 도구이다. 그만큼 프로그램에 대한 많은 정보를 알 수 있기 때문에 역공학(Reverse Engineering)에서도 중요한 역할을 하고 있다. 디버거 사용법에 익숙해지는 것은 앞으로의 분석 작업에 큰 도움이 될 것이다. 많은 디버거들이 존재하지만 이 장에서는 현재 가장 널리 쓰이고 있는 WinDbg, OllyDbg, IDA, SoftIce의 기본 사항과 간단한 사용법에 대해서 살펴보기로 한다. SoftIce, WinDbg는 선행 해석 방식을 사용하는 디버거이고 OllyDbg나 IDA는 재귀적 해석 방식을 사용하는 디버거이다.

목차

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 화면 정보 구하기
05 비정상 함수 호출(Abnormal Function Call)
06 리플레이 공격(Replay Attack)
07 IPC 스니핑(IPC Sniffing)
08 코드 훔치기(Code Steal)
09 코드 패치(Code Patch)
10 루트킷(Rootkit)

7장 DLL 인젝션(DLL Injection)
01 DLL 인젝션
02 DLL 인젝션 기법
03 DLL 인젝션 방어

8장 API 후킹(API Hooking)
01 IAT(Import Address Table) 후킹
02 인라인 코드 패치(Inline Code Patch)
03 SSDT(System Service Descriptor Table) 후킹

9장 안티디버깅(Anti-debugging)
01 디버깅(Debugging) API
02 디버그 플래그(Debug Flag)
03 중단점(Breakpoint)
04 예외 처리기(Exception Handler)
05 기타

10장 메모리 상의 데이터 변경
01 가상 메모리와 물리적인 메모리의 관계
02 메모리 조작 도구
03 디버거를 통한 메모리 조작
04 API를 통한 메모리 조작

11장 자동 입력 프로그램 제작
01 응용 레벨 자동 입력 프로그램
02 커널 레벨 자동 입력 프로그램

12장 스풀 데이터(Spool Data) 조작
01 스풀(Spool) 동작
02 스풀 가로채기(Spool Hijacking) 소스 코드

13장 디바이스 드라이버(Device Driver) 개발
01 디바이스 드라이버의 기본 구조
02 디바이스 드라이버 로딩하기
03 디바이스 드라이버에 명령 보내기

14장 보안을 고려한 개발
01 보안의 필요성
02 씬 클라이언트(Thin Client)
03 디버그 코드(Debug Code)
04 함수 명명(Function Naming)
05 설정 및 UI(User Interface)
06 데이터(Data)
07 문자열

부록 주요 디버거(Debugger) 소개
01 WinDbg
02 OllyDbg
03 IDA
04 SoftIce

저자소개

생년월일 -
출생지 -
출간도서 0종
판매수 0권

NHN㈜ 포털기술실
금융 시스템 및 암호화, 보안 제품을 개발하였으며 핵쉴드의 주요 개발자로 많은 특허 기술들을 고안하였다. 안철수연구소 선임연구원을 거쳐 현재 NHN에 근무하고 있으며, 다른 개발자들을 위한 통합 개발 환경을 프로그래밍하고 있다.
blog.naver.com/iwillhackyou

생년월일 -
출생지 -
출간도서 0종
판매수 0권

안철수연구소 보안기술팀
해킹 방어에 관련된 다수의 특허를 출원하였으며, 현재 안철수연구소에서 게임보안 솔루션인 핵쉴드 제품의 개발 및 PM 역할을 수행하고 있다.

생년월일 -
출생지 -
출간도서 3종
판매수 341권

제주대학교 교육대학 부설초등학교 교사로, 제주대학교 컴퓨터교육전공 교육학박사이다. 소프트웨어 융합 교육에 관심을 갖고 있다.
gtranu@naver.com

이호웅 [감수]
생년월일 -
출생지 -
출간도서 0종
판매수 0권

2010년~현재, AhnLab 시큐리티대응센터(ASEC, AhnLab Security E-response Center) 센터장
2008~2009년, HackShield, AhnLab Online Security, SiteGuard, SiteCare, V3 Mobile 개발 총괄 부서장
2005~2007년, V3 Mobile, HackShield 개발팀장/PM
2003~2004년, DataBlock 개발팀장/PM
2001~2002년, AhnLab PKI System 개발팀장
2000~2001년, EnDe Pro 2002 개발
1999년, 국가지리정보 시스템 개발

[저서 및 감수)
2009년, "Application Hacking" 감수, 북앤라이프
2005년, "속전속결 프로그래밍 입문" 집필, 영진닷컴

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    8.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용