연재

(스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 10 (게임핵 제작과정)



오랜만이야


사실 쓸것도 더 없고


쓰기도 귀찮고 댓글도 점점 안달리고 해서


안쓰고있었는데



사실 시간 때우기엔 글쓰는게 최고인것같다


어쨋든 오늘은 게임핵에 제작 과정에 대해 글을 쓸꺼야



이건 순전히 내가 핵을 만드는 기준으로 설명이 되기때문에


다른사람의 방식과 다를수가 있고 또 비효율적일수도 있고


이상할수도있어



하지만 이 글은 이쪽세계에 지식이 아예 없고


어떻게 만들어지는지 궁금해 하는 애들을 대상으로 작성되는 것이기때문에


양해를 부탁한다


==================================================================================


일단 핵을 제작하려면 리버스엔지니어링이라는걸 조금 알아야해


단어 그대로 역공학이라는 거야


레고.jpg 


예를 들면 컴퓨터 프로그래머는


레고로 무엇이든 만들수있지만 거기엔 시간과 노력이 들어간후


작품이 완성이 되지.


하지만 크래커같은 경우


레고로 이미 완성된 작품을 내 취향에 걸맞게 수정하고 없애고 하는거야



멋지게 수정하려면 그에 알맞는 레고에 대한 지식이 필요하겠지?



비슷한 논리야


 

c.jpg


지피지기면 백전불패


어쨋든 프로그램을 수정하려면 프로그램에 대한 지식이 필요하다 이거야


어떤 식으로 프로그램들이 동작하는지

어떤 식으로 프로그래머가 제작을 했는지


그걸 제대로 알아야 제대로 핵을 쓸수가있지


 17.jpg

하지만 일반적인 프로그래머는 어셈블리어라는 언어를 


자주 마주할일이 없어


왜냐하면 되게 기계적인 언어거든


지금 위에 보여지고 있는 스크린샷이 어셈블리어야


맨왼쪽에는 코드주소값이 나와있고


그 오른쪽엔 그 코드값의 Hex 값


그 오른쪽엔 어셈블리어


맨오른쪽은 코멘트라인이야


 

study5_sub1_02.gif


어셈블리어? 어셈블리어가 뭐냐고?


기계어의 전단계라고 보면돼


하지만 C언어같은 그런 좀더 인간적인 언어가아닌


기계적인 언어에 가까워



다른사람의 프로그램을 분석하려면


원래 제작자가 코딩한 소스코드로 볼 수 없기때문에


그래서 프로그램 동작방식을 분석하게 되다보니


어셈블리어로 봐야하는거야



자 기본적인설명은 끝났고


이제 어떻게 제작되는지 봐보자


1.jpg

물론 온라인게임으로 대상으로 글을 작성할수있겠지만


나는 고소미를 먹고 싶지않기때문에


닷지를 대상으로 설명할꺼야



그리고 메모리수정프로그램은 DarkByte가 제작한 Cheat Engine 6.2를 쓸꺼고



2.jpg 


하하 일단 나는 닷지를 옛날 옛적에 분석을 해서


거의 모든 핵을 알고있지만


천천히 설명을 해줄께



닷지는 일단


게임시작전화면(READY ?) -> 게임시작 -> 총알이 부딫이면 게임오버


이런 방식이야



그렇다면 여기서 생각을 해보자.


일단 나는 총알에 닿아도 게임오버를 되지않게 만들어보고 싶어


그러면 게임시작후 게임오버 창으로 안넘어가게 만들면 되는거지?




그러면 게임시작전 화면과 게임시작후 화면 그리고 게임오버 화면상태에서


비교점을 찾아보는거야.


3.jpg 


훗훗 눈치 챈사람도 있겠지만


게임시작전 화면은 코드값이 0


게임시작후 화면은 1


게임오버후 화면은 2야



그렇다면 1에 고정만 시키면 되는거지?


물론 여기서 그냥 저 3개의 값을을 고정시켜버리면 되겠지만


그렇게해서는 온라인게임에서는 먹히지않아



좀더 Smart 하게 생각해야함


4.jpg 


지금 닷지 뒤에 떠있는창은


저 코드값에 엑세스하는 주소들을 표시해줘


너희가 어셈블리어를 몰라도


뭔가 보이지?


mov [esi+00001E58],00000000


mov [esi+00001E58],00000001


mov [edi+00001E58],00000002



그래 이건 게임화면을 담당하는 코드들이야


그럼 2라고 적혀있는걸 1이라고 바꿔보자꾸나 !





캬 퍼펙트합니다




다른것도 찾아보죠


이번엔 총알수를 존나게 늘려봅시다.


5.jpg



총알값은 그냥 총알 숫자를 검색하니 나오네요


그럼 저 값에 엑세스하는 코드를 찾아보도록하죠

 


7.jpg


맨윗값은 아마 초기화 값일것이고


여긴 EDI 값에 1이 들어가있는걸보아


총알이 1개 씩 상승하는걸 도와주는곳같고


6.jpg


여긴 EAX 값에 32 즉 10진수로 변환하면 50이라는 숫자기때문에


아마 현재 총알 갯수를 관장하는값 같음


아직은 추측일뿐이니



이 밑에 스샷에 EAX 값에 500을 16진수로 변환해서 넣어보죠



8.jpg



이런 아니였나봐요


총알이 많아진게아니라


총알이 없어졌어요


하지만 총알이 처음부터 없던게 아니라


처음 총알이 나타난후 나오지 않는걸 보면



이 값은 총알을 화면에 생성해주는 값인것같아요



그럼 50에서 변하지않게 고정을 시켜줘보죠



 

총알 나오는숫자가 존나게 많아진느낌이네요




흠 그럼 다른 값은 뭐에 쓰는값이였죠


그것도 변경해보죠


9.jpg


하느님 제가 무엇을 본겁니까






========================================



흠 되게 간단한걸로 설명했는데 이해가 잘됬을지가 모르겠다


완전 기초중 기초로 설명했어



온라인게임에는 이런 간단한방식이 먹히지않을꺼야


하지만 난 거의 처음에 찾아볼때 이런방식으로 찾아봐


음 음 다음편은 쓸까 말까 생각중에 있고



볼수있으면 다음편에 보자



17개의 댓글

2013.10.18
막상 글적고보니 스압은아니네
1
2013.10.18
꿀잼이다 ㅎㅎ 내가 보안쪽으로 공부하는사람이라 이런 정보들 굉장히 흥미롭게 보게되네
치트프로그램은 너가말한 그 두가지가 일반적인건가? 어떤원리로 작동되는지 알아?
0
2013.10.19
@0kg뺀다
음 아무래도 치트프로그램은 아마 치트엔진이 독보적이라고 난 생각해

오랜역사가 있고 또 기능도 한가지한가지가 진짜 강력하거든

그냥 기본적으로 어떤원리냐면 오픈프로세서로 프로세서를 연후 -> 메모리리딩 -> 메모리쓰기 그냥 간단한방식임
0
2013.10.18
리버싱잼, 첨에 언어배우는거보다 진입장벽이 좀높앗엇음..

올리디버그 짱짱맨이지.
0
2013.10.18
@리얼리
엠넷 , 멜론 크랙뜰때 쓰지ㅋㅋㅋ
0
2013.10.18
저걸로 서든어택,메이플,다크에덴,귀혼 핵 좆나 썼었지 서든은 요즘처럼 월핵 유행하기 전에ㅋㅋㅋ
0
2013.10.18
잼네. 추천먹어
0
2013.10.18
"아아. 휴스턴. 무언가 잘못 된거 같다. 지옥에 온 느낌이다. 탈출불가."

비행조종사는 마치 지옥을 보고 있다라며 마지막 교신을 남겼다.

그리고 그를 본 사람은 이 세상 어디에도 없다고 한다
0
2013.10.19
kia 춫
0
2013.10.19
와진짜 나 이런거 진짜알고싶었는데 인터넷뒤져도 겁나 어렵게설명되있고 해커친구한테물어봐도 뭔지몰랐는데 진짜 고맙 온라인편이 기대된다
0
@닉넴좀지어줘
프로그래밍으로 메모리를 파다보면 알겠지만 온라인게임은 항상 메모리어드레스값이 바뀜.

그래서 프로그램 내부에서 포인터를 고정시켜 값을 입력해야함
0
2013.10.22
@ટૂય는નવના
하나도 못알아들어 쉽게해줘
0
2013.10.24
@닉넴좀지어줘
포인터 = 값이 저당된 메모리 주소
0
@닉넴좀지어줘
게임상에 보안이 되어있는경우는 메모리영역을 서치하기만해도 감지하는 경우도 있는거같더라
0
일반적인 프로그래밍에선 메모리를 얻는다고 하지.

온라인 게임같은경우는 메로리값을 구하려면 포인터값을 고정시킬필요가 있기때문에 조금 귀찮은점이 없지않아 있지
0
2013.10.24
리버싱 때문에는 아니지만 ARM어셈블러하고 x86어셈블러를 최적화로 인해 확인할때가 많은데
가끔씩 둘이 했갈림,..
0
2014.07.07
저기 저도 화이트 해커 쪽으로 지망하고싶은데 하나부터 열까지 가르쳐줄 뿐있나요 ... 물론 보상같은것도 있습니다 bumba96으로 카톡해주세요
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
14 [연재] [연재중단] [매우스압] 처음부터 시작하는 게임 해킹 - 2 22 흑기 24 2016.02.07
13 [연재] [매우스압] 처음부터 시작하는 게임 해킹 - 1 19 흑기 28 2016.02.02
12 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 12 (게임핵 제... 18 흑기 6 2014.02.20
11 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 11 (게임핵 제... 21 흑기 5 2013.10.26
10 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 10 (게임핵 제... 17 흑기 10 2013.10.18
9 [연재] (노잼,정보) 게임 핵(Hack)에 관한 글 - 9 (프리서버) 11 흑기 2 2013.09.15
8 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 8 (게임 해킹기법) 8 흑기 3 2013.09.11
7 [연재] (노잼,정보) 게임 핵(Hack)에 관한 글 - 7 (게임가드 2편) 2 흑기 5 2013.09.10
6 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 6 (게임가드) 18 흑기 8 2013.09.09
5 [연재] (노잼,정보) 게임 핵(Hack)에 관한 글 - 5 (쉬어가는글) 41 흑기 2 2013.08.04
4 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 4 (카오스 ,롤핵) 14 흑기 5 2013.08.02
3 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 3 (스타핵) 6 흑기 5 2013.08.01
2 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 2 (mmorpg핵) 10 흑기 6 2013.07.31
1 [연재] (스압,노잼,정보) 게임 핵(Hack)에 관한 글 - 1 32 흑기 22 2013.07.30