'치트엔진사용방법'에 해당되는 글 6건
- 2020.04.10 :: [치트엔진강의] 게임 우회하는 방법
- 2020.04.10 :: [치트엔진강의] 다중 포인터 추적 첫번째 방법 (7)
- 2020.04.10 :: [치트엔진강의] 코드 인젝션 (삽입) 배워보자 (6) 1
- 2020.04.10 :: [치트엔진강의] 포인터 값따기 (5) 1
- 2020.04.10 :: [치트엔진강의] 코드탐색기 값찾기 (3)
- 2020.04.10 :: [치트엔진강의] 타켓지정&정확한값 찾기 (1)
준비물
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
*프로세스 아이디 제일 쉬운 우회방법입니다. 실제사용은 매우 불가능합니다! 참고바랍니다.
'Cheat Engine' 카테고리의 다른 글
[Cheat Engine] 치트엔진 우회하는방법 (프로세스우회법) (2) | 2020.04.15 |
---|---|
[치트엔진강의] 다중 포인터 추적 두번째 방법 (7) (0) | 2020.04.10 |
[치트엔진강의] 코드 인젝션 (삽입) 배워보자 (6) (1) | 2020.04.10 |
[치트엔진강의] 포인터 값따기 (5) (1) | 2020.04.10 |
[치트엔진강의] 부동소수점 값찾기 (4) (0) | 2020.04.10 |
다중 포인터 추적해보자
튜토리얼에 나온 값을 스캔합시다.
치트테이블의 값을 오론쪽 클릭 Findout what accesses this address 클릭합시다.
그러면 새창이 뜹니다. 값에 변화가 있을때 누가 이 주소에 접근했는지 추적해주는 창입니다.
튜토리얼에서 Change value를 클릭해줍니다.
Change value를 클릭할때마다 값이 변하죠?
그러면 값을 쓰기/읽기 위해 접근하는 것들을 모두 감지해 목록에 표시해줍니다.
참고로 진행중에 Change pointer를 클릭해버리면 포인터위치가 다 변해버립니다.
실수로라도 클릭하지 않도록 주의하세요.
2개가 나왔네요 여기서는 하나는 쓰기 하나는 읽기입니다.
mov eax,[esi+18]이 읽기입니다.
이유 > Findout what writes this address로 볼때 mov[esi+18,eax가 나와서 입니다.
그러니 mov eax,[esi+18]을 더블클릭합니다.
TIP - Findout what accesses this address = 쓰기 + 읽기 탐지
Findout what writes this addresswrites = 쓰기만 탐지
포인터의 상세한 정보가 나타납니다.
하지만 저희가 봐야할곳은 [OOOOOO]입니다.
esi > 001FFA78 이네요~ 그리고 오프셋은 18이네요!
값이 나왔네요
여기서는 메모장을 활용하세요.
첫번째
주소
[0027FBF0]
오프셋
[18]
방금 치트테이블에 등록한것을 오른클릭 - Find out what accesses this address 클릭합시다
튜토리얼에서 Change value 클릭하세요
mov eax,[esi]더블클릭하고 esi와 offset을 적어둔후 닫아주시면됩니다.
esi > 0027FBF0 / 오프셋은 0이네요
값 > 0027FBF0 를 스캔 > 주소 02FCE01C 를얻었습니다.
이거 또한메모합시다.
첫번째
주소
[0027FBF0]
오프셋
[18]
두번째
주소
02FCE01C
오프셋
0
방금 등록한 값을 오론쪽으로 클릭합시다.
튜토리얼에서 Change value를 클릭합시다
esi > [02FCE008] 오프셋 > [14] 이네요
띠~용 값이 두개나 나왔네요 당황하지말고 둘다 해보시면 됩니다!
튜토리얼에서Change value를 클릭했을때 하나는 아무것도 안뜨고 다른하나는 하던대로 뜹니다.
찾았다! 이 가짜놈 버립시다.
여기에서 또 메모 하셔야합니다 ^^
순서
1
주소
[0027FBF0]
오프셋
[18]
순서
2
주소
02FCE01C
오프셋
0
순서
3
주소
0029DFCC
오프셋
14
esi > 0029DFC0 오프셋은 0C
오우 드디어 찾았습니다. 원하고 원하던 초록색 값...
순서
1
주소
[0027FBF0]
오프셋
[18]
순서
2
주소
[02FCE01C]
오프셋
[0]
순서
3
주소
[0029DFCC]
오프셋
[14]
순서
4
주소
[0057C3A0]
오프셋
[0C]
어드레스 메모리뷰어 클릭합시다.
포인터 클릭한후 코드값/오프셋 메모한거 적으시면 됩니다!
처음에 있던값이랑 현재에 있던값이랑 동일하다면 성공한거입니다.
벨류 [5000] 으로 변경한후 OK 클릭!
짜짠~ 넥스트버튼이 활성화가 됐네요!
코드 인젝션을 배워보자.
원하는 위치에 사용자가 작성한 코드를 삽입해서 게임을 자유자재로 다룰수 있게됩니다. 재밌고 어렵지만 코드 인젝션은 활용도가 매우 높으니 꼭 알아두면 좋을껍니다.
Hit me를 클릭하면 1씩 고정으로 감소합니다!
100스캔후 99스캔합니다.
더브클릭해서 치트테이블로 보낸후 오론쪽클릭후 Find out what writes to this address 클릭합니다.
Decrem ent by 1 <<< 1씩 감소한다는 뜻입니다.
처음보는 창이 뜹니다. 이창은 메모리뷰머 (메뷰) 입니다. 게임의 정보들은 0~9 + A~F를 사용하여 16진수로 메모리에 저장됩니다.
TOOLE - AUTO ASSEM BLE 클릭 OR 단축키 컨트룰 + A 누르면 창이 뜹니다.
Template 클릭후 코드 인젝션 클릭합시다
어느주소로 점프하라는 군요 가고싶은곳은 1씩 감소시키는 명령어가 있는곳인데
근데 +[226BC] 가 있네요...
아까 메모리뷰어에 있던 어드레스 값이네요
originalcode 봅시다!
이부분이 체력을 1씩 감소 시키는 명령어입니다.
"ADD [Adress],Value" 하시면 Adress의 주소에있는 값을 Value씩 증가시켜줍니다.
그러므로 2씩 증가시키려면 ADD [ebx+00000454],2 를 입력해주면 되겠죠?
어셈블리어 기본적인 명령어 더 알고싶으면
[AssemBly] 기본적인 명령어
* PUSH: SP 레지스터를 조작하는 명령어 중의 하나로 스택에 데이터를 저장한다.pushpush eax ; ea...
blog.naver.com
2을 추가했으니 그러면 2씩 추가 되겠죠? Yes 클릭합시다
코드삽입이 가능합니다. 진짜 삽입하시겠습니까?
OK 누르고나서 Auto Aessem ble 창은 닫지마세요!
분명 99가 됐는데 왜 다시 100으로 돌아왔을까요!
+2을 추가했다면 감소 시키는 명령어는 그대로입니다.
즉 -1 +2 =+1 이 되겠죠
TIP - //는 한줄 주석입니다. (// 뒤에있는 명령어를 인식하지 말라는 뜻입니다. 대부분 C언어 자바등에서도 많이 쓰입니다.)
그리고나서 [Execute] 클릭합니다
넥스트 버튼이 활성화 됐습니다.
코드 인젝션을 배웠는데 많이 어렵고 신기하고 재미있을껍니다.
이 부분에서 더욱더 유용하게 사용할려면 어셈블리언어를 알아야합니다.
'Cheat Engine' 카테고리의 다른 글
[치트엔진강의] 게임 우회하는 방법 (0) | 2020.04.10 |
---|---|
[치트엔진강의] 다중 포인터 추적 두번째 방법 (7) (0) | 2020.04.10 |
[치트엔진강의] 포인터 값따기 (5) (1) | 2020.04.10 |
[치트엔진강의] 부동소수점 값찾기 (4) (0) | 2020.04.10 |
[치트엔진강의] 코드탐색기 값찾기 (3) (0) | 2020.04.10 |
여기서 부터는 조금 힘들거나 헷갈릴수 있습니다. (약간 머리아픔)
하나는 Change value, 또다른 하나는 Change pointer입니다.
Change value는 값만을 바꿔주고 Change pointer는 3초후에 값뿐만 아니라 주소도 바꿔줍니다.
우선 Change value만 사용해 값의 주소를 찾아주세요, 밸류타입은 4byte입니다.
매우쉽게 찾았습니다. 주소는 017977A8 이군요.
치트테이블로 보낸후 오른클릭, Find out what writes to this address를 클릭해줍니다.
튜토리얼의 Change value를 클릭해주세요.
그러면 새창의 목록 새로운 항목이 생깁니다...
저것에 대한 더 자세한정보를 봐야합니다. 더블클릭하거나 한번클릭후 More info를 클릭해주세요
상세정보가 떴습니다. mov [edx],eax라고 써있습니다.
eax의 값을 edx가 가리키는 주소로 복사하라는 어셈블리 명령어입니다. 쉽게 말하면 "edx가 가리키는 값 = eax"라는 뜻.
Change pointer를 클릭할때마다 eax가 변하기때문에 치트테이블에 등록해둔 값도 변하게됩니다.
우선 이 창은 닫지않고 그대로 둘 수 있습니다.
만약 닫을거라면 [] 안에 있는 주소를 기억해둡시다. 아래에 네모칸에 써있네요.
제경우는 [edx]니까 edx주소인 "017997A8"을 기억해 두겠습니다.
※ 어셈블리언어를 더 알고싶은 분들은 참고 해주시면 되겠습니다. 메모장으로 기초적인 간단하게 정리 했으니 참고바랍니다.!
어셈블리(assembly) 기초 강좌 메모장 TXT
어셈블리 강의 메모장입니다.
blog.naver.com
아까 기억한 주소 있죠? edx = 017977A8.
꼭 HEX에 체크를 하신후 주소를 입력해주세요. 그리고 스캔을하면 결과가 나옵니다.
저는 두개가나왔네요, 지금 찾아야 하는건 포인터입니다.
그럼 둘중에 뭐가 포인터일까요? 정답은 바로 녹색으로 써있는것.
포인터는 녹색으로 표시하자는게 치트엔진의 약속이라고 생각했는데 그게아니네요.
TIP - 기준주소가 정적인 주소일때 녹색으로 보여준다네요.
Add Address Manually를 클릭해주세요. 수동으로 주소를 추가한다는 메뉴입니다. 새창이 뜨네요.
우리가 추가하려는것은 일반적인 주소가 아닌 포인터의 주소입니다.
새창의 Pointer칸에 체크를 하고, Address of pointer에 포인터의 주소를 입력해줍니다.
제경우에는 0057C370 이네요.
Offset에는 0을 적어주시면 됩니다.
설명을 보니 가끔 복잡한 경우에는 Offset도 계산해서 구해내야 한다는데,
전 아무리 재실행해도 쉽게만 나오네요;; 도저히 스크린샷을 찍을수가 없습니다.
그냥 0적어주세요 오프셋은.
입력을 했더니 This pointer points to address에 뭔가가 적혀있네요.
017977A8? 이게 뭘까요.
정답은 포인터가 가리키는 주소입니다.
치트테이블을 보면 값의 주소가 017977A8로 포인터가 가리키는 주소와 일치한다는걸 확인 가능합니다.
드디어 포인터를 확실하게 찾았네요. OK를 클릭해서 치트테이블에 포인터를 추가해주세요
목록에 포인터를 추가했습니다. 주소가 P->017977A8 인걸보아 확실해졌습니다.
값을 5000으로 바꾸고 Active에 체크를 합니다.
옛날버전에는 freeze라고 써있었는데 최신버전인 6.1버전은 active로 바뀌었네요.
active에 체크를할시 값이 강제로 고정됩니다. 체크를안하면 자꾸만 5000이 아닌 다른값으로 변합니다.
※ active기능 사용 예로는 게임에서 총알값을 찾아냈을때 freeze에 체크하면,
쏠때 총알수가 29개가되자마자 30개으로 돌아가고 29개 됬다가 바로 30개로 돌아가고 이럽니다.
한마디로 무한총알인거죠. 값을 10000발 이렇게 바꿀필요가 없어집니다.
역시 포인터값을 바꿨더니 값도 따라서 5000으로 바뀌어 버리는군요.
튜토리얼에서 Change pointer를 클릭시 정상대로라면 3초후 포인터가 값과 주소를 명령어대로 바꿉니다.
하지만 우리가 명령어를 따르는 대신 값을 5000으로 바꾸도록 해킹 해주었고 그 값을 고정시켜주었습니다.
그러므로 Change pointer를 클릭시 3초후 값이 5000으로 될겁니다!
3...2....1초 지나고 나니 넥스트 버튼이 활성화 됐습니다!
이 구간에서는 약간 머리가 다소 아플껍니다. 아무것도 모르는상태라 더욱더 머리가 아픕니다!
하지만 포인터로 이용하여 그 값을 따고 이렇게 무사히 클리어 했네요
궁금한점,안되는부분 있다면 댓글로 남겨주시면 답변해드리겠습니다.
비밋댓글로도 환영하니 부담없이 질문주세요~
'Cheat Engine' 카테고리의 다른 글
[치트엔진강의] 다중 포인터 추적 두번째 방법 (7) (0) | 2020.04.10 |
---|---|
[치트엔진강의] 코드 인젝션 (삽입) 배워보자 (6) (1) | 2020.04.10 |
[치트엔진강의] 부동소수점 값찾기 (4) (0) | 2020.04.10 |
[치트엔진강의] 코드탐색기 값찾기 (3) (0) | 2020.04.10 |
[치트엔진강의] 모르는 초기 값 찾기 (2) (0) | 2020.04.10 |
사진 설명을 입력하세요.
제일먼저 해야할일은 튜토리얼창 왼쪽아래에 있는 값의 주소를 찾아야합니다.
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 을 클릭하세요!
아무리 눌러도 값이 변하지 않아야 정상입니다.
이번 튜토리얼 처음보는 언어인 어셈블리언어가 나왔습니다.
이해하기가 어렵습니다.
이런식으로 값을딴게 된다면 쿨타임 초기화,무한,무시 등등 쓸수있습니다.
'Cheat Engine' 카테고리의 다른 글
[치트엔진강의] 포인터 값따기 (5) (1) | 2020.04.10 |
---|---|
[치트엔진강의] 부동소수점 값찾기 (4) (0) | 2020.04.10 |
[치트엔진강의] 모르는 초기 값 찾기 (2) (0) | 2020.04.10 |
[치트엔진강의] 타켓지정&정확한값 찾기 (1) (0) | 2020.04.10 |
Cheat Engine 7.0 다운받기 (최신버전) (0) | 2020.04.10 |
우선 치트엔진 설치후 치트엔진을 실행하게 되면 치트엔진 프로그램이랑 튜토리얼 2개가 나온다. (스킵을 할수있다 단 초보자들은 연습을 해야한다.)
첫 프로그램 실행하면 이렇게 뜬다.
[패스워드] > [090453]
치트엔진 프로그램을 보면 왼쪽 상단좌측에 돋보기 모양이 있다. (프로세스 프로그램) > 현재 사용되고있는 프로세스입니다. 클릭하면 이렇게 프로세스 리스트가 뜬다. 이걸 튜토리얼을 선택하여 오픈한다. ( 더블클릭해두됩니다.)
위에 프로세스가 뜬다. 이러면 적용이됐다. 듀토리얼로 넘어가자.
넥스트하고 나면 이런식으로 나온다.[Hit me] 그 위에 100숫자가 보인다.
100인 벨류값을 1000으로 만들어야한다.
*히트을 클릭하면 숫자가 줄어든다. (클릭할때마다 1~2숫자으로 랜덤 줄어듬)
Valub(벨류) 100숫자 입력한후 뉴 스캔한다.(왼쪽 스캔)
스캔하면 왼쪽 어드레스값이 뜬다. 그리고 [Hit me]을 클릭한다. (자유롭게 클릭해두 무방하다.) 그리고 난후 나는 89 까지만 클릭을하고 다시 치트엔진으로 넘어가자
다시 여기에서 89을 (Value)벨류에 적고 난후 넥스트 스캔한다 (오론쪽 클릭)
넥스트 스캔하고나면 어드레스에 값이 1개 나온다. 이러면 성공적으로 됐다.
그리고 나서 더블클릭후 밑에보면 값이 있을꺼이다. 그러면 (Value) 벨류을 더블클릭하면 체인지 벨류가 나온다. 그러면 튜토리얼에서는 1000벨류을 만들어보자 였다 그러면 [1000] 적고 ok 클릭한다.
그러면 넥스트 창이 뜬다. 그러면 끄읕~
'Cheat Engine' 카테고리의 다른 글
[치트엔진강의] 포인터 값따기 (5) (1) | 2020.04.10 |
---|---|
[치트엔진강의] 부동소수점 값찾기 (4) (0) | 2020.04.10 |
[치트엔진강의] 코드탐색기 값찾기 (3) (0) | 2020.04.10 |
[치트엔진강의] 모르는 초기 값 찾기 (2) (0) | 2020.04.10 |
Cheat Engine 7.0 다운받기 (최신버전) (0) | 2020.04.10 |