Top

리버스 엔지니어링 핵심 기술 (세트) [보안 분석가라면 꼭 알아야 할]

  • 지은이크리스 카스퍼스키, 엘다드 에일람
  • 옮긴이서준석, 윤근용
  • ISBN : 9788960775107
  • 69,000원
  • 2013년 12월 31일 펴냄
  • 페이퍼백 | 1,384쪽 | 188*250mm
  • 시리즈 : 해킹과 보안

책 소개

세트 구성: 전2권
『해킹의 꽃 디스어셈블링 Hacker Disassembling Uncovered』 소개

이 책은 고급 해커의 필수 능력인 디스어셈블링 기법을 집중적으로 다룬다. 분석에 필요한 기본 도구와 어셈블리어 분석을 시작으로 각종 보안 메커니즘을 우회할 수 있는 방법을 설명한다. 디버깅, 디스어셈블링에 대한 기본 지식부터 커널 분석, 고급 패치 기술 등 분석 과정에서 마주칠 수 있는 깊이 있는 주제들을 다양한 관점과 예제를 통해 학습할 수 있는 훌륭한 분석 길잡이가 되어 줄 것이다. .

이 책에서 다루는 내용

디스어셈블이 필요한 상황, 특정 언어 구조체를 분석하기 위한 시작점, 보호 메커니즘 개발자가 숨겨 놓은 트랩에 빠지지 않고 수백 메가에 육박하는 코드 밀림에서 길을 잃지 않는 방법을 알려주는 책이다. 특히 이 개정2판에서는 실제 디스어셈블링 기법에 관련된 내용이 추가됐다. 특히 메모리 덤프 분석, 합법적인 소프트웨어 보호 메커니즘, 악성 프로그램 관련 내용이 새로운 단원으로 추가됐다. 또한 관련 예제와 원리들은 최신 동향에 맞춰 수정했다. 안티디버깅 기법 우회, 패킹, 암호화, 다형성, 간단한 난독화 코드 극복과 관련된 내용에 주안점을 두고 작성했다.

『리버싱』 소개

소프트웨어를 해부해서 설계와 구현 내용, 심지어 소스코드까지도 알아낼 수 있어서 최근 보안업계의 화두로 떠오른 리버싱. 복제방지기술 무력화와 상용보안대책 무력화로 무장한 해커들의 리버싱 공격 패턴을 파악하기 위한 최신 기술을 담은 해킹 보안 업계 종사자의 필독서. 소프트웨어의 약점을 찾아내 보완하고, 해커의 공격이나 악성코드를 무력화하며, 더 좋은 프로그램을 개발할 수 있도록 프로그램의 동작 원리를 이해하는 데도 효율적인 리버스 엔지니어링의 비밀을 파헤친다.

이 책에서 다루는 내용

■ IA-32 호환 프로세서용 컴파일러가 만든 어셈블리 언어 코드를 읽는 방법
■ 문서화되지 않은 파일 포맷이나 네트워크 프로토콜 해석
■ 리버스 엔지니어링이 합법인 경우와 불법인 경우, 그리고 불법일 때의 이유
■ 리버싱을 활용해 해커가 복사 방지 기술을 무력화하는 방법
■ 리버스 엔지니어링을 적용해 악성코드를 무력화하는 방법
■ 코드 리버싱을 막는 방어책과 효과적인 수행 방법
■ 닷넷 플랫폼 리버싱과 어셈블리 언어인 MSIL
■ 실제 악성코드 프로그램 분석 방법
■ 악성코드 프로그램을 이용해 공격자가 감염된 시스템 제어권을 획득하는 과정

이 책의 대상 독자

이 책은 여러 분야에 종사하는 사람들에게 도움이 되는 기술을 다양하게 다룬다. 운영체제, 어셈블리 언어, 컴파일 같은 소프트웨어의 다양한 로우레벨 측면을 알고 싶어 하는 소프트웨어 개발자는 특히 더 유용한 정보를 많이 찾을 수 있을 것이다. 운영체제나 소프트웨어 라이브러리, 특정 소프트웨어 컴포넌트 등 기존 코드를 빠르고 효과적으로 분석할 수 있는 기술을 향상시키려는 사람에게도 유용할 것이다. 이외에도 이 책은 보안이나 저작권 제어 등과 같은 다양한 주제도 들어 있으므로, 리버스 엔지니어링에 특별한 관심이 없더라도 이 책이 다루는 다양한 주제에서 흥미로운 내용을 찾을 수 있을 것이다.

이 책을 읽기 전 선수 지식을 제공하기 위해 나는 비교적 최신의 기술 사항들을 가능한 한 모두 다루려고 노력했다. 따라서 1부는 이 책을 읽는 데 꼭 필요한 기본 지식을 설명하면서 시작한다. 하지만 이 책에서 정말로 많은 것을 얻기 원하는 독자라면 어느 정도의 소프트웨어 개발 경험이나 지식은 갖추는 편이 좋다. 전문적인 소프트웨어 개발 경험은 전혀 없지만 현재 컴퓨터 공학을 전공하는 학생이라면 이 책을 읽는 데 큰 문제는 없을 것이다. 반대로 컴퓨터를 전공한 적은 없지만 수년간 프로그래밍 작업을 수행해 온 사람이라면 이 책에서 더 많은 내용을 배울 수 있을 것이다.

마지막으로 이 책은 로우레벨 소프트웨어와 리버스 엔지니어링 경험이 이미 있는 사람 중에서 흥미로운 고급 기술을 배우길 원하거나 기존 코드에서 상세한 정보를 추출하는 방법을 알고자 하는 사람들에게 도움이 많이 될 것이다.

저자/역자 소개

저자 소개

크리스 카스퍼스키(Kris Kaspersky)

유명 기술 서적 저자로서, Hacker Uncovered 시리즈 도서들과, 『Code Optimization: Effective Memory Usage(코드 최적화: 효율적인 메모리 사용)』, 『CD Cracking Uncovered: Protection Against Unsanctioned CD Copying(알려지지 않은 CD 크래킹: 승인되지 않은 CD 복사를 방지하는 보호 기술)』, 『Data Recovery Tips & Solutions: Windows, Linux, and BSD(데이터 복구 팁 & 솔루션: 다양한 관점에서 보는 윈도우)』 등의 저서, 그리고 리눅스, BSD 해킹, 디스어셈블링, 코드 최적화 등과 관련한 다양한 기고문을 발표했다. 주로 컴파일러 개발, 최적화 기술, 보안 메커니즘 연구, 실시간 OS 커널 개발, 소프트웨어 보호 메커니즘, 안티 바이러스 프로그램 개발과 관련된 보안 및 시스템 프로그래밍을 주로 다룬다.

엘다드 에일람 (Eldad Eilam)

리버스 엔지니어링 분야의 컨설턴트로서 고객에게 운영체제와 소프트웨어 리버스 엔지니어링의 전문 서비스를 제공한다. 수년간 개선되고 진일보된 리버스 엔지니어링 기술을 개발하려고 노력하는 중이다.

옮긴이 소개

서준석

(주)한국정보보호교육센터에서 교육 관련 사업 관리 및 콘텐츠 연구를 수행했다. 온라인 보안 기술 커뮤니티인 보안프로젝트에서는 메타스플로잇 분석, 취약점 분석 부문 연구를 담당하고 있다. 다양한 시스템에 존재하는 취약점 연구에 관심이 있으며 최근에는 커널 시스템 분석에 초점을 맞춰 연구를 수행 중이다. 현재 고려대학교 정보보호대학원에 진학을 앞두고 있다. 『Nmap NSE를 활용한 보안 취약점 진단』(에이콘출판, 2013년)을 공저했다.

윤근용

시스템 프로그래머로서 시스템에 대한 다양한 분야에 관심이 많으며 특히 보안 분야에 대한 관심이 높아 다년간 보안 업무에 종사하고 있다. 바이러스 보안 업체를 거쳐 현재는 NHN에서 보안 관련 프로젝트를 수행 중이다. 에이콘출판사에서 펴낸 『웹 애플리케이션 해킹 대작전』, 『실전해킹 절대내공』, 『루트킷』을 번역했다.

목차

목차
  • 『해킹의 꽃 디스어셈블링 Hacker Disassembling Uncovered』
  • 1부 해킹 툴의 소개
  • 1장 해킹 툴 입문
    • 디버거
    • 디스어셈블러
    • 디컴파일러
    • 헥스 편집기
    • 언패커
    • 덤퍼
    • 리소스 편집기
    • 스파이
    • 감시 프로그램
    • 수정 프로그램
    • 보호 CD 복사기
  • 2장 유닉스용 해킹 툴
    • 디버거
    • 디스어셈블러
    • 스파이
    • 헥스 편집기
    • 덤퍼
    • 자동화된 보호 툴
  • 3장 디버거 에뮬레이션과 에뮬레이터
    • 에뮬레이터 소개
    • 역사적 개요
    • 대표적인 에뮬레이터
    • 에뮬레이터 선택
  • 4장 어셈블러 소개
    • 어셈블리어의 철학
    • C 예제로 어셈블리 개념 설명
    • 작업공간으로서 어셈블리 삽입
    • 사용 가능한 툴
    • 어셈블리 번역기의 개요와 비교
  • 2부 기본 해킹 기술
  • 5장 기본 해킹 기술 익히기
    • 비밀 키 유형에 따른 보호 메커니즘 분류
    • 보호 강도
    • 상용 솔루션의 단점
    • 사용 기술의 구현 에러
    • 심각한 결과를 야기하는 사소한 오류의 정리
  • 6장 시작 준비
    • 보호 기술 제작과 크랙
    • 디스어셈블러 익히기
    • 실전 크랙 예제
    • 정리
  • 7장 애플리케이션 디버깅 익히기
    • 디버깅 소개
    • 디스어셈블러와 디버거를 같이 사용
    • API 함수에 브레이크 포인트 설정
    • 메시지에 브레이크 포인트 설정
    • 데이터에 브레이크 포인트 설정
    • 스택 역추적
    • DLL 디버깅
    • 정리
  • 8장 유닉스와 리눅스 환경에서의 디버깅 특성
    • GDB 기반의 Ptrace
    • GDB에서 바이너리 파일 디버깅
  • 9장 Linice로 수행하는 커널 디버깅의 기초
    • 시스템 요구 사항
    • Linice 컴파일과 설정
    • 시스템 부팅과 디버거 실행
    • Linice로 작업할 때 지켜야 할 기본 원칙
    • 정리
  • 10장 고급 디버깅 주제
    • 소프트아이스를 로그 수집기로 사용
    • 무작위 브레이크 포인트로 해킹 트릭 사용
    • 범위 설정을 통한 크래킹
    • 정리
  • 3부 고급 디스어셈블링 기술
  • 11장 32비트 PE 파일 디스어셈블링
    • 다양한 실행 환경에서 PE 파일 구조의 특징
    • 일반적인 개념과 PE 파일의 요구 사항
    • PE 파일 구조
    • PE 파일에 코드를 삽입하거나 제거하는 기술
    • 정리
  • 12장 리눅스와 BSD에서 ELF 파일 디스어셈블링
    • 필요한 도구
    • ELF 파일 구조
    • ELF 파일에 외부 코드 삽입
    • 리눅스에서 간단한 크랙미 프로그램을 디스어셈블링
    • 정리
  • 13장 x86-64 아키텍처에서 수행하는 디스어셈블링
    • 소개
    • 필요한 도구
    • x86-64 아키텍처의 개요
    • 64비트 모드로 전환
    • x86-64 환경에서 만드는 ‘Hello, World’ 프로그램
    • 정리
  • 14장 리눅스 커널 디스어셈블링과 해킹
    • 디스어셈블링 리눅스 커널
    • 커널 해킹의 비밀
  • 15장 고급 패칭 기법
    • 온라인 패칭의 비밀과 트릭
    • 클라이언트 프로그램을 크래킹하는 잘 알려지지 않은 방법
    • 윈도우 NT/2000/XP 커널 핵
    • BSOD 이후의 세계가 존재하는가?
    • 참고 사이트
    • 정리
  • 16장 기타 형식의 파일 디스어셈블링
    • PDF 파일 디스어셈블링
    • 정리
  • 4부 실제 코드 연구
  • 17장 윈도우에서의 숨바꼭질
    • 윈도우 환경을 위한 안티디버깅 기법
    • 윈도우 환경에서 사용되는 스텔스 기법
    • 정리
  • 18장 패커 극복법
    • 예비 분석
    • 언패킹과 대체 방안
    • 언패킹 알고리즘
    • 오리지널 진입점 검색
    • 보호된 애플리케이션을 덤프
    • 정리
  • 19장 난독화 극복법
    • 난독화 도구의 작동 원리
    • 난독화된 프로그램을 크랙하는 방법
    • 블랙박스 접근법
    • 가상머신 지하 감옥
    • 정리
  • 20장 리눅스와 BSD에서의 패커 극복법
    • 패커가 성능에 미치는 영향
    • UPX
    • Burneye
    • Shiva
    • 패커 비교
    • 정리
  • 21장 악성코드 디버깅과 디스어셈블링
    • 디버거를 활용한 방첩 활동
    • 공격 코드 감사와 디스어셈블링
    • 참고 자료
    • 정리
  • 찾아보기
  • 『리버싱』
  • 1부 리버싱 101
  • 1장 기초
    • 리버스 엔지니어링
    • 소프트웨어 리버스 엔지니어링: 리버싱
    • 리버싱 적용
      • 보안 관련 리버싱
        • 악성코드 소프트웨어
        • 암호 알고리즘 리버싱
        • 디지털 저작권 관리
        • 프로그램 바이너리 감사
      • 소프트웨어 개발에서의 리버싱
        • 소프트웨어 간의 상호 운용
        • 경쟁 제품 분석
        • 소프트웨어의 품질과 안정성 측정
    • 로우레벨 소프트웨어
      • 어셈블리 언어
      • 컴파일러
      • 가상 머신과 바이트 코드
      • 운영체제
    • 리버싱 절차
      • 시스템 레벨 리버싱
      • 코드 레벨 리버싱
    • 사용 툴
      • 시스템 모니터링 툴
      • 디스어셈블러
      • 디버거
      • 디컴파일러
    • 리버싱은 합법적인 작업인가
      • 상호 운용성
      • 경쟁
      • 저작권법
      • 영업 비밀과 특허권
      • 디지털 밀레니엄 저작권법
      • DMCA 사례
      • 사용권 계약
    • 예제 코드와 툴
    • 정리
  • 2장 로우레벨 소프트웨어
    • 하이레벨 관점
      • 프로그램 구조
        • 모듈
        • 공통 구성 요소
      • 데이터 처리
        • 변수
        • 사용자 정의 데이터 구조체
        • 리스트
      • 제어 흐름
      • 하이레벨 언어
        • C
        • C++
        • 자바
        • C#
    • 로우레벨 관점
      • 로우레벨 데이터 처리
        • 레지스터
        • 스택
        • 실행 데이터 섹션
      • 제어 흐름
    • 어셈블리 언어 입문
      • 레지스터
      • 플래그
      • 명령 포맷
      • 기본 명령
        • 데이터 이동
        • 산술 연산
        • 비교 연산
        • 조건 분기
        • 함수 호출
      • 코드 예
    • 컴파일러 기초
      • 컴파일러란
      • 컴파일러 아키텍처
        • 프런트엔드
        • 중간 표현
        • 최적화기
        • 백엔드
      • 리스팅 파일
      • 사용 컴파일러
    • 실행 환경
      • 소프트웨어 실행 환경(가상 머신)
        • 바이트 코드
        • 인터프리터
        • Just-in-Time 컴파일러
        • 리버싱 전략
      • 최신 프로세서에서의 하드웨어 실행 환경
        • Intel NetBurst
        • μops(Micro-Ops)
        • 파이프라인
        • 분기 예측
    • 정리
  • 3장 윈도우 기초
    • 컴포넌트와 기본 아키텍처
      • 간략한 역사
      • 특징
      • 지원 하드웨어
    • 메모리 관리
      • 가상 메모리와 페이징
        • 페이징
        • 페이지 폴트
      • 워킹 셋
      • 커널 메모리와 유저 메모리
      • 커널 모드 공간
      • 섹션 객체
      • VAD 트리
      • 유저 모드 메모리 할당
      • 메모리 관리 API
    • 객체와 핸들
      • 네임드 객체
    • 프로세스와 스레드
      • 프로세스
      • 스레드
      • 컨텍스트 스위칭
      • 동기화 객체
      • 프로세스 초기화 과정
    • 애플리케이션 프로그래밍 인터페이스
      • Win32 API
      • 네이티브 API
      • 시스템 콜 메커니즘
    • 실행 포맷
      • 기본 개념
      • 이미지 섹션
      • 섹션 정렬
      • 동적 링크 라이브러리
      • 헤더
      • 임포트와 익스포트
      • 디렉터리
    • 입력과 출력
      • I/O 시스템
      • Win32 서브시스템
        • 객체 관리자
    • 구조화된 예외 처리
    • 정리
  • 4장 리버싱 툴
    • 다양한 리버싱 방법
      • 오프라인 코드 분석(Dead-Listing)
      • 라이브 코드 분석
    • 디스어셈블러
      • IDA Pro
    • ILDasm
  • 디버거
    • 유저 모드 디버거
      • OllyDbg
      • WinDbg를 이용한 유저 모드 디버깅
      • IDA Pro
      • PEBrowse Professional Interactive
    • 커널 모드 디버거
      • WinDbg를 이용한 커널 모드 디버깅
      • Numega SoftICE
      • 가상 머신에서의 커널 디버깅
  • 디컴파일러
  • 시스템 모니터링 툴
  • 패치 툴
    • Hex Workshop
  • 기타 리버싱 툴
    • 실행 이미지 덤프 툴
      • DUMPBIN
      • PEView
      • PEBrowse Professional
  • 정리
  • 2부 리버싱 응용
  • 5장 리버싱 실전
    • 리버싱과 상호운용성
    • 기본 원칙
    • 문서화되지 않은 API를 찾는 방법
      • 찾고자 하는 것
    • 사례 연구: NTDLL.DLL의 Generic Table API
      • RtlInitializeGenericTable
      • RtlNumberGenericTableElements
      • RtlIsGenericTableEmpty
      • RtlGetElementGenericTable
        • 셋업과 초기화
        • 로직과 구조
        • 검색 루프 1
        • 검색 루프 2
        • 검색 루프 3
        • 검색 루프 4
        • 소스코드 추출
      • RtlInsertElementGenericTable
        • RtlLocateNodeGenericTable
        • RtlRealInsertElementWorker
        • Splay 트리
      • RtlLookupElementGenericTable
      • RtlDeleteElementGenericTable
      • 분석한 내용 종합
    • 정리
  • 6장 파일 포맷 분석
    • Cryptex
    • Cryptex 사용
    • Cryptex 리버싱
    • 패스워드 검증 과정
      • “Bad Password” 메시지 잡아내기
      • 패스워드 변환 알고리즘
      • 패스워드 해싱
    • 디렉터리 구조
      • 디렉터리 처리 코드 분석
      • 파일 엔트리 분석
    • 디렉터리 구조 덤프
    • 파일 추출 과정
      • 파일 목록 검색
      • 파일 복호화
      • 부동소수점 연산
      • 복호화 루프
      • 해시 값 검증
    • 정리
    • 좀 더 자세히
    • 결론
  • 7장 프로그램 바이너리 감사
    • 문제점 정의
    • 보안 취약점
      • 스택 오버플로우
        • 간단한 스택 보안 취약점
        • 내부 구현
        • 스택 검사
        • 비실행 가능 메모리
      • 힙 오버플로우
      • 문자열 필터
      • 정수 오버플로우
        • 사용자 입력 정수에 대한 산술 연산
      • 형 변환 에러
    • 사례: IIS 인덱싱 서비스 보안 취약점
      • CVariableSet::AddExtensionControlBlock
      • DecodeURLEscapes
    • 정리
  • 8장 악성코드 리버싱
    • 악성코드의 종류
      • 바이러스
      • 트로이 목마
      • 백도어
      • 모바일 코드
      • 애드웨어/스파이웨어
    • 스틱키 소프트웨어
    • 미래의 악성코드
      • 정보 탈취 웜
      • 바이오스/펌웨어 악성코드 331
    • 악성코드의 목적
    • 악성코드 취약점
    • 다형성
    • 변종
    • 안전한 리버싱 환경 구축
    • Backdoor.Hacarmy.D
      • 실행 파일 언패킹
      • 최초 실행
      • 설치
      • 네트워크 연결
      • 서버에 연결
      • 채널에 접속
      • 백도어와 통신
      • SOCKS4 서버 실행
      • 자체 제거
    • Backdoor.Hacarmy.D: 명령 레퍼런스
    • 정리
  • 3부 크래킹
  • 9장 저작권 침해와 불법 복사 방지
    • 저작권
    • 사회적 측면
    • 소프트웨어 저작권 침해
      • 문제 정의
      • 보안 결함
      • 필요 조건
      • 이론적으로 크랙이 불가능한 모델
    • 보호 유형
      • 매체 기반 보호
      • 시리얼 번호
      • 질의 응답과 온라인 인증
      • 하드웨어 기반의 보호
      • 서비스로서의 소프트웨어
    • 진보된 보호 개념
      • 크립토 프로세서
    • 디지털 저작권 관리
      • DRM 모델
        • 윈도우 미디어 저작권 관리자
        • 시큐어 오디오 패스
    • 워터 마크
    • 신뢰 컴퓨팅
    • 복사 방지 기술 공격
    • 정리
  • 10장 안티 리버싱 기술
    • 안티 리버싱이 필요한 이유
    • 기본적인 안티 리버싱 방법
    • 심볼 정보 제거
    • 코드 암호화
    • 안티 디버거 기술
      • 디버거 기본
      • IsDebuggerPresent API
      • SystemKernelDebuggerInformation
      • 싱글 스텝 인터럽트를 이용한 SoftICE 탐지
      • 트랩 플래그
      • 코드 체크섬
    • 안티 디스어셈블러
      • 선형 스윕 디스어셈블러
      • Recursive Traversal 디스어셈블러
      • 적용
    • 코드 난독화
    • 제어 흐름 변환
      • Opaque Predicates
      • 안티 디컴파일러
      • Table Interpretation
      • 인라인닝과 아웃라이닝
      • 인터리빙 코드
      • 순서 변환
    • 데이터 변환
      • 변수 인코딩
      • 배열 재구성
    • 정리
  • 11장 보호 기술 파괴
    • 패치
    • Keygen
    • 키 생성 알고리즘 추출
    • 고급 크래킹: Defender
      • Defender의 초기화 루틴 리버싱
      • 복호화된 코드 분석
      • 사라진 SoftICE
      • 스레드 리버싱
      • “Killer” 스레드 무력화
      • KERNEL32.DLL 로딩
      • 함수 재암호화
      • 엔트리 포인트로 다시 돌아가서
      • 프로그램 파라미터 파싱
      • 사용자 이름 처리
      • 사용자 정보 검증
      • 코드 복호화
      • Defender에 대한 무작위 대입
    • Defender의 보호 기술
      • 함수 레벨의 암호화
        • 상대적으로 강력한 암호 블록 체인
        • 재 암호화
      • 애플리케이션/운영체제와의 인터페이스 난독화
      • 프로세서 타임 스탬프 검증 스레드
      • 실행 시에 복호화 키 생성
        • 상호 의존 키
        • 사용자 입력 기반의 복호화 키
      • 인라이닝
    • 정리
  • 4부 디스어셈블리 너머
  • 12장 닷넷 리버싱
    • 기반 지식
    • 닷넷 기본
      • 매니지드 코드
      • 닷넷 프로그래밍 언어
      • 공통 타입 시스템
    • 중간 언어
      • 평가 스택
      • 활성화 레코드
      • IL 명령
      • IL 코드 샘플
        • Counting Items
        • 링크드 리스트 샘플
    • 디컴파일러
    • 난독기
      • 심볼 이름 변경
      • 제어 흐름 변경
      • 디컴파일과 디스어셈블리 차단
    • 난독화된 코드 리버싱
      • XenoCode
      • Preemptive Solutions의 DotFuscator
      • Remotesoft 난독기와 링커
      • Remotesoft Protector
      • 어셈블리 프리컴파일
      • 어셈블리 암호화
    • 정리
  • 13장 디컴파일
    • 네이티브 코드 디컴파일
    • 전형적인 디컴파일러의 구조
    • 중간 표현
      • 표현식과 표현식 트리
      • 제어 흐름 그래프
    • 프론트엔드
      • 의미 분석
      • 제어 흐름 그래프 생성
    • 코드 분석
      • 데이터 흐름 분석
        • 단일 정적 할당
        • 데이터 전달
        • 레지스터 변수 구별
        • 데이터 타입 전달
      • 타입 분석
        • 기본 데이터 타입
        • 복잡한 데이터 타입
      • 제어 흐름 분석
      • 라이브러리 함수의 구별
    • 백엔드
    • 실제 IA-32 디컴파일러
    • 정리
  • 부록 A 코드 구조 해석
  • 부록 B 컴파일된 연산의 이해
  • 부록 C 프로그램 데이터 해석
  • 부록 D 인용문
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안