1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

봇을 이용한 게임 해킹(에이콘 해킹 보안 시리즈)
저자 : NICK CANO ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 진석준

2018.08.17 ㅣ 408p ㅣ ISBN-13 : 9791161751924

정가30,000
판매가27,000(10% 할인)
적립금 1,500원 (5%)
배송일정 05월 09일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 네트워크 > NETWORK (L...
- 치트 엔진을 사용해 메모리 스캔하고 수정하기
- OllyDbg를 사용해 프로그램 구조를 살펴보고 플로우 수행하기
- 프로세스 모니터를 사용해 프로세스 로그를 남기고 필요한 데이터 파일 찾아내기
- NOPing, 후킹과 그 밖의 기법들을 사용해 컨트롤 플로우 조작하기
- 일반적인 게임 메모리 구조 찾아내고 분석하기
- 월핵이나 헤드업 디스플레이 같은 평소에 알 수 없는 정보 쉽게 나타내기
- 자동 힐러나 콤보 봇 같은 반응형 해킹 기법
- 동굴 탐험가나 자동 루터 같은 인공지능을 겸비한 봇
펼쳐보기

[목 차]

1부. 해킹 도구

1장. 치트 엔진을 사용하는 메모리 스캐닝

왜 메모리 스캐너가 중요한가
기본적인 메모리 스캐닝
치트 엔진 메모리 스캐너
스캔 유형
First Scan 수행하기
Next Scan
정확한 결과를 얻지 못하는 경우
치트 테이블
게임 메모리 변조
치트 엔진을 통한 수동 변조
트레이너 제너레이터
포인터 스캐닝
포인터 체인
기본적인 포인터 스캐닝
치트 엔진을 사용한 포인터 스캐닝
포인터 재검색
루아 스크립팅 환경
어셈블리 패턴 찾기
스트링 찾기
마치며

2장. OllyDbg를 이용한 게임 디버깅

OllyDbg 사용자 인터페이스 살펴보기
OllyDbg의 CPU 창
게임 어셈블리 코드 표시하고 탐색하기
레지스터 내용 표시하고 편집하기
게임 메모리 표시하고 탐색하기
게임 콜 스택 표시하기
코드 패치 제작하기
어셈블리 코드를 통해 트레이싱하기
OllyDbg 표현식 엔진
표현식으로 브레이크포인트 만들기
표현식 엔진에서 연산자 사용하기
기본 표현식 활용하기
표현식을 사용해 메모리 콘텐츠에 접근하기
OllyDbg 표현식 실제로 활용하기
특정한 플레이어 이름이 출력되면 연산 중단하기
캐릭터의 체력이 떨어졌을 때 수행 멈추기
게임 해커를 위한 OllyDbg 플러그인
Asm2Clipboard를 사용해 어셈블리 코드 복사하기
치트 유틸리티로 OllyDbg에 치트 엔진 추가하기
명령줄 플러그인을 통해 OllyDbg 제어하기
OllyFlow를 활용해 컨트롤 플로우 시각화하기
마치며

3장. 프로세스 모니터와 프로세스 익스플로러 살펴보기

프로세스 모니터
인게임 이벤트 로그 남기기
프로세스 모니터 로그의 이벤트 조사하기
더 많은 데이터를 얻기 위해 게임 디버깅하기
프로세스 익스플로러
프로세스 익스플로러의 사용자 인터페이스와 제어
프로세스 속성 조사하기
핸들 조작 옵션
마치며

2부. 게임 해부

4장. 코드에서 메모리로: 기본 원리

변수와 그 밖의 데이터가 메모리에 저장되는 방법
숫자 데이터
스트링 데이터
데이터 구조체
유니온
클래스와 VF 테이블
x86 어셈블리 크래시 코스
명령어
프로세서 레지스터
콜 스택
게임 해킹에서 중요한 x86 명령어
마치며

5장. 고급 메모리 포렌식

고급 메모리 스캐닝
목적 추론하기
OllyDbg로 플레이어의 체력 확인하기
게임 업데이트 이후 새로운 주소 찾아내기
복잡한 게임 데이터 식별하기
std::string 클래스
std::vector 클래스
std::list 클래스
std::map 클래스
마치며

6장. 게임 메모리 읽고 쓰기

게임 프로세스 식별자 알아내기
프로세스 핸들 획득하기
OpenProcess()로 작업하기
메모리 접근
ReadProcessMemory()와 WriteProcessMemory()로 작업하기
ReadProcessMemory()와 WriteProcessMemory()로 메모리의 값 읽어오기
정형화된 메모리 액세스 함수 작성하기
메모리 보호
x86 윈도우 메모리 보호 속성 구별하기
메모리 보호 변경
주소 공간 배치 난수화
간편한 봇 개발을 위해 ASLR 비활성화하기
보호 모드에서 ASLR 우회하기
마치며

3부. 인형 가지고 놀기

7장. 코드 인젝션

스레드 인젝션으로 코드 케이브 주입하기
어셈블리 코드 케이브 만들기
어셈블리를 셸코드로 변환하기
메모리에 코드 케이브 작성하기
스레드 인젝션 활용해 코드 케이브 수행하기
코드 케이브를 실행하기 위해 게임 메인 스레드 하이재킹하기
어셈블리 코드 케이브 만들기
스켈리톤 셸코드 작성하고 메모리 할당하기
메인 스레드 찾고 멈추기
완벽한 제어를 위해 DLL 주입하기
DLL 로딩을 위해 프로세스 속이기
주입된 DLL 안에서 메모리 접근하기
주입된 DLL을 통해 ASLR 우회하기
마치며

8장. 게임 컨트롤 플로우 조작하기

NOP를 통해 코드 삭제하기
NOP를 사용해야 하는 경우
NOP를 사용하는 방법
게임 실행 변경을 위해 후킹하기
콜 후킹
VF 테이블 후킹
IAT 후킹
점프 후킹
어도비 AIR에 콜 훅 적용하기
RTMP 접근하기
RTMPS encode() 함수 후킹하기
decode() 함수로 RTMPS 후킹하기
훅 배치하기
다이렉트3D에 점프 훅과 VF 훅 적용하기
드로잉 루프
다이렉트3D 디바이스 찾기
EndScene() 훅 작성하기
Reset() 후킹 작성하기
다음으로 할 일은?
마치며

4부. 봇 만들기

9장. 초능력으로 전장의 안개 걷어내기

배경지식
라이트핵을 사용해 숨겨진 정보 찾아내기
Central Ambient Light 소스 추가하기
Absolute Ambient Light 증폭하기
그 밖의 라이트핵 기법들
월핵을 통해 숨어 있는 적 파악하기
z 버퍼링으로 렌더링하기
다이렉트3D 월핵 생성하기
드러내려는 모델의 지문 채취하기
줌핵을 통해 더 넓은 시야 확보하기
줌핵 NOP 하기
줌핵 후킹 맛보기
HUD에 숨겨진 정보 표시하기
경험치 HUD 만들기
데이터 위치를 찾기 위해 후킹 사용하기
그 밖의 ESP 해킹
마치며

10장. 반응형 해킹

게임 이벤트 관찰하기
메모리 모니터링하기
시각적 단서 찾아내기
네트워크 트래픽 가로채기
게임
실제 게임 안에서 액션 수행하기
키보드 에뮬레이팅
패킷 전송하기
한 번에 묶기
퍼펙트 힐러 만들기
CC 스킬에 저항하기
마나가 줄어드는 것 막기
마치며

11장. 스스로 움직이는 봇 만들기

제어 이론과 게임 해킹
상태 머신
제어 이론과 상태 머신 결합하기
기본적인 힐러 상태 머신
복잡한 가상 상태 머신
에러 수정
탐색 알고리즘을 사용한 패스파인딩
2개의 일반적인 탐색 기법
탐색을 방해하는 장애물
A* 탐색 알고리즘
A* 탐색이 특히 유용한 경우
평범하지만 멋진 자동화 해킹 툴
케이브봇으로 루팅하기
워봇으로 자동 전투하기
마치며

12장. 숨어 있기

저명한 안티 치트 소프트웨어들
펑크버스터 툴킷
시그니처 기반 검출
스크린샷
해시 검증
ESEA 안티 치트 툴킷
VAC 툴킷
DNS 캐시 스캔
바이너리 검증
긍정 오류
게임가드 툴킷
사용자 모드 루트킷
커널 모드 루트킷
워든 툴킷
봇의 흔적 관리하기
흔적을 최소화하기
흔적 가리기
디버거를 검출하기 위해 봇을 교육하기
안티 디버깅 기법
시그니처 기반 검색 무력화하기
스크린샷 무력화하기
바이너리 검증 무력화하기
안티 치트 루트킷 무력화하기
휴리스틱 무력화하기
마치며
펼쳐보기
이 책은 크게 4개의 부로 구성돼 있으며, 각 부는 게임 해킹의 각기 다른 핵심적인 부분들을 다루고 있다.

1부, ‘해킹 도구’에서는 게임을 해킹하는 데 사용되는 도구에 대해 알아본다.
1장, ‘치트 엔진을 사용하는 메모리 스캐닝’에서는 치트 엔진을 사용해 중요한 값들을 획득하기 위해 어떻게 게임 메모리를 스캔하는지에 대해 알아본다.
2장, ‘OllyDbg를 이용한 게임 디버깅’에서는 OllyDbg를 활용한 디버깅과 리버스 엔지니어링에 대한 집중 훈련을 받을 수 있다. 여기서 배운 기법들은 추후 봇을 만들고 코드 인젝션을 수행할 때 유용하게 쓰일 것이다.
3장, ‘프로세스 모니터와 프로세스 익스플로러 살펴보기’에서는 이 두 가지 정보 수집 툴을 사용해 게임이 파일이 그 밖의 프로세스, 네트워크, OS 등과 어떻게 상호작용하는지 감시하는 법을 배울 것이다.

1부의 각 장에서 새로 습득한 스킬을 테스트하고 연마하는 데 필요한 커스텀 바이너리를 포함해 다양한 온라인 리소스들이 제공될 것이다. 1부에서 제공되는 툴을 어느 정도 다루게 된다면, 2부, ‘게임 해부’를 통해 게임 내부에 침입해 어떻게 게임이 동작하는지를 배우게 될 것이다.

4장, ‘코드에서 메모리로: 기본 원리’에서는 게임 바이너리 안에 게임 소스 코드와 데이터가 컴파일되고 나면 어떤 모습인지를 배우게 될 것이다.
5장, ‘고급 메모리 포렌식’은 4장에서 배운 지식을 좀 더 심화하는 과정이다. 가상 메모리 값을 그럴듯하게 배치하고 복잡한 클래스와 구조를 분해하기 위해 어떻게 메모리를 스캔하고 디버깅을 활용할 수 있는지에 대해 배우게 될 것이다.
6장, ‘게임 메모리 읽고 쓰기’에서는 현재 구동 중인 게임에서 어떻게 데이터를 읽고 수정할 수 있는지 보여줄 것이다.

2부에서도 배운 내용을 검증하기 위해 심도 있는 예제 코드들이 제공될 것이다. 3부, ‘인형 가지고 놀기’에서는 게임을 마리오네트 인형으로 만들어 가지고 놀 수 있는 퍼피티어링(puppeteering) 스킬에 대해 배울 것이다.

1부와 2부에서 배운 기법들을 기반으로 7장, ‘코드 인젝션’에서는 게임 주소 공간에 직접 만든 코드를 인젝션하고 수행하는 방법을 설명한다. 코드 인젝션을 마스터했다면 8장, ‘게임 컨트롤 플로우 조작하기’에서 게임이 수행하는 기능을 중간에 가로채 이를 수정하고 무력화하는 방법을 배워볼 것이다. 어도비 AIR와 다이렉트3D의 일반 라이브러리 예제로 마무리된다. 클래스를 완벽하게 조종하기 위해 3부에서는 미리 작성된 방대한 양의 코드를 제공한다. 이 코드를 기반으로 봇을 만들 수 있을 것이다.

4부, ‘봇 만들기’에서는 앞서 배웠던 툴과 해체 능력, 퍼피티어링 스킬 그리고 소프트웨어 엔지니어링 배경지식을 활용해 강력한 봇을 만드는 법을 배워볼 것이다.

9장, ‘초능력으로 전장의 안개 걷어내기’에서는 기본적으로는 표시되지 않는 유용한 정보를 게임상에 표시하는 방법에 대해 배워본다. 여기에는 숨어 있는 적의 위치, 시간당 획득할 수 있는 경험치 등이 포함된다.
10장, ‘반응형 해킹’에서는 체력이 감소하는 것과 같은 인게임 이벤트를 감지하고 봇이 이런 이벤트에 사람보다 빨리 반응할 수 있게 해주는 코드 패턴을 보여줄 것이다.
11장, ‘스스로 움직이는 봇 만들기’에서는 사람이 조작하지 않고 봇이 게임을 자동으로 플레이할 수 있는 방법에 대해 배워볼 것이다. 여기서 만드는 자동 봇은 제어 이론과 상태 머신, 검색 알고리즘과 수학적 모델이 한데 모인 결과물이다. 이 장은 또한 이 주제들에 대한 핵심 과정이 될 것이다.
12장, ‘숨어 있기’에서는 만들어진 봇을 감지하고 방해하는 시스템에서 벗어나 이를 회피하는 고급 기술에 대해 배워볼 것이다.
이전 장들과 마찬가지로 4부에서도 다양한 예제 코드를 제공한다. 4부의 예제들 중 일부는 이전 장들의 코드를 기반으로 작성됐다. 그 밖의 코드들 역시 독자 여러분이 봇을 만들 때 바로 활용할 수 있도록 간단하고 직관적인 디자인 패턴을 갖고 있다. 4개 부를 모두 읽는다면 가상 세계에서 초능력을 가진 히어로가 될 수 있을 것이다.
펼쳐보기
닉 카노 Nick Cano
12살 무렵 오픈소스 게임 서버용 스크립트를 처음 작성했으며, 16살에는 자신이 만든 봇을 돈을 받고 팔기 시작했다. 오랫동안 게임 해킹 커뮤니티의 일원으로 활동하면서 게임 개발자와 디자이너에게 그들이 만든 게임을 봇으로부터 보호할 수 있도록 자신의 경험에 기반한 조언을 아끼지 않았다. 또한 수년간 멀웨어(malware)를 감지하고 방어하는 일에도 종사했으며, 여러 콘퍼런스에서 자신의 연구와 툴에 대한 강의를 수행해왔다.


옮긴이 진석준
넷마블과 크라이텍을 거쳐 현재 11년 차 게임 QA로 재직 중이다. 자신을 포함한 게임 QA의 역량 향상과 자기 발전 그리고 이를 통한 게임 QA 업무의 확장을 위해 여러 실험을 끊임없이 시도하는 중이다. 『뷰티풀 테스팅』(지앤선, 2011), 『닌자 해킹』(에이콘, 2015), 『게임 물리 엔진 개발』(지앤선, 2016), 『언리얼 엔진 4로 나만의 게임 만들기』(에이콘, 2017)를 번역했다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기