구매문의 및 도서상담은 031-944-3966(매장)으로 문의해주세요.
매장전집은 전화 혹은 매장방문만 구입 가능합니다.
지은이 : 진명조
NHN Cloud 시스템 엔지니어. 번역한 책으로는 『대규모 서비스를 지탱하는 기술』, 『서버/인프라를 지탱하는 기술』, 『클라우드의 충격』, 『서버/인프라 엔지니어를 위한 DevOps』, 『프로세서를 지탱하는 기술』, 『파이썬 쉽게, 더 쉽게』(이상 제이펍), 『인프라 엔지니어의 교과서: 시스템 구축과 관리편』, 『텐서플로로 시작하는 딥러닝』, 『와이어샤크를 이용한 패킷 캡처 철저 입문』(이상 길벗), 『DEBUG HACKS』, 『리눅스 커널 HACKS』(이상 와우북스), 『Binary Hacks: 해커가 전수하는 테크닉 100선』, 『입문자를 위한 루비』(이상 ITC), 『데이터가 보인다』(비제이퍼블릭), 『C언어로 배우는 알고리즘 입문』(한빛미디어) 등이 있습니다.
지은이 : 가와타 아키라
특정 용도의 칩을 위한 컴파일러와 런타임 개발에 종사하는 소프트웨어 엔지니어. 때때로 핵(Hack)이 가미된 소프트웨어 유지보수를 진행합니다. 교토대학교 정보학 석사로 대학원에서는 형식 이론을 연구했습니다. 일본 정보처리추진기구(IPA)의 2018년도 인재발굴 육성 사업 프로젝트에서 검색엔진을 개발한 경험이 있습니다.
지은이 : 고이케 유키
일본 컴퓨터 보안 서비스 제공업체 ㈜ GMO Cybersecurity by Ierae의 집행 임원. 청춘을 바쳐 CTF(Capture The Flag)에 몰입했으며 권위 있는 해킹 대회인 DEFCON CTF 결승에 최연소로 참가한 기록 등을 보유하고 있습니다. 그 시절 취미는 glibc의 소스 코드를 읽는 것이었으며 좋아하는 함수는 strfry였습니다. 쓰쿠바대학교 정보학군 정보과학류를 조기 졸업했습니다. 대학 시절에는 경쟁 프로그래밍(Competitive programming)을 했으며 ICPC 국제 대학 대항 프로그래밍 콘테스트 세계 대회에 두 차례 출전했습니다.
지은이 : 와타나베 게이치
외국계 IT 기업에서 OS 개발에 참여 중인 소프트웨어 엔지니어. 가상화 기술 관련 팀에서 테크 리드를 맡고 있습니다. 도쿄대학교 정보이공학 석사로 대학원에서는 함수형 프로그램 검증을 연구했고 한때는 OCaml로 C 컴파일러를 만들거나 C++의 constexpr로 컴파일 시점 C 컴파일러를 만들기도 했습니다. 프로그램의 정당성 증명 기술이나 프로그램을 격리하는 기술 등 ‘안전한 계산’을 실현하는 방법에 관심이 있습니다.
지은이 : 사에키 다카야
OS와 VM 개발에 종사하는 소프트웨어 엔지니어. 도쿄대학 정보이공학 석사이며 가상화를 응용한 OS 변환 계층 개발 프로젝트를 통해 2016년도 미탐 슈퍼 크리에이터로 인정받았습니다. RPG 만들기 툴로 RPG를 개발하는 것부터 시작했지만 RPG는 완성되지 않았고 어느새 프로그래밍을 시작하기에 이르렀습니다. ~/dev에 축적된 미완성 프로그램 수에 자신 있습니다.
지은이 : 아라타 미즈키
수학과 출신의 소프트웨어 엔지니어. 회사에서는 파이썬 코드를 관리하지만 취미로 하스켈(Haskell) 컴파일러를 만지거나 Standard ML 컴파일러를 작성하고 있습니다. 수학과 프로그래밍이 교차하는 지점을 좋아합니다. 수치 계산에도 손을 대보려다 길을 잘못 들어 부동소수점의 늪에 빠지고 말았습니다.
01장 인트로덕션
_#01 미지의 바이너리 읽기
_#02 어셈블리 입문
_#03 다시 Hello, World!
02장 ELF Hack
_#04 ELF 파일의 세그먼트
_#05 ld-linux.so의 환경 변수 이용하기
_#06 공유 라이브러리를 검색할 디렉터리
_#07 dlopen에 의한 라이브러리 실행 시 로드와 응용 테크닉
_#08 IFUNC를 사용하여 실행 시 구현 전환하기
_#09 ELF의 해시 테이블 구조
_#10 TLS의 구조 이해하기
_#11 코어 파일 읽기
_#12 보조 벡터를 사용하여 프로세스에 정보 넘기기
_#13 정적 링크와 ASLR의 관계
_#14 sold를 사용하여 의존하는 공유 라이브러리 나중에 링크하기
_#15 glibc를 Hack하기
_#16 patchelf로 ELF 바이너리의 필드 수정하기
_#17 LIEF를 사용하여 ELF 바이너리 수정하기
_#18 PT_NOTE를 이용한 바이너리 패치
_#19 DWARF Expression 실행하기: DWARF I
_#20 DWARF로 수식 평가하기: DWARF II
_#21 DWARF에서 표준 출력으로 출력하기: DWARF III
03장 OS Hack
_#22 실행 가능 파일과 그 실행 방법
_#23 리눅스에서 Huge Page 사용하기
_#24 CRIU를 사용하여 프로세스 저장 및 재개하기
_#25 procfs/sysfs의 기본 파악하기
_#26 용도에 맞는 파일 시스템 선택하기
_#27 특정 프로세스에서 보이는 파일 교체하기
_#28 FUSE를 사용하여 파일 시스템 직접 만들기
_#29 특수한 메모리 영역 vsyscall과 vDSO
_#30 KVM을 사용하여 하이퍼바이저 생성하기
_#31 리눅스 커널 Hack 입문
_#32 UniKernel: 애플리케이션을 OS로 구동하기
_#33 UEFI와 Secure Boot
_#34 GNU 툴체인으로 기계어 파일 출력하기
_#35 _#30 QEMU에서 동작하는 펌웨어 만들기
_#36 크롬북에서 직접 만든 펌웨어 실행하기
04장 컨테이너 Hack
_#37 리눅스 네임스페이스로 프로세스 분리하기
_#38 cgroup으로 프로세스의 리소스 관리하기
_#39 chroot/pivot_root로 루트 디렉터리 전환하기
_#40 일반 유저가 root처럼 행동하는 방법 3가지
_#41 rootless 컨테이너 사용법과 구조
_#42 유저 네임스페이스 내에서 각종 네임스페이스 생성하기
_#43 /proc/PID/root에서 컨테이너 내의 파일에 직접 접근하기
05장 디버거, 트레이서 Hack
_#44 gdb Tips
_#45 rr을 사용하여 Record and Replay 디버깅하기
_#46 새니타이저로 저수준 버그 발견하기: 새니타이저 I
_#47 Address Sanitizer의 구조: 새니타이저 II
_#48 리눅스 퍼포먼스 분석 입문
_#49 ftrace를 사용하여 커널 내에서 발생하는 일 트레이스하기
_#50 eBPF를 사용한 트레이싱 입문
_#51 DBI로 실행 명령을 트레이스 및 변경하기
_#52 Intel PT를 사용하여 고속으로 트레이스 얻기
06장 보안 Hack
_#53 seccomp로 프로세스에서 사용할 수 있는 시스템 콜 제한하기
_#54 Landlock으로 비특권 프로세스 샌드박스 만들기
_#55 ASLR: 잘못된 메모리 접근에 대한 보안 메커니즘
_#56 ROP: 메모리 손상을 악용하는 표준적인 공격 기법
_#57 Intel CET: ROP에 대한 보안 메커니즘
_#58 Clang CFI를 이용하여 잘못된 제어 흐름 감지하기
_#59 스택 프레임의 변화 관찰하기
_#60 퍼징의 개요와 분류
_#61 그레이박스 퍼징으로 버그 및 취약성 찾기
_#62 LibAFL로 퍼저 구현하기
_#63 LibAFL로 구현한 퍼저 개선하기
_#64 angr로 심벌릭 실행하기
_#65 BadUSB: 사용자를 속이는 USB 디바이스
_#66 Row Hammer: DRAM의 취약성에 대한 공격 기법
_#67 Meltdown과 Spectre: CPU의 취약성에 대한 공격 기법
07장 수치 표현과 데이터 처리 Hack
_#68 정수 표현의 기초 지식
_#69 다양한 정수 표현
_#70 부동소수점 수의 비트열 표현 이해하기
_#71 부동소수점 예외
_#72 부동소수점 수의 반올림 방식 변경하기
_#73 부동소수점 환경을 다루는 코드에 대한 컴파일러 최적화와의 싸움
_#74 NaN 깊이 파헤치기
_#75 부동소수점 수의 아키텍처별 차이 다루기
_#76 SIMD 명령 세트의 기초 지식
_#77 SIMD 병렬화 코드 작성하기
_#78 SIMD 명령을 사용한 여러 가지 테크닉
08장 언어 처리계 Hack
_#79 NaN을 활용하여 64비트 값에 태그 붙인 값 저장하기
_#80 ucontext.h로 코루틴 구현하기
_#81 Profile Guided Optimization
_#82 LD_PRELOAD를 사용하여 메모리 할당자 교체하기
_#83 ABI와 호출 규약 이해하기
_#84 libffi로 실행 시까지 시그니처를 알 수 없는 함수 호출하기
_#85 실행 시 기계어 생성하기
_#86 GCC/Clang의 내장 함수 이용하기
09장 그 밖의 Hack
_#87 용어집
_#88 Binary Hacks에 필요한 도구
_#89 문헌 안내
도서 DB 제공 - 알라딘 인터넷서점 (www.aladin.co.kr)