Cheat Engine 2020. 4. 10. 16:09

준비물

1. 치트엔진 6.8src https://m.blog.naver.com/hack_kr/221891620241

2. 라자루스 http://www.lazarus.freepascal.org/index.php?page=downloads

3. asr http://gusqls9901.tnaru.com/files/mc/board/0/220/actualsr_lbr_1_rbr_.zip

4. windows driver kit http://software.naver.com/software/summary.nhn?softwareId=MFS_104443

5. 아크로 에디터 http://www.acrosoft.pe.kr/board/63446

 

주의사항

driver kit 설치시 전부 체크후 설치할 것!

 

1. 6.8src를 c드라이브에 압축해제후 DBKKernel 풀더안의 ce.bet을 오른쪽 클릭후 아크로에디터로 열기

 

2.copy .\obj%BUILD_ALT_DIR%\i386\지정하고픈 엔진의 이름 5글자.sys "..\Cheat Engine\bin\지정하고픈 엔진의 이름 5글자.sys" goto successend: x86success:

  copy .\obj%BUILD_ALT_DIR%\amd64\지정하고픈 엔진의 이름 5글자.sys "..\Cheat Engine\bin\지정하고픈 엔진의 이름 5글자.sys" goto successend

 

굵게 처리된 부분을 수정해야하며 영어와 숫자로만 엔진의 이름을 정해야함. 수정후 꼭 좌상당의 저장을 누를것.

 

ex) obj%BUILD_ALT_DIR%\i386\star1.sys"

 

3. 저장을 완료한 후 다시 DbkKernel 풀더의 sources.ce를 열어 targetname에 앞서 ce.bet에 수정했던 엔진의 이름을 입력후 저장

 

ex) targetname=star1

 

4. windows driver kit에 Checked Build Environment을 열게되면 명령프롬포트창이 열림. (32비트용 x86, 64비트용 x64) 

   프롬포트창에 cd c:\CheatEngine64src\DBKKernel 을 입력해준다. (이는 자신이 소스파일을 설치한 경로를 설정해 주어야하며 앞의 예제는 c드라이브에 압축을 풀었을시 기본경로임.)

   입력후 다시 ce를 입력. 

   "1개의 파일이 복사되었습니다." 라는 말이 나와야 정상적으로 성공. 만약 실패시 처음부터 다시 시도할것.

 

5. cheatengine64src풀더안의 bin풀더를 열게되면 새롭게 복사한 sys파일이 생성되어 있어야함. 

 

ex) ...\bin\star1.sys

 

6. 다시 src풀더로 돌아가 cheatengine.lpi를 실행. 뭔가 복잡한 창이 뜨지만 우리와는 별 관계없음. 

   상단 툴바에 project->project inspector 실행.

   검색창에 main을 검색후 mainunit2.pas를 더블클릭

 

7. resoursestring부분의 ceneme='엔진의 이름' 부분을 입맛에 맞게 변경후 컴파일 진행 (단축키 F8)

 

ex) ceneme='핵커엔진' 

 

8. 다시 DBKKernnel풀더로 돌아가  IOPLDispatcher.c 파일을 아크로에디터로 열기

   많은 단어들이 나오는데 우리가 수정해야할 부분을 검색(ctrl+f)하여 찾아줌

   우리가 수정해야하는 부분은 ReadProcessMemory, WriteProcessMemory, GetMemoryRegionData 임.

   검색하게되면 ntStatus=ReadProcessMemory( (DWORD)pinp->processid-0x0000,null, (PVOID)pinp 블라블라 나올텐데

   빨간부분을 수정해야함. 자신이 원하는 우회값을 숫자로 입력 단, IOPLDispatcher.c를 수정할땐 반드시 -를 붙여야함.

 

ex) processid-0x5480

   

    3개(ReadProcessMemory, WriteProcessMemory, GetMemoryRegionData)를 검색하여 모두 같은값으로 수정해야함. 

 

9. 다시 6번과 같이 치트엔진을 열어주고 마찬가지로 상단 툴바의 project->project inspector를 실행. 검색창에 dbk를 검색하고 dbk32\DBK32functions.pas를 더블클릭후

   검색기능으로 input.ProcessID:=handlelist[i].processid 를 검색후 input.ProcessID:=handlelist[i].processid+0x0000의 빨간부분에 8번에서 설정한 우회값을 재입력

   단, 8번에서는 반드시 '-'를 붙여야 했지만 여기서는 반드시 '+'를 붙여야함.

 

ex)input.ProcessID:=handlelist[i].processid+0x5480

*프로세스 아이디 제일 쉬운 우회방법입니다. 실제사용은 매우 불가능합니다! 참고바랍니다.

 

posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 15:57

사진 설명을 입력하세요.

제일먼저 해야할일은 튜토리얼창 왼쪽아래에 있는 값의 주소를 찾아야합니다.

100 검색, Change value를 클릭해주신후 바뀐값을 검색해주시면 웬만하면 한번에 나옵니다.

 

사진 설명을 입력하세요.

치트테이블로 보낸후 오른클릭 -Find out what writes to this address를 클릭해줍니다.

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

Yes 클릭합시다!

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

처음보는 새로운창이 떴습니다.

우리는 여기서 change value를 클릭할때마다 어떤넘이 자꾸 값을 변화시켜주는지 찾을 수 있습니다.

 

사진 설명을 입력하세요.

튜토리얼에서 change value를 클릭해주세요. 누르는순간 새로운게 목록에 뜨는것을 확인할 수 있습니다.

존재하지 않는 이미지입니다.

사진 설명을 입력하세요.

목록에 뜬 코드를 클릭해주시고Replace를 클릭해주세요.

"Change of mov [eax],edx"라고 써있네요.

드이어 어셈블리어 언어가 나왔습니다...!

 

사진 설명을 입력하세요.

다시한번Replace를 클릭해주시면"Change of nop "으로 바뀌어는걸 확인할 수 있습니다.

아마 튜토리얼에서Change value를 클릭하면 이놈이"Change of mov [eax],edx"라는 명령어를 따라서

값을 자꾸 변경해주는것이였을겁니다.Change of nop으로 바꿔 거세시켰으니 더이상 아무짓도 못할겁니다.

 

사진 설명을 입력하세요.

잘 됬는지 Change value 을 클릭하세요!

아무리 눌러도 값이 변하지 않아야 정상입니다.

이번 튜토리얼 처음보는 언어인 어셈블리언어가 나왔습니다.

이해하기가 어렵습니다.

이런식으로 값을딴게 된다면 쿨타임 초기화,무한,무시 등등 쓸수있습니다.

posted by 핵커 커뮤니티
:
Cheat Engine 2020. 4. 10. 15:53

"decreased value"를 사용하는 방법과 "decreased value by"를 사용하는방법, 이렇게 두가지입니다.

 

그러나 dark byte는 "decreased value"를 사용하는 방법만을 알려주겠다고 했지만

 

저는 "decreased value""decreased value by" 두개 다 알려드리겠습니다.

(현재 단계에서는 dark byte의 말대로 두개다 사용은 가능합니다.)

스캔타입을 Unknown initial value 로 선택후 First Scan을 클릭합니다.

 

자료형에 상관없이 게임메모리에 저장된 모든걸 검색합니다.

*프로세스에 있는 모두다 검색해서 약간의 시간이 걸릴수있습니다.

다 검색하면 값이 (Found) [654,336]입니다.

첫번째 "decreased value"를 사용을 해보자

decreased value는 처음 스캔한 값이랑 비교했을때 더 작아진값을 전부 보여줍니다.

얼마나 감소했던지간에 그냥 감소한것은 다 보여줍니다.

Hit me 클릭후 넥스트 스캔 클릭한다.

그러면 값이 감소가 된다.

한번더 Hit me 클릭한후 넥스트 스캔 클릭한다.

그러면 숫자가 더 작아졌고 더 이상 작아지지 않는다 튜토리얼일때 값이 0~500이라고 했으니 눈에 띄는 [385]가 보인다. 더블클릭한다.

그리고 나서 벨류값을 [5000]으로 설정하면 끝.

그러면 넥스트가 생긴다.

두번째 "decreased value by"를 사용

 

decreased value by는 처음 스캔한 값이랑 비교했을때 빈칸에 적은 숫자만큼 작아진값만을 보여줍니다. 정확히 입력한숫자만큼 감소한값만을 보여주기때문에 보다 더 간단하고 빠르게 답을 찾을 수 있습니다.

Hit me 클릭하면 밑에 숫자가 뜬다. 저는 -10 이네요

스캔타입을 Decreased value by로 선택후, 감소한 값을 입력해주시고 Next Scan을 클릭합니다.

한번에 더 작아진 값이 보이네요!

더 이상 중요들지 않으니 벨류값 눈에띄는 [50]을 더블클릭한후 벨류값을 [5000]을 하면 넥스트 스캔이 된다. 이 방법이 좀 더 빠르게 값을 찾아서 쉽네요!

이상으로 치트엔진 모르는초기값 찾기 강의였습니다.

모르거나 오류나시는분들은 댓글로 질문 받습니다.

비밀댓글 하셔두 무방합니다.

posted by 핵커 커뮤니티
: