본문 바로가기

추천 검색어

실시간 인기 검색어

모두를 위한 리버싱 지침서

리버싱을 통한 어셈블리 언어의 이해 | 2 판
에이콘 해킹 보안 시리즈
데니스 유리체프 저자(글) · 윤우빈 번역
에이콘출판 · 2021년 03월 30일 출시
가장 최근에 출시된 개정판입니다. 구판보기
10.0 (2개의 리뷰)
추천해요 (100%의 구매자)
  • 모두를 위한 리버싱 지침서 대표 이미지
    모두를 위한 리버싱 지침서 대표 이미지
  • A4
    사이즈 비교
    210x297
    187x236
    단위 : mm
MD의 선택 무료배송 사은품 이벤트 소득공제
10% 62,100 69,000
적립/혜택
3,450P

기본적립

5% 적립 3,450P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 3,450P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서 / 외국도서
도서만 1만 원 이상 구매 시 무료배송
도서 + 잡지 / 만화 / :K컬렉션을 함께 1만 원 이상 구매 시 무료배송

1만원 미만 시 2,000원 배송비 부과

잡지 / 만화 / :K컬렉션 (교보배송)
각각 구매하거나 함께 2만 원 이상 구매 시 무료배송

2만원 미만 시 2,000원 배송비 부과

해외주문 서양도서 / 해외주문 일본도서 (교보배송)
각각 구매하거나 함께 1만 원 이상 구매 시 무료배송

1만원 미만 시 2,000원 배송비 부과

업체배송 상품 (전집, GIFT, 음반 / DVD 등)
중고장터 상품
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
주문정보를 불러오는 중입니다.
서울시 종로구 종로 1

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

패키지

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

개발자가 작성한 소스코드가 어떻게 컴파일되는지 이해하려면 컴파일러가 만들어낸 어셈블리 코드를 분석하는 방법과 컴파일 과정에서 최적화 옵션이 어떤 영향을 주는지, 소스코드상의 프로그래밍 요소(배열, 구조체, 포인터 등)와 다양한 프로그래밍 로직에 대한 어셈블리 코드를 설명한다. 또한 동일 소스코드에 대해서 x86 계열의 CPU뿐만 아니라 ARM, MIPS에서 만들어지는 어셈블리 코드를 비교 분석해 다양한 어셈블리 코드를 이해할 수 있는 능력을 기를 수 있다. 이 책은 진정한 리버스 엔지니어라면 반드시 읽어야할 지침서다.

작가정보

저자(글) 데니스 유리체프

데니스 유리체프(Dennis Yurichev)
우크라이나 출신의 숙련된 리버스 엔지니어이자 프로그래머로, 오라클 RDBMS 보안 연구가로 알려져 있다. VMware에 일부가 된 벤처 기업 블루레인(Bluelane)에서 보안 연구가로 일한 바 있다.

윤우빈
기존의 IT 기술과 새로 만들어지고 있는 최신 기술을 보안이라는 관점에서 이해하고 새로운 기술, 비즈니스 영역의 새로운 보안 위협과 그에 대한 대응 기술을 고민하며, 에이콘출판사를 통해 다양한 보안 관련 지식을 공유하고자 노력하고 있다. 지금도 여전히 새로운 분야에 대한 보안 기술 연구와 다양한 보안 기술 개발을 위해 진땀 흘리고 있다.

작가의 말

어셈블리어를 앞으로 쓸 일이 전혀 없더라도 어셈블리어를 이해하면 프로그래밍에 많은 도움이 된다고 말하는 사람들이 있다. 이 말은 전적으로 맞는 말이다. 하지만 이는 엄청난 열정을 갖고 있는 프로그래머에게 해당되며, 처음에는 그렇게 할 필요까지는 없다. 또한 독학으로 공부하는 사람들(저자를 포함해서)은 어려운 문제에 너무 매달려 쉬운 문제를 건너뛰는 경향이 있다. 그것은 매우 잘못된 방법이다. 스포츠나 음악과 비교해 생각해보면 운동을 할 때 처음부터 100킬로그램부터 시작하거나 바이올린 연주를 배우고자 파가니니의 곡부터 시작하는 사람은 없기 때문이다. 마음속으로 문제의 해결책을 제시할 수 있을 때만 문제 해결을 위한 시도가 가능하다. 연구라는 것은 많은 질문과 때로는 그 질문에 대한 대답으로 구성된다고 생각한다. 해결하고자 하는 근본적인 질문의 특별한 경우를 나타내는 작은 질문들을 반복적으로 해보는 방법을 익혀야 한다. 어떤 분야에 대한 탐험을 시작한다면 처음에는 그 분야에 대한 직관을 얻는 것으로 첫걸음을 디뎌야 한다. 일반적인 상황의 특정 부분을 완전히 이해하고자 작은 부분들을 많이 살펴보기 바란다. 그렇게 함으로써 어떤 것이 사실이고 어떤 것이 그렇지 않다는 것을 많이 배우게 되며, 유익한 방향과 피해야 할 방향에 대한 가이드를 얻을 수 있다. 결국 당신의 뇌는 더 큰 단계에 이를 수 있는 방법을 배우게 될 것이고, 커다란 문제 해결을 위한 하나의 큰 걸음을 내디딜 수 있게 된다. 하지만 거기서 멈춰서는 안 된다. 그 순간 당신이 접한 큰 문제를 제대로 이해한 세상에서 몇 안 되는 사람 중 하나가 될 것이다. 따라서 당신의 뇌가 지금 상상할 수 있는 것과 동일하거나 유사한 방법으로 문제의 주변에 무엇이 진실인지를 발견해야만 한다. 분석 결과가 ‘자연적인 경계’(복잡한 변수의 함수를 더 이상 분석할 필요가 없을 때까지의 상태와 유사한 의미)에 이를 때까지 진행해야 한다.

목차

  • 1장. 코드 패턴
    1.1 방법론
    1.2 몇 가지 기본 사항
    1.2.1 CPU에 대한 간단한 소개
    1.2.2 수 체계
    1.2.3 다른 기수로의 변환
    1.3 빈 함수
    1.3.1 x86
    1.3.2 ARM
    1.3.3 MIPS
    1.3.4 실제로 사용되는 빈 함수
    1.4 리턴 값
    1.4.1 x86
    1.4.2 ARM
    1.4.3 MIPS
    1.5 Hello, world!
    1.5.1 x86
    1.5.2 x86-64
    1.5.3 GCC: 한 가지 더
    1.5.4 ARM
    1.5.5 MIPS
    1.5.6 결론
    1.5.7 연습문제
    1.6 함수 프롤로그와 에필로그
    1.6.1 재귀
    1.7 스택
    1.7.1 스택이 거꾸로 자라는 이유
    1.7.2 스택의 용도
    1.7.3 전형적인 스택 레이아웃
    1.7.4 스택 노이즈
    1.7.5 연습문제
    1.8 여러 개의 인자를 취하는 printf()
    1.8.1 x86
    1.8.2 ARM
    1.8.3 MIPS
    1.8.4 결론
    1.8.5 부연 설명
    1.9 scanf()
    1.9.1 간단한 예
    1.9.2 흔히 하는 실수
    1.9.3 전역 변수
    1.9.4 scanf()
    1.9.5 연습문제
    1.10 전달된 인자에 접근
    1.10.1 x86
    1.10.2 x64
    1.10.3 ARM
    1.10.4 MIPS
    1.11 리턴 결과 더 알아보기
    1.11.1 void를 리턴하는 함수의 결과 사용
    1.11.2 함수의 결과를 사용하지 않는 경우
    1.11.3 구조체 리턴
    1.12 포인터
    1.12.1 리턴 값
    1.12.2 입력값 교환
    1.13 GOTO 연산
    1.13.1 데드 코드
    1.13.2 연습
    1.14 조건부 점프
    1.14.1 간단한 예
    1.14.2 절댓값 계산
    1.14.3 3항 연산자
    1.14.4 최댓값, 최솟값 구하기
    1.14.5 결론
    1.14.6 연습
    1.15 switch()/case/default
    1.15.1 경우의 수가 적은 switch()문
    1.15.2 경우의 수가 많은 switch()문
    1.15.3 한 블록에 여러 경우가 존재할 때
    1.15.4 폴쓰루
    1.15.5 연습
    1.16 루프
    1.16.1 간단한 예
    1.16.2 메모리 블록 복사 루틴
    1.16.3 조건 검사
    1.16.4 결론
    1.16.5 연습
    1.17 간단한 C 문자열 처리
    1.17.1 strlen()
    1.17.2 문자열의 경계
    1.18 산술 연산 명령 치환
    1.18.1 곱셈
    1.18.2 나눗셈
    1.18.3 연습
    1.19 부동소수점 장치
    1.19.1 IEEE 754
    1.19.2 x86
    1.19.3 ARM, MIPS, x86/x64 SIMD
    1.19.4 C/C++
    1.19.5 간단한 예제
    1.19.6 부동소수점 수를 인자로 전달
    1.19.7 비교 연산 예제
    1.19.8 어떤 상수 값
    1.19.9 복사
    1.19.10 스택과 계산기, 역폴란드 표기법
    1.19.11 왜 80비트인가?
    1.19.12 x64
    1.19.13 연습
    1.20 배열
    1.20.1 간단한 예
    1.20.2 버퍼 오버플로
    1.20.3 버퍼 오버플로에서 보호하는 방법
    1.20.4 배열 관련 내용 하나 더
    1.20.5 문자열에 대한 포인터 배열
    1.20.6 다차원 배열
    1.20.7 문자열 집합을 2차원 배열로 처리
    1.20.8 결론
    1.20.9 연습
    1.21 예: Angband 게임의 버그
    1.22 특정 비트 처리
    1.22.1 특정 비트 검사
    1.22.2 특정 비트의 설정과 해제
    1.22.3 시프트
    1.22.4 특정 비트의 설정과 해제: FPU 예
    1.22.5 1로 설정된 비트 수 세기
    1.22.6 결론
    1.22.7 연습
    1.23 의사 난수 생성기로서의 선형 합동 생성기
    1.23.1 x86
    1.23.2 x64
    1.23.3 32비트 ARM
    1.23.4 MIPS
    1.23.5 예제의 스레드 안전 버전
    1.24 구조체
    1.24.1 MSVC: SYSTEMTIME 예제
    1.24.2 malloc()을 이용한 구조체 할당
    1.24.3 유닉스: struct tm
    1.24.4 구조체에서 필드 패킹
    1.24.5 중첩된 구조체
    1.24.6 구조체에서의 비트 필드
    1.24.7 연습
    1.25 공용체
    1.25.1 의사 난수 생성기 예제
    1.25.2 머신 엡실론 계산
    1.25.3 FSCALE 명령어 교체
    1.25.4 빠른 제곱근 계산
    1.26 함수 포인터
    1.26.1 MSVC
    1.26.2 GCC
    1.26.3 함수 포인터의 위험성
    1.27 32비트 환경에서의 64비트 값
    1.27.1 64비트 값 리턴
    1.27.2 인자 전달, 덧셈, 뺄셈
    1.27.3 곱셈, 나눗셈
    1.27.4 우측 시프트
    1.27.5 32비트 값을 64비트로 변환
    1.28 SIMD
    1.28.1 벡터화
    1.28.2 SIMD strlen() 구현
    1.29 64비트
    1.29.1 x86-64
    1.29.2 ARM
    1.29.3 부동소수점 수
    1.29.4 64비트 아키텍처에 대한 비판
    1.30 SIMD를 이용한 부동소수점 수 처리
    1.30.1 간단한 예제
    1.30.2 부동소수점 수를 인자로 전달
    1.30.3 비교 예제
    1.30.4 머신 엡실론 계산: x64과 SIMD
    1.30.5 의사 난수 생성기 예제 다시 보기
    1.30.6 정리
    1.31 ARM 관련 세부 사항
    1.31.1 숫자 앞의 # 표시
    1.31.2 주소 지정 모드
    1.31.3 레지스터에 상수 로드
    1.31.4 ARM64에서의 재배치
    1.32 MIPS 관련 세부 사항
    1.32.1 32비트 상수를 레지스터에 로드
    1.32.2 MIPS에 대한 추가 자료


    2장. 중요한 기초 내용
    2.1 정수형 데이터 타입
    2.1.1 비트
    2.1.2 니블
    2.1.3 바이트
    2.1.4 와이드 문자
    2.1.5 부호 있는 정수와 부호 없는 정수
    2.1.6 워드
    2.1.7 주소 레지스터
    2.1.8 숫자
    2.2 부호 있는 수의 표현
    2.2.1 IMUL과 MUL 명령어
    2.2.2 2의 보수에 대한 추가적인 내용
    2.3 정수 오버플로
    2.4 AND
    2.4.1 값이 2n 경계에 있는지 확인
    2.4.2 KOI-8R 키릴 문자 인코딩
    2.5 빼기와 더하기를 위한 AND와 OR
    2.5.1 ZX Spectrum ROM 문자열
    2.6 XOR(exclusive OR)
    2.6.1 일상에서의 XOR 연산
    2.6.2 암호화
    2.6.3 RAID4
    2.6.4 XOR 스왑 알고리즘
    2.6.5 XOR 링크드 리스트
    2.6.6 조브리스트 해싱/타뷸레이션 해싱
    2.6.7 부연 설명
    2.6.8 MOV를 위한 AND/OR/XOR
    2.7 POPCNT
    2.8 엔디안
    2.8.1 빅엔디안
    2.8.2 리틀엔디안
    2.8.3 예제
    2.8.4 바이엔디안
    2.8.5 데이터 변환
    2.9 메모리
    2.10 CPU
    2.10.1 분기 예측기
    2.10.2 데이터 의존성
    2.11 해시 함수
    2.11.1 단방향 함수의 동작 방식


    3장. 좀 더 진보된 예제
    3.1 이중 부정
    3.2 strstr() 예제
    3.3 온도 변환
    3.3.1 정수 값
    3.3.2 부동소수점 수
    3.4 피보나치 수
    3.4.1 예제 #1
    3.4.2 예제 #2
    3.4.3 정리
    3.5 CRC32 계산 예제
    3.6 네트워크 주소 계산 예제
    3.6.1 calc_network_address()
    3.6.2 form_IP()
    3.6.3 print_as_IP()
    3.6.4 form_netmask(), set_bit()
    3.6.5 정리
    3.7 루프: 몇 가지 반복 지시자
    3.7.1 세 개의 반복 지시자
    3.7.2 두 개의 반복 지시자
    3.7.3 인텔 C++ 2011의 경우
    3.8 더프의 디바이스
    3.8.1 펼쳐진 루프를 사용해야 할까?
    3.9 곱하기를 이용한 나누기
    3.9.1 x86
    3.9.2 동작 방식
    3.9.3 ARM
    3.9.4 MIPS
    3.9.5 연습
    3.10 문자열을 숫자로 변환(atoi())
    3.10.1 간단한 예제
    3.10.2 좀 더 복잡한 예제
    3.10.3 연습
    3.11 인라인 함수
    3.11.1 문자열과 메모리 함수
    3.12 C99 restrict
    3.13 브랜치 없는 abs() 함수
    3.13.1 최적화를 수행한 GCC 4.9.1 x64
    3.13.2 최적화를 수행한 GCC 4.9 ARM64
    3.14 가변 함수
    3.14.1 산술 평균 계산
    3.14.2 vprintf() 함수
    3.14.3 Pin의 경우
    3.14.4 형식 문자열 공격
    3.15 문자열 트리밍
    3.15.1 x64: 최적화를 수행한 MSVC 2013
    3.15.2 x64: 최적화를 수행하지 않은 GCC 4.9.1
    3.15.3 x64: 최적화를 수행한 GCC 4.9.1
    3.15.4 ARM64: 최적화를 수행하지 않은 GCC(Linaro) 4.9
    3.15.5 ARM64: 최적화를 수행한 GCC(Linaro) 4.9
    3.15.6 ARM: 최적화를 수행한 Keil 6/2013(ARM 모드)
    3.15.7 ARM: 최적화를 수행한 Keil 6/2013(Thumb 모드)
    3.15.8 MIPS
    3.16 toupper() 함수
    3.16.1 x64
    3.16.2 ARM
    3.16.3 비트 연산 이용
    3.16.4 정리
    3.17 난독화
    3.17.1 텍스트 문자열
    3.17.2 실행 코드
    3.17.3 가상 머신/의사 코드
    3.17.4 추가 내용
    3.17.5 연습
    3.18 C++
    3.18.1 클래스
    3.18.2 ostream
    3.18.3 참조
    3.18.4 STL
    3.18.5 메모리
    3.19 음수의 배열 인덱스
    3.19.1 끝에서부터 문자열 주소 지정
    3.19.2 끝에서부터 메모리 블록의 주소 지정
    3.19.3 인덱스가 1부터 시작하는 배열
    3.20 비트 연산을 이용해 12비트를 배열에 패킹(x64, ARM/ ARM64, MIPS)
    3.20.1 소개
    3.20.2 데이터 구조체
    3.20.3 알고리즘
    3.20.4 C/C++ 코드
    3.20.5 동작 방식
    3.20.6 x86-64에서 최적화를 수행한 GCC 4.8.2
    3.20.7 최적화를 수행한 Keil 5.05(Thumb 모드)
    3.20.8 최적화를 수행한 Keil 5.05(ARM 모드)
    3.20.9 (32비트 ARM) Thumb과 ARM 모드의 코드 밀도 비교
    3.20.10 ARM64에서 최적화를 수행한 GCC 4.9.3
    3.20.11 MIPS에서 최적화를 수행한 GCC 4.4.5
    3.20.12 실제 FAT12와의 차이점
    3.20.13 연습
    3.20.14 정리
    3.20.15 결론
    3.21 포인터에 대한 추가 내용
    3.21.1 포인터 대신 주소를 사용
    3.21.2 포인터로 값을 전달
    3.21.3 윈도우 커널에서의 포인터 어뷰징
    3.21.4 Null 포인터
    3.21.5 함수 인자로서의 배열
    3.21.6 함수에 대한 포인터
    3.21.7 객체 식별자로서의 포인터
    3.21.8 오라클 RDBMS와 C/C++를 위한 간단한 가비지 컬렉터
    3.22 루프 최적화
    3.22.1 이상한 루프 최적화
    3.22.2 또 다른 루프 최적화
    3.23 구조체에 대한 추가 내용
    3.23.1 가끔 C 구조체를 배열 대신 사용할 수 있다
    3.23.2 C 구조체에서 크기가 지정되지 않은 배열
    3.23.3 C 구조체의 버전
    3.23.4 ‘Block out’ 게임의 하이 스코어 파일과 직렬화
    3.24 memmove()와 memcpy()
    3.24.1 안티디버깅 트릭
    3.25 setjmp/longjmp
    3.26 또 다른 스택 트릭
    3.26.1 호출자의 인자/로컬 변수에 접근하기
    3.26.2 문자열 리턴
    3.27 OpenMP
    3.27.1 MSVC
    3.27.2 GCC
    3.28 또 다른 하이젠버그
    3.29 잊혀진 리턴
    3.30 윈도우 16비트
    3.30.1 예제 #1
    3.30.2 예제 #2
    3.30.3 예제 #3
    3.30.4 예제 #4
    3.30.5 예제 #5
    3.30.6 예제 #6


    4장. 자바
    4.1 자바
    4.1.1 소개
    4.1.2 값을 리턴
    4.1.3 간단한 계산 함수
    4.1.4 JVM 메모리 모텔
    4.1.5 간단한 함수 호출
    4.1.6 beep() 호출
    4.1.7 선형 합동 의사 난수 생성기
    4.1.8 조건 점프
    4.1.9 인자 전달
    4.1.10 비트필드
    4.1.11 루프
    4.1.12 switch()
    4.1.13 배열
    4.1.14 문자열
    4.1.15 예외
    4.1.16 클래스
    4.1.17 간단한 패치
    4.1.18 요약


    5장. 코드에서 중요하고 흥미로운 부분 찾아내기
    5.1 실행 파일 식별
    5.1.1 마이크로소프트 비주얼 C++
    5.1.2 GCC
    5.1.3 인텔 포트란
    5.1.4 와콤, 오픈와콤
    5.1.5 볼랜드
    5.1.6 기타 DLL
    5.2 외부와의 통신(함수 레벨)
    5.3 외부와의 통신(Win32)
    5.3.1 윈도우 API에서 자주 사용되는 함수
    5.3.2 트라이얼 기간 연장
    5.3.3 성가신 대화상자 제거
    5.3.4 트레이서: 특정 모듈의 모든 함수 인터셉트
    5.4 문자열
    5.4.1 텍스트 문자열
    5.4.2 바이너리에서 문자열 찾기
    5.4.3 에러/디버그 메시지
    5.4.4 의심스러운 매직 문자열
    5.5 assert() 호출
    5.6 상수
    5.6.1 매직 넘버
    5.6.2 특정 상수
    5.6.3 상수 검색
    5.7 특정 명령어 찾기
    5.8 의심스러운 코드 패턴
    5.8.1 XOR 명령어
    5.8.2 사람이 직접 작성한 어셈블리 코드
    5.9 트레이싱 중에 매직 넘버 사용
    5.10 루프
    5.10.1 몇 가지 바이너리 파일 패턴
    5.10.2 메모리 스냅샷 비교
    5.11 ISA 판단
    5.11.1 올바로 디스어셈블되지 않은 코드
    5.11.2 올바로 디스어셈블된 코드
    5.12 기타 내용
    5.12.1 일반적인 팁
    5.12.2 바이너리 코드에서의 함수 순서
    5.12.3 간단한 함수
    5.12.4 C++


    6장. 운영체제 관련
    6.1 인자 전달 방법(호출 규약)
    6.1.1 cdecl
    6.1.2 stdcall
    6.1.3 fastcall
    6.1.4 thiscall
    6.1.5 x86-64
    6.1.6 float과 double 타입 값 리턴
    6.1.7 인자 수정
    6.1.8 함수 인자에 대한 포인터 가져오기
    6.2 스레드 지역 저장소
    6.2.1 선형 합동 생성기 재검토
    6.3 시스템 콜(syscall-s)
    6.3.1 리눅스
    6.4 리눅스
    6.4.1 위치 독립적 코드
    6.4.2 리눅스에서의 LD_PRELOAD 트릭
    6.5 윈도우 NT
    6.5.1 CRT(win32)
    6.5.2 Win32 PE
    6.5.3 윈도우 SEH
    6.5.4 윈도우 NT: 크리티컬 섹션


    7장. 도구
    7.1 바이너리 분석
    7.1.1 디스어셈블러
    7.1.2 디컴파일러
    7.1.3 패치 비교
    7.2 라이브 분석
    7.2.1 디버거
    7.2.2 라이브러리 호출 추적
    7.2.3 시스템 콜 추적
    7.2.4 네트워크 스니핑
    7.2.5 Sysinternals
    7.2.6 Valgrind
    7.2.7 에뮬레이터
    7.3 기타 도구
    7.3.1 계산기
    7.4 그 외에 빠진 도구가 있을까?


    8장. 실전 예제
    8.1 작업 관리자 속이기(윈도우 비스타)
    8.1.1 LEA를 사용한 값 로딩
    8.2 Color Lines 게임 속이기
    8.3 지뢰 찾기(윈도우 XP)
    8.3.1 자동으로 배열의 주소 찾기
    8.3.2 연습문제
    8.4 윈도우 시계 해킹
    8.5 동글
    8.5.1 예제 #1: 맥OS Classic과 파워PC
    8.5.2 예제 #2: SCO OpenServer
    8.5.3 예제 #3: MS-DOS
    8.6 암호화된 데이터베이스 케이스 #1
    8.6.1 Base64와 엔트로피
    8.6.2 데이터 압축 여부 판단
    8.6.3 데이터 암호화 여부 판단
    8.6.4 CryptoPP
    8.6.5 CFB 모드
    8.6.6 초기화 벡터
    8.6.7 버퍼의 구조
    8.6.8 끝부분의 노이즈
    8.6.9 결론
    8.6.10 추가 내용: IV에 대한 무작위 대입 공격
    8.7 오버클로킹 Cointerra 비트코인 채굴기
    8.8 암호화된 간단한 실행 파일 분석
    8.8.1 추가로 고려할 수 있는 또 다른 아이디어
    8.9 SAP
    8.9.1 SAP 클라이언트 네트워크 트래픽 압축
    8.9.2 SAP 6.0 비밀번호 체크 함수
    8.10 오라클 RDBMS
    8.10.1 오라클 RDBMS의 V$VERSION 테이블
    8.10.2 오라클 RDBMS의 X$KSMLRU 테이블
    8.10.3 오라클 RDBMS의 V$TIMER 테이블
    8.11 손으로 작성한 어셈블리 코드
    8.11.1 EICAR 테스트 파일
    8.12 데모
    8.12.1 10 PRINT CHR$(205.5+RND(1)); : GOTO 10
    8.12.2 망델브로 집합
    8.13 기타 예제


    9장. 비공개 파일 포맷 리버싱
    9.1 XOR 암호화
    9.1.1 가장 간단한 XOR 암호화
    9.1.2 노턴 가이드: 가장 간단한 1바이트 XOR 암호화
    9.1.3 간단한 4바이트 XOR 암호화
    9.1.4 XOR 마스크를 이용한 간단한 암호화
    9.1.5 XOR 마스크를 이용한 간단한 암호화(두 번째 예제)
    9.2 정보 엔트로피
    9.2.1 Mathematica에서 엔트로피 분석
    9.2.2 결론
    9.2.3 도구
    9.2.4 XOR를 이용한 원시적인 암호화 관련 용어
    9.2.5 실행 코드의 엔트로피에 관한 추가 내용
    9.2.6 PRNG
    9.2.7 다른 예제
    9.2.8 다양한 파일들의 엔트로피
    9.2.9 엔트로피 낮추기
    9.3 밀레니엄 게임 저장 파일
    9.4 fortune 프로그램 인덱싱 파일
    9.4.1 해킹
    9.4.2 파일
    9.5 오라클 RDBMS: .SYM 파일
    9.6 오라클 RDBMS: .MSB 파일
    9.6.1 정리
    9.7 연습
    9.8 추가 자료


    10장. 동적 바이너리 인스트루멘테이션
    10.1 XOR을 가로채기 위한 PIN DBI
    10.2 PIN을 이용한 지뢰 찾기 게임 크랙
    10.2.1 모든 rand() 함수 호출 가로채기
    10.2.2 rand() 함수 호출을 우리 함수로 교체
    10.2.3 지뢰가 배치되는 방법
    10.2.4 연습
    10.3 PIN 설치
    10.4 인스트루멘테이션이라고 하는 이유


    11장. 기타 사항
    11.1 실행 파일 패치
    11.1.1 텍스트 문자열
    11.1.2 x86 코드
    11.2 함수 인자 수의 통계
    11.3 컴파일러 인트린직
    11.4 컴파일러 이상 동작
    11.4.1 오라클 RDBMS 11.2와 인텔 C++ 10.1
    11.4.2 MSVC 6.0
    11.4.3 정리
    11.5 아이태니엄
    11.6 8086 메모리 모델
    11.7 기본 블록 재배치
    11.7.1 프로필 기반 최적화
    11.8 Hex-Rays 2.2.0 사용 경험
    11.8.1 버그
    11.8.2 이상한 특징
    11.8.3 침묵
    11.8.4 콤마
    11.8.5 데이터 타입
    11.8.6 길고 혼란스러운 표현
    11.8.7 문제 해결 방안
    11.8.8 정리


    12장. 추천 책과 블로그
    12.1 책과 기타 자료
    12.1.1 리버스 엔지니어링
    12.1.2 윈도우
    12.1.3 C/C++
    12.1.4 x86 / x86-64
    12.1.5 ARM
    12.1.6 어셈블리어
    12.1.7 자바
    12.1.8 유닉스
    12.1.9 프로그래밍 일반
    12.1.10 암호학


    13장. 커뮤니티
    13.1 질문


    부록
    .1 x86
    .1.1 용어
    .1.2 범용 레지스터(GPR, General Purpose Registers)
    .1.3 FPU 레지스터
    .1.4 SIMD 레지스터
    .1.5 디버깅 레지스터
    .1.6 명령어
    .1.7 npad
    .2 ARM
    .2.1 용어
    .2.2 버전
    .2.3 32비트 ARM(AArch32)
    .2.4 64비트 ARM(AArch64)
    .2.5 명령어
    .3 MIPS
    .3.1 레지스터
    .3.2 명령어
    .4 GCC 라이브러리 함수
    .5 MSVC 라이브러리 함수
    .6 치트시트
    .6.1 IDA
    .6.2 OllyDbg
    .6.3 MSVC
    .6.4 GCC
    .6.5 GDB

추천사

출판사 서평

★ 이 책에서 다루는 내용 ★

OS 개발자가 아니라면 어셈블리로 코드를 작성할 필요는 없을 것이다. 또한 최신 컴파일러(2010)는 사람보다 최적화 수행 능력이 더 좋다. 또한 최신의 CPU는 매우 복잡해서 어셈블리에 대한 지식이 CPU의 세부 내용을 이해하는 데 그렇게 도움이 되지는 않는다. 하지만 최소한 두 가지 영역에서는 어셈블리에 대한 이해가 도움이 된다. 무엇보다도 보안/악성 프로그램 연구에 도움이 된다. 그리고 디버깅하는 동안 컴파일된 코드를 이해한다면 많은 도움이 된다. 따라서 이 책은 어셈블리 코드를 작성하기보다는 어셈블리어를 이해하고자 하는 사람들을 위한 것이다. 그래서 컴파일된 많은 예제를 책에 담고 있다


★ 이 책의 대상 독자 ★

리버스 엔지니어와 C/C++에 대한 기본적인 이해가 있는 사람이 볼 수 있는 책이다.

역자의 말
리버스 엔지니어링은 다양한 분야에서 사용될 수 있는 용어다. 이 책은 그중에서 소프트웨어 리버스 엔지니어링을 다룬다. 소프트웨어 개발을 위해 개발자가 프로그래밍 언어로 작성한 소스코드는 컴파일러에 의해 CPU가 실행할 수 있는 바이너리 코드 형태로 변환된다. 그렇게 만들어진 바이너리 코드를 디스어셈블러를 이용해 우리가 이해할 수 있는 어셈블리 코드로 변환할 수 있다. 소프트웨어 리버스 엔지니어링은 디스어셈블리 과정으로 만들어진 어셈블리 코드를 해석해 해당 소프트웨어의 동작 방식을 이해하고 분석하는 과정이라고 할 수 있다. 따라서 리버스 엔지니어링에 있어 어셈블리 코드의 이해는 필수라고 할 수 있다. 어셈블리 코드는 그것이 동작하는 CPU의 종류에 따라 각기 다른 스펙으로 정의된다. 독자는 이 책을 통해 어셈블리 코드를 분석하는 방법을 알 수 있을 것이다. 그리고 일반적인 x86 계열의 CPU뿐만 아니라 ARM, MIPS에 대한 어셈블리 코드도 매번 비교 설명하기 때문에 PC용 바이너리뿐만 아니라 IoT 기기와 같은 다양한 플랫폼에서 동작하는 바이너리를 리버스 엔지니어링할 수 있는 기반 기술을 배울 수 있을 것이다.

기본정보

상품정보
ISBN 9791161755090 ( 1161755098 )
쪽수 1508쪽
크기
187 * 236 * 59 mm / 2415 g
총권수 1권
시리즈명
에이콘 해킹 보안 시리즈
원서명/저자명 Reverse Engineering for Beginners: Understanding Assembly Language/Dennis Yurichev
이 책의 개정정보
가장 최근에 출시된 개정판입니다. 구판보기

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.
운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
신고하기
다른 고객이 작성리뷰에 대해 불쾌함을 느끼는 경우 신고를 할 수 있으며, 신고 자가 일정수준 이상 누적되면 작성하신 리뷰가 노출되지 않을 수 있습니다.

구매 후 리뷰 작성 시, e교환권 200원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

이벤트
TOP

저자 모두보기

번역

매장별 재고 및 위치

할인쿠폰 다운로드

  • 쿠폰은 주문결제화면에서 사용 가능합니다.
  • 다운로드한 쿠폰은 마이 > 혜택/포인트 에서 확인 가능합니다.
  • 도서정가제 적용 대상 상품에 대해서는 정가의 10%까지 쿠폰 할인이 가능합니다.
  • 도서정가제 적용 대상 상품에 10% 할인이 되었다면, 해당 상품에는 사용하실 수
    없습니다.

적립예정포인트 안내

  • 통합포인트 안내

    • 통합포인트는 교보문고(인터넷, 매장), 핫트랙스(인터넷, 매장), 모바일 교보문고 등 다양한 곳에서 사용하실 수 있습니다.
    • 상품 주문 시, 해당 상품의 적립률에 따라 적립 예정 포인트가 자동 합산되고 주문하신 상품이 발송완료 된 후에 자동으로 적립됩니다.
    • 단, 쿠폰 및 마일리지, 통합포인트, e교환권 사용 시 적립 예정 통합포인트가 변동될 수 있으며 주문취소나 반품시에는 적립된 통합포인트가 다시 차감됩니다.
  • 통합포인트 적립 안내

    • 통합포인트는 도서정가제 범위 내에서 적용됩니다.
    • 추가적립 및 회원 혜택은 도서정가제 대상상품(국내도서, eBook등)으로만 주문시는 해당되지 않습니다.
  • 기본적립) 상품별 적립금액

    • 온라인교보문고에서 상품 구매시 상품의 적립률에 따라 적립됩니다.
    • 단 도서정가제 적용 대상인 국내도서,eBook은 15%내에서 할인율을 제외한 금액내로 적립됩니다.
  • 추가적립) 5만원 이상 구매시 통합포인트 2천원 추가적립

    • 5만원 이상 구매시 통합포인트 2천원 적립됩니다.
    • 도서정가제 예외상품(외서,음반,DVD,잡지(일부),기프트) 2천원 이상 포함시 적립 가능합니다.
    • 주문하신 상품이 전체 품절인 경우 적립되지 않습니다.
  • 회원혜택) 3만원이상 구매시 회원등급별 2~4% 추가적립

    • 회원등급이 플래티넘, 골드, 실버 등급의 경우 추가적립 됩니다.
    • 추가적립은 실결제액 기준(쿠폰 및 마일리지, 통합포인트, e교환권 사용액 제외) 3만원 이상일 경우 적립됩니다.
    • 주문 후 취소,반품분의 통합포인트는 단품별로 회수되며, 반품으로 인해 결제잔액이 3만원 미만으로 변경될 경우 추가 통합포인트는 전액 회수될 수 있습니다.

제휴 포인트 안내

제휴 포인트 사용

  • OK CASHBAG 10원 단위사용 (사용금액 제한없음)
  • GS&POINT 최대 10만 원 사용
더보기

구매방법 별 배송안내

배송 일정 안내

  • 출고 예정일은 주문상품의 결제(입금)가 확인되는 날 기준으로 상품을 준비하여 상품 포장 후 교보문고 물류센터에서 택배사로 전달하게 되는 예상 일자입니다.
  • 도착 예정일은 출고 예정일에서 택배사의 배송일 (약1~2일)이 더해진 날이며 연휴 및 토, 일, 공휴일을 제외한 근무일 기준입니다.
배송 일정 안내
출고예정일 도착예정일
1일이내 상품주문 후 2~3일 이내
2일이내 상품주문 후 3~4일 이내
3일이내 상품주문 후 4~5일 이내
4일이내 상품주문 후 5~6일 이내

연휴 및 토, 일, 공휴일은 제외됩니다.

당일배송 유의사항

  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가
  • 회사에서 수령할 경우 당일배송 불가 (퇴근시간 이후 도착 또는 익일 배송 될 수 있음)
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.

일반배송 시 유의사항

  • 날씨나 택배사의 사정에 따라 배송이 지연될 수 있습니다.
  • 수도권 외 지역 바로배송 서비스의 경우 경품 수령 선택 여부에 따라 도착 예정일이 변경됩니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 선물포장 주문 시 합배송 처리되며, 일부상품 품절 시 도착 예정일이 늦어질 수 있습니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.

해외주문 시 유의사항

  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.

Special order 주문 시 유의사항

  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함 되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해 주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반 코너에서 수령확인이 가능합니다
  • 선물 받는 분의 휴대폰번호만 입력하신 후 결제하시면 받는 분 휴대폰으로 선물번호가 전달됩니다.
  • 문자를 받은 분께서는 마이 > 주문관리 > 모바일 선물내역 화면에서 선물번호와 배송지 정보를 입력하시면 선물주문이 완료되어 상품준비 및 배송이 진행됩니다.
  • 선물하기 결제하신 후 14일까지 받는 분이 선물번호를 등록하지 않으실 경우 주문은 자동취소 됩니다.
  • 또한 배송 전 상품이 품절 / 절판 될 경우 주문은 자동취소 됩니다.

바로드림 서비스 안내

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.
  1. STEP 01
    픽업박스에서 찾기 주문
  2. STEP 02
    도서준비완료 후 휴대폰으로 인증번호 전송
  3. STEP 03
    매장 방문하여 픽업박스에서 인증번호 입력 후 도서 픽업
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.

도서 소득공제 안내

  • 도서소득공제란?

    • 2018년 7월 1일 부터 근로소득자가 신용카드 등으로 도서구입 및 공연을 관람하기 위해 사용한 금액이 추가 공제됩니다. (추가 공제한도 100만원까지 인정)
      • 총 급여 7,000만 원 이하 근로소득자 중 신용카드, 직불카드 등 사용액이 총급여의 25%가 넘는 사람에게 적용
      • 현재 ‘신용카드 등 사용금액’의 소득 공제한도는 300만 원이고 신용카드사용액의 공제율은 15%이지만, 도서·공연 사용분은 추가로 100만 원의 소득 공제한도가 인정되고 공제율은 30%로 적용
      • 시행시기 이후 도서·공연 사용액에 대해서는 “2018년 귀속 근로소득 연말 정산”시기(19.1.15~)에 국세청 홈택스 연말정산간소화 서비스 제공
  • 도서 소득공제 대상

    • 도서(내서,외서,해외주문도서), eBook(구매)
    • 도서 소득공제 대상 상품에 수반되는 국내 배송비 (해외 배송비 제외)
      • 제외상품 : 잡지 등 정기 간행물, 음반, DVD, 기프트, eBook(대여,학술논문), 사은품, 선물포장, 책 그리고 꽃
      • 상품정보의 “소득공제” 표기를 참고하시기 바랍니다.
  • 도서 소득공제 가능 결제수단

    • 카드결제 : 신용카드(개인카드에 한함)
    • 현금결제 : 예치금, 교보e캐시(충전에한함), 해피머니상품권, 컬쳐캐쉬, 기프트 카드, 실시간계좌이체, 온라인입금
    • 간편결제 : 교보페이, 네이버페이, 삼성페이, 카카오페이, PAYCO, 토스, CHAI
      • 현금결제는 현금영수증을 개인소득공제용으로 신청 시에만 도서 소득공제 됩니다.
      • 교보e캐시 도서 소득공제 금액은 교보eBook > e캐시 > 충전/사용내역에서 확인 가능합니다.
      • SKpay, 휴대폰 결제, 교보캐시는 도서 소득공제 불가
  • 부분 취소 안내

    • 대상상품+제외상품을 주문하여 신용카드 "2회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

      신용카드 결제 후 예치금으로 환원 된 경우 승인취소 되지 않습니다.

  • 도서 소득공제 불가 안내

    • 법인카드로 결제 한 경우
    • 현금영수증을 사업자증빙용으로 신청 한 경우
    • 분철신청시 발생되는 분철비용

알림 신청

아래의 알림 신청 시 원하시는 소식을 받아 보실 수 있습니다.
알림신청 취소는 마이룸 > 알림신청내역에서 가능합니다.

모두를 위한 리버싱 지침서
리버싱을 통한 어셈블리 언어의 이해
2 판
한달 후 리뷰
/ 좋았어요
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 올해 주식 투자를 시작했다. 아무것도 모르고 초심자의 행운으로 분유값 정도를 벌고 나니, 조금 더 공부해보고 싶어져서 『초격차 투자법』을 구매했다.
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
기대가됩니다~
기대가됩니다~
기대가됩니다~
이 구매자의 첫 리뷰 보기
/ 좋았어요
하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까 예견해 본다. 책한권으로 등의 근육들이 오그라진 느낌에 아직도 느껴진다. 하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이 처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까..
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
신고

신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.

허위 신고일 경우, 신고자의 서비스 활동이 제한될 수 있으니 유의하시어
신중하게 신고해주세요.

판형알림

  • A3 [297×420mm]
  • A4 [210×297mm]
  • A5 [148×210mm]
  • A6 [105×148mm]
  • B4 [257×364mm]
  • B5 [182×257mm]
  • B6 [128×182mm]
  • 8C [8절]
  • 기타 [가로×세로]