봇을 이용한 게임 해킹 (메모리 스캐닝에서 반응형 해킹까지)

봇을 이용한 게임 해킹 (메모리 스캐닝에서 반응형 해킹까지)

$31.53
Description
인터넷에서 쉽게 구할 수 있는 간단한 툴을 이용해 게임 봇을 만들고 게임을 해킹하는 다양한 기법을 다룬다. 메모리 스캐닝 같은 고전 기법에서부터 반응형 해킹에 이르기까지, 책의 내용을 천천히 따라가다 보면 게임 해킹의 기본 소양을 쌓을 수 있게 될 것이다. 어떤 게임을 대상으로 실습할지 고민할 필요 없다. 제공되는 간단한 게임 코드를 직접 수행하면서 게임 해킹의 원리를 파악할 수 있을 것이다.
저자

닉카노

12살무렵오픈소스게임서버용스크립트를처음작성했으며,16살에는자신이만든봇을돈을받고팔기시작했다.오랫동안게임해킹커뮤니티의일원으로활동하면서게임개발자와디자이너에게그들이만든게임을봇으로부터보호할수있도록자신의경험에기반한조언을아끼지않았다.또한수년간멀웨어(malware)를감지하고방어하는일에도종사했으며,여러콘퍼런스에서자신의연구와툴에대한강의를수행해왔다.

목차

1부.해킹도구

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

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

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접근하기
____RTMPSencode()함수후킹하기
____decode()함수로RTMPS후킹하기
____훅배치하기
__다이렉트3D에점프훅과VF훅적용하기
____드로잉루프
____다이렉트3D디바이스찾기
____EndScene()훅작성하기
____Reset()후킹작성하기
____다음으로할일은?
__마치며

4부.봇만들기

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

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

10장.반응형해킹

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

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

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

12장.숨어있기

__저명한안티치트소프트웨어들
__펑크버스터툴킷
____시그니처기반검출
____스크린샷
____해시검증
____ESEA안티치트툴킷
__VAC툴킷
____DNS캐시스캔
____바이너리검증
____긍정오류
__게임가드툴킷
____사용자모드루트킷
____커널모드루트킷
__워든툴킷
__봇의흔적관리하기
____흔적을최소화하기
____흔적가리기
____디버거를검출하기위해봇을교육하기
____안티디버깅기법
__시그니처기반검색무력화하기
__스크린샷무력화하기
__바이너리검증무력화하기
__안티치트루트킷무력화하기
__휴리스틱무력화하기
__마치며

출판사 서평

★이책에서다루는내용★
-치트엔진을사용해메모리스캔하고수정하기
-OllyDbg를사용해프로그램구조를살펴보고플로우수행하기
-프로세스모니터를사용해프로세스로그를남기고필요한데이터파일찾아내기
-NOPing,후킹과그밖의기법들을사용해컨트롤플로우조작하기
-일반적인게임메모리구조찾아내고분석하기
-월핵이나헤드업디스플레이같은평소에알수없는정보쉽게나타내기
-자동힐러나콤보봇같은반응형해킹기법
-동굴탐험가나자동루터같은인공지능을겸비한봇

★이책의구성★
이책은크게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개부를모두읽는다면가상세계에서초능력을가진히어로가될수있을것이다.

★옮긴이의말★
이제게임은더이상청소년의전유물이나일부어른들의특이한취미가아니다.21세기를대표하는문화산업으로성장했음은물론,VR/AR같은새로운기술발전을주도하면서IT산업에서도최첨단의영역으로인지되고있다.이런긍정적인측면과더불어,게임해킹이나게임과몰입등게임의부정적인측면역시간과할수없는시대가됐다.게임해킹의역사는게임의역사와동일하다.게임이생명을갖는시점에서부터게임해킹도함께시작된다.최근에도다양한보안기술로무장한게임들이시장에출시되고있지만,출시와더불어개발진들의ToDo리스트상단에는해킹이슈가빠지지않고등장한다.
이책은메모리스캐닝에서부터반응형해킹에이르기까지다양한해킹기법을소개하고있다.봇을만들고이를통해게임내부에특정한동작을수행해필요한데이터를변조하는해킹기법에대부분의지면을할애하고있다.책의후반부에는최근에유행하고있는반응형해킹을간단하게소개하고있으니,이부분역시독자들에게많은영감을제공하리라믿어의심치않는다.원저자가제공하는간단한코드상에서실제로해킹기법을수행하고원하는결과를얻었을때의쾌감을독자여러분이직접느껴보시기바란다.아울러이책이해킹으로인해발생할수있는리스크를방지하는훌륭한첫걸음이되기를바라마지않는다.