Hello Guys,
Welcome to my Game Hacking post
So, Today we are learning about How to make a Hack
But, unfortunately I can't tell you that How to make a Korea Online Game hack.
Why? Because If i'll write that. Maybe The game company will take legal steps ...
That's Why can't tell you what how to make a specific game hack.
However I'll write generally how to make my own hack
Here we go !
==================================
음 역시 영어는 너무어렵군
다시 한글로 쓰게씀
일단 스타크래프트를 대상으로 작성해볼꺼야
하지만 스타크래프트가 온라인게임이라고 생각하고 온라인게임핵 만들듯이 만들어볼꺼임
음 일단 미네랄핵부터 제작을 해보자
일단 미네랄 값을 검색해서
4개의 값을 얻었어
물론 지금은 싱글플레이중이니까
저것들만 수치를 수정해도 미네랄가지고 있는양이 바뀌긴 하겠지만
이번시간은 온라인게임핵만들듯이 만들꺼니까 난 좀더 엘레강스하게 만들꺼임
저 미네랄 값에 관련하고있는 값들임
맨위에 있는것은 초마다 연관이 되니까 그냥 계속 미네랄 수치를 체크하는 그런 기능인것같고
우리는 광물을 넣었을때에 연관된 어셈블리어를 봐야해
먼저 EAX , EBX ,ECX ... 등등등은 숫자 저장소같은거라고 생각하면돼
[Eax*4+StarCraft.exe+17f0f0] 는 현재 미네랄값 아까 위에서 찾은값임
Mov edi,[Eax*4+StarCraft.exe+17f0f0]
첫번째 EDI 에는 16진수로 10A(10진수로는266)가 들어있고
이 어셈블리어를 해석하자면 EDI라는 저장소에 현재 미네랄값을 넣어라
두번째 EDI 에는 16진수로 112(10진수로는274)가 들어있어
Mov [Eax*4+StarCraft.exe+17f0f0],edi
두번째 어셈블리어는 두개 위치가 뒤바뀌어있지?
이 어셈블리어는 EDI 저장소안에 있는 값을 현재 미네랄값에 넣어라는거임
즉 저 두 값사이에 분명 EDI라는 저장소안에 있는 값을 +8 시켜주는
그런 어셈블리어가 있을꺼라고 나는 생각함
어셈블리어 창이야 윗쪽만 보면돼
1번과 2번 어셈블리어가 있고
그 중간에 add edi,ecx 가 보이지?
즉 EDI저장소에 ECX 저장소를 더하라는 소리야
즉 그렇다면 ECX 저장소에 8이라는 숫자가 들어있다는 결론이 나와
그럼 ECX 저장소의 주소값을 얻어야하는데
그 위에 줄에보면
Movzx ecx,byte ptr[esi+cf] 라는게 보이지?
해석하자면 ECX저장소는 [ESI+CF] 라는 저장소에서 1바이트값을 얻어와
어드레스에 보면 0060ebb8 이 ESI고 + 000000CF를 해주면 그 주소가 나오지
흠 그런데 주소를 맞게 찾아왔는데
왜 값이 0일까? 8이 아니라
여기서 더 생각을 해보자
이건 아마 조건부적인 값일꺼야
즉 SCV가 광물을 채취했을때만 숫자가 8로 바뀔꺼야
광물을 들고있지 않을때는 숫자가 0일꺼고
SCV가 광물을 채취한게 보이지?
광물을 채취하고나니 8로 바뀌었어.
그럼 그 주소값을 분석해보자
사진에도 나와있지만
첫번째만 광물을 채취시 엑세스하는 값이고
나머지는 광물을 반환시 엑세스하는 값이야
내가 최종적으로 만들고싶은건 미네랄를 채취할때 8씩올라가게하는게아니라 더 올라가게 해서 미네랄 핵을 만드는거야
채취시 Mov [EDI+0000000CF],cl
즉 [EDI+0000000CF]값은 현재 SCV가 들고있는 미네랄의 양이고
그 곳에 CL이라는걸 집어넣어
이건 EAX,EBX같은 저장소와는 좀 다르지만.. 설명하면 복잡해지니
이것도 저장소라고 생각해
그럼 결론적으로 저 CL값을 변경해주면 우리는 미네랄을 더 많이 획득 할수있는거야
간단한 스크립트를 짜봤어
해석해주자면
alloc(newmem,1024)
Newmem 이라는 1024kb 크기를 가진 메모리를 생성
label(returnhere)
Returnhere 이라는 이름을 붙임
label(exit)
exit 이라는 이름을 붙임
newmem:
Newmem 이라는 공간에 메모리를 작성
Push eax
EAX를 담아둠 (이걸 왜 담아두냐면 이미 EAX라는 저장소가 다른곳에서 쓰고있기때문에 내가 여기서 잠깐만써야하기때문에 코드가 엉키지말라고 담아두는거임)
mov eax,ff
EAX라는 저장소에 16진수 FF 를 집어넣음(10진수로는 255)
Mov [EDI+0000000CF],eax
EAX값을 [EDI+0000000CF]값에 집어넣음 (SCV가 들고있는 광물의 양)
pop eax
EAX를 다시 꺼냄(썼으니까 다시 꺼내둬야죠)
exit:
Exit이라는 공간에 메모리 작성
jmp returnhere
Returnhere이라는곳으로 이동
"StarCraft.exe"+F3B3F:
원래 코드위치 메모리에 작성
jmp newmem
Newmem으로 이동
nop
Nop (크기를 맞추기위해서 쓰는 아무것도 안하는코드)
returnhere:
Returnhere 라는메모리를 작성
존나 뭐가 거창해 보이긴하는데
결국에는 원래 코드값에 내 코드 값을 끼워두는거라고 생각하면됌
이제 됬을것같네요
영상을 보죠
붐업
설명중에 조금 명칭이 다른게 몇개있긴 하지만
ㅊㅊ
외쿡인
굳이 지적은 안하겠다만.
차치하고
거의 백퍼 한국 온라인게임은 치트엔진 같은걸론 씨알도 안먹힘...
근데 해외 퍼블리싱 온라인게임은 슈ㅣ발 잘뚤리졍;
아무리 한국 게임회사들이 똥망 운영으로 욕먹어도 ,
님들 외국 온라임 게임 해커들 무법자마냥 돌아다니는거보면 입이 안다물어지실듯.
흑기
딱히 게임가드 우회가 어려운것도아니고
양구십미리
저거 쓸려고하면 바로 게임 다운되거나 경고 먹거나ㅋㅋ
붐업
어지간한 게임은 다 핵 가능하다.
우선 게임가드 프로그램은 해외 포럼돌아다니면
CRC 우회할 수 있는 방법이 있다. 물론 국내랑 버전이 다르긴 하지만
어차피 어느정도 실력이 있으면 그리 어려운 일이 아니때문에
우회를 할 수 있다.
CRC 우회를 하면 거의 게임가드 기능이 무용지물이 되는거기때문이고
직접적으로 메모리를 건들여도 감지 못 하는 게임이 많고
감지하는 게임은 위의 흑기가 사용한 코드케이브 기법으로도 잘 된다.
( 대표적으로 메이스플스토리,사이퍼즈가 있겠다)
기본적으로 국내에서 가장 많이 사용하고 있는 핵은
DLL인젝션,코드케이브,패킷조작 이라고 생각하면된다.
또한 클라이언트 메모리를 조작해서
모션을 엄청빠르게해서 흔히 노딜레이라고 부르는 핵같은 경우는 거의 감지되지 않음..
최근에 겟앰프드라는 게임에서
미션을깨면 게임머니 G머니를 주는게 있는데
이걸 메모리조작해서 캐쉬를 획득할 수 있게 조작하는것도 본적이 있다.
베지밀 비
성현아
흑기
프로그램이 어떤방식으로 구동되는지 모르면 핵도 만들기가 힘들어
붐업
그리 어렵진 않아.
어차피 쓰는건 한정적이니까
우선 치트엔진 튜토리얼을깨면
기본적으로 어떠한 방식으로 작동되는지를 알고
스택,포인터,어셈스크립트 딱 이 3가지만 중점적으로 배우고
혹시나 게임핵 판매하는거 있으면 구매해서
이게 어떤식으로 구동되는지 알아내고하면
한두달이면, 어느정도 게임핵에 대한 개념은 잡을 수 있음.
we65899
aeonblast
-좆중1-
성현아
닉넴좀지어줘
비창
흑기
제가 스마트폰게임은 하지않아서 관심을 가지지않았음
비창
흑기
비창
좉중딩
logspears
셩잇님
프리바람 하고있는데 프리서버 부분에서 자세하게 설명이 안되어있어서 이부분에 댓글씀
이해가 다 되는데 프리서버에서 내가 체력회복량이다던가 체력랑을 수정하고싶은데
그게 잘 안됨 자꾸 팅겨버림..
조금 더 자세하게 온라인부분에서 알려줬으면 하는 바람임
무적이던가 체력부분에서는 찾고 수치찾으려고 체력깍으려면 팅겨버리네