반응형

Step 6: Pointers: (PW=098712)

In the previous step I explained how to use the Code finder to handle changing locations. But that method alone makes it difficult to find the address to set the values you want.

That's why there are pointers:


At the bottom you'll find 2 buttons. One will change the value, and the other changes the value AND the location of the value.

For this step you don't really need to know assembler, but it helps a lot if you do.


First find the address of the value. When you've found it use the function to find out what accesses this address.

Change the value again, and a item will show in the list. Double click that item. (or select and click on more info) and a new window will open with detailed information on what happened when the instruction ran.

If the assembler instruction doesn't have anything between a '[' and ']' then use another item in the list.

If it does it will say what it think will be the value of the pointer you need.

Go back to the main cheat engine window (you can keep this extra info window open if you want, but if you close it, remember what is between the [ and ] ) and do a 4 byte scan in hexadecimal for the value the extra info told you.

When done scanning it may return 1 or a few hundred addresses. Most of the time the address you need will be the smallest one. Now click on manually add and select the pointer checkbox.


The window will change and allow you to type in the address of a pointer and a offset.

Fill in as address the address you just found.

If the assembler instruction has a calculation (e.g: [esi+12]) at the end then type the value in that's at the end. else leave it 0. If it was a more complicated instruction look at the calculation.


example of a more complicated instruction:

[EAX*2+EDX+00000310] eax=4C and edx=00801234.

In this case EDX would be the value the pointer has, and EAX*2+00000310 the offset, so the offset you'd fill in would be 2*4C+00000310=3A8.  (this is all in hex, use calc.exe from windows in scientific mode to calculate)


Back to the tutorial, click OK and the address will be added, If all went right the address will show P->xxxxxxx, with xxxxxxx being the address of the value you found. If thats not right, you've done something wrong.

Now, change the value using the pointer you added in 5000 and freeze it. Then click Change pointer, and if all went 

right the next button will become visible.



extra:

And you could also use the pointer scanner to find the pointer to this address


파파고번역

##############################################################################


6단계: 포인터: (PW=098712)
이전 단계에서 나는 위치 변경을 처리하기 위해 코드 검색기를 사용하는 방법을 설명했다. 그러나 그 방법만으로는 원하는 값을 설정할 주소를 찾기가 어렵다.
그래서 다음과 같은 요점이 있다.

아래쪽에는 단추가 두 개 있다. 하나는 값을 변경하고, 다른 하나는 값과 값의 위치를 변경한다.
이 단계에서는 조립자를 꼭 알아야 할 필요는 없지만, 그렇게 하면 많은 도움이 된다.

먼저 값의 주소를 찾으십시오. 이 주소를 찾으면 이 기능을 사용하여 액세스하는 주소를 확인하십시오.
값을 다시 변경하면 목록에 항목이 표시된다. 해당 항목을 두 번 누르십시오. (또는 추가 정보를 선택하고 클릭)하면 명령이 실행되었을 때 발생한 일에 대한 자세한 정보가 포함된 새 창이 열린다.
조립자 지침이 '[]와 '] 사이에 아무 것도 없으면 목록의 다른 항목을 사용하십시오.
만약 그것이 그렇게 한다면, 그것은 당신이 필요로 하는 포인터의 가치가 될 것이라고 생각하는 것을 말할 것이다.
메인 커크 엔진 창으로 돌아가십시오(원하면 이 추가 정보 창을 열어 둘 수 있지만, 닫으면 [와 ] 사이의 내용을 기억하고 추가 정보가 알려준 값에 대해 16진수로 4바이트 스캔을 수행하십시오).
스캔을 마치면 1 또는 수백 개의 주소를 반환할 수 있다. 당신이 필요로 하는 대부분의 시간은 가장 작은 주소일 것이다. 이제 수동으로 추가를 클릭하고 포인터 확인란을 선택하십시오.

창이 변경되어 포인터와 오프셋의 주소를 입력할 수 있다.
당신이 방금 찾은 주소를 기입하시오.
조립자 지침 끝에 계산(예: [esi+12])이 있는 경우 끝에 값을 입력하십시오. 그렇지 않으면 0을 남겨라. 좀더 복잡한 지시였다면 계산을 보라.

더 복잡한 지침의 예:
[EAX*2+EDX+00000310] ax=4C 및 edx=00801234.
이 경우, EDX는 포인터가 갖는 값이고, EAX*2+00000310은 오프셋이므로, 입력하는 오프셋은 2*4C+00000310=3A8이 된다. (이 모든 것은 16진수이며, 과학 모드의 창에서 cale.exe를 사용하여 계산하십시오.)

튜토리얼로 돌아가 확인을 클릭하면 주소가 추가되며, 모두 올바르게 되면 주소에 P->xxxxxxx가 표시되고, xxxxxx는 찾은 값의 주소가 된다. 그게 옳지 않다면, 넌 잘못한 게 있어.
이제 5000에 추가한 포인터를 사용하여 값을 변경하고 동결하십시오. 그런 다음 포인터 변경을 클릭하고 모두 표시되면
오른쪽 다음 버튼이 보일 것이다.


추가:
그리고 포인터 스캐너를 사용하여 이 주소로 가는 포인터를 찾을 수도 있다.



######################################################################################### 


이번에는 변경되는 포인터를 추적하는 문제이다.

위 번역은 굉장히 읽기 힘든거같다.

특정주소의 값이 변경 되는게 아니라 주소가 변경된다면 변경되는 값만으로 추적하기 어렵다.

우리는 주소가 변경되는 곳을 찾아야한다.

먼저 이전 단계에서 햇던것 처럼 특정값을 가지는 주소를 찾는다.

이 주소는 change point를 눌릴때마다 변경된다.

우리는 이 주소를 담고있는 주소를 찾아야한다.

이 주소로 접근하는 주소들을 찾아보자.


1번 방법

본문의 글대로 find out what accesses this address로 들어가보면 특정주소에 값을 넣는 부분이 있다.

mov [rdx], eax 이다. 다른 것들은 해당 주소에서 값을 빼오는 것을 볼수있다.

이 부분을 더블클릭 또는 more information으로 살펴보면 mov [rdx],eax 윗줄에 보면 rdx를 설정하는 부분이 나온다. mov rdx,[100306AD0] 이라는 명령어가 있는데 rdx를 설정하는 부분이다.

그렇다면 우리는 100306AD0의 주소에 있는값을 주소로 한다는 것을 알수있다.

change pointer를 눌리면 100306AD0에 있는 값이 바뀌는 것이다.



2번방법

이 방법이 아닌 쉬운방법은 첫번째로 얻은 주소값을 다시 넣어서 scan해 보는것이다. 이때 주소는 hex값이므로 hex에 체크를 눌러주고 scan한다.

scan 해보면 한개의 주소 혹은 여러개의 주소가 나오는데 일단 모두 추가해주자.

chage pointer를 눌러보면 value값이 변경되는 것이 있을것이다.

value값이 바뀌는 주소가 변경되는 주소를 담고있는 주소이다.





이제 포인터를 찾았으니 다시 메인 화면으로 돌아와 Add address Manually를 통해 해당 주소를 추가해보자

포인터를 체크하고 밑에 값에 100306AD0를 입력하고 ok를 눌리면 포인터의 주소를 담고있는 주소를 추가할수 있다. 이제 100306AD0에 있는 값을 동결시키면 된다. value값을 5000으로 변경후 active줄에있는

ㅁ를 클릭하여 체크해주면 된다.

다시 돌아와 change pointer를 눌러주면 next버튼이 활성화 되는것을 알수있다.


글로 설명하다보니 이해하기 힘든부분이 있을 수 있다. 번역또한 매끄럽지 않아서 이해가 되지 않는다면 유튜브 영상들을 참고하는게 좋을거같다.





반응형

'보안 > 치트엔진' 카테고리의 다른 글

Cheat Engine 튜토리얼 8번  (0) 2020.02.16
Cheat Engine 튜토리얼 7번  (0) 2020.02.02
Cheat Engine 튜토리얼 5번  (0) 2020.02.02
Cheat Engine 튜토리얼 4번  (0) 2020.02.02
Cheat Engine 튜토리얼 3번  (0) 2020.02.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기