Computer/Crack2009. 5. 18. 21:12


Step 4는 지금껏 우리가 해왔던 4 Bytes가 아닌 double과 float이라는 데이터 타입의 검색입니다. 하지만 데이터 타입만 다를뿐 검색하고 수정하는 과정은 별 다를바 없으니 어렵지 않게 해결할 수 있습니다.

우선 dobule과 float이 무엇인지 궁금하신 분은 아래 링크를 통해 간단히 공부하시기 바랍니다.

Win32 Api - Real Number

자, 필요한 내용을 모두 알아 보았으면 튜토리얼 Step 4를 준비 하도록 하죠.


Heath 값이 float형으로 100, Ammo 값이 double형으로 100 으로 설정되어있습니다. 이 값들을 모두 5000이상으로 바꿔주는게 Step 4의 목표입니다. 그동안 배운 내용을 통해 다양한 Scan type으로 검색이 가능하다는걸 아실겁니다. 오늘은 'Exact Value'와 'Value Between..'을 이용해 각각 검색해 보도록 하겠습니다. 그럼 Cheat Engine을 실행 시키고 튜토리얼을 오픈 시킨후 Value type을 'Float'으로 바꿔주고 100을 검색해 보겠습니다.


6개의 결과가 나왔군요. 금방 끝날거 같습니다. 튜토리얼로 돌아가 'Hit me'버튼을 클릭합니다.


'Health'가 96으로 변경되었습니다. 그럼 96으로 다시 검색해 보겠습니다.


00969DE4가 우리가 찾는 주소겠죠? 아래 리스트 박스로 옮겨 줍니다.


이번엔 'Ammo'값을 다른 방법을 이용해 찾아보도록 하겠습니다. 'New Scan'을 한번 클릭해 주면 다른 검색을 시작할 수 있습니다. 'Value type'을 'Double'로 바꿔줍니다. 'Scan type'은 'Value between..'으로 설정해 주고 첫 번째 Value:박스에 95, 두 번째 Value:박스에 105를 입력해서 검색을 시작해 보겠습니다.


95와 105 사이에 속하는 10개의 결과가 나왔습니다. 튜토리얼로 돌아가 총알을 한번 쓰겠습니다. 'Fire'버튼을 클릭합니다.


'Ammo'값이 99.5로 바뀌었습니다. 이번엔 99와 100 사이의 값을 검색해 보겠습니다.


2개의 결과가 나왔습니다. 100이라는 값을 가진 77152EA8보다는 아무래도 99.5라는 값을 가지고 있는 첫 번째 00969DEC가 우리가 찾는 주소 같습니다. 이번엔 튜토리얼로 돌아가 총알을 한번더 쓰고 Cheat Engine으로 돌아와 아무런 검색도 하지 않겠습니다.


'Fire'버튼을 눌러 총알을 쓰니 'Ammo'값이 99로 변경 되었습니다. Cheat Engine으로 돌아 갑니다.


77152EA8은 100 그대로 지만 우리가 의심하고 있던 00969DEC의 값이 99로 변경되어 있는게 보입니다. 확실하겠죠? 아래 리스트 박스로 옮겨 놓겠습니다.


자, Float형의 Health값 96을 가지고 있는 00969DE4와 Double형의 Ammo값 99를 가지고 있는 00969DEC를 모두 찾았습니다. 이 값들을 모두 5000 이상으로 바꿔주면 Step 4는 끝나게 됩니다. 각각의 Value를 6000으로 만들어 주겠습니다.


이젠 모두 알다시피 값들을 6000으로 바꿨지만 이 수치는 아직 튜토리얼 윈도우 상에 반영되지 않았을 겁니다. 튜토리얼로 돌아가서 'Hit me'버튼과 'Fire'버튼을 한번씩 클릭해 보겠습니다.


성공입니다. 'Next'버튼을 눌러 다음 Step으로 이동 합니다.

Posted by J.sean
Computer/Crack2009. 5. 17. 20:23


Step 3에선 초기값이 얼마인지 모르는 상태에서 시작 합니다. 예를 들어 어떤 게이지가 있는데 게임이 진행됨에 따라 게이지가 늘기도 하고 줄기도 하는 겁니다. 물론 그래픽으로 그 게이지의 상태를 파악할 수 는 있지만 정확한 값은 모르는 겁니다. 이런 방법은 대전 게임에서 유용하게 사용될 수 있을것 같네요. 대표적인 예로 Street Fighter가 있습니다.


얼마전 Street Fighter 4가 나왔더군요..


자, 그럼 Cheat Engine Tutorial Step 3를 준비하시고 Cheat Engine으로 오픈시켜 줍니다.


튜토리얼을 보면 'Hit me'버튼이 있고 그 밑에 상태바가 있습니다. 우리가 알고 있는 것은 값이 0 에서 500의 범위를 갖는다는 것과 'Hit me'버튼을 누를때마다 수치가 약간 줄어든다는 것 뿐입니다.

정확한 초기 수치를 모르므로 'Unknown intial value'로 검색을 시작하도록 하겠습니다. Cheat Engine으로 돌아가 Scan type 을 'Unknown initail value'로 바꿔 줍니다.


이제 'First Scan' 버튼을 클릭합니다.

그러면 아래 그림과 같이 1519616개의 검색 결과가 나오게 됩니다.


튜토리얼로 돌아가 'Hit me'버튼을 눌러 변화를 줘 보도록 하겠습니다.


비활성화 된 'Next'버튼 밑으로 정확히 얼마가 감소되었는지 약 1초 정도 표시 되지만 무시하도록 하죠. 우리는 다시 Cheat Engine으로 돌아가 Scan type을 'Decreased value'로 바꾼후 'Next Scan'버튼을 클릭해 보도록 하겠습니다.


결과가 631개로 줄어 들었습니다. 우리가 찾는 값이 남을때까지 계속 조사해야 겠죠? 튜토리얼로 돌아가 'Hit me'버튼을 눌러 변화를 주고 계속 같은 조건으로 검색해 보겠습니다.


다시 Cheat Engine의 'Next Scan'버튼을 누릅니다.


24개가 남았군요. 다시 한번 해봅니다.



6개 남았습니다. 다시 해보겠습니다.



4개가 남았습니다. 대충 보니 마지막 009652B4의 주소를 가지는 값이 395군요. 왠지 이 값이 맞을것 같지만 확실히 하기 위해 한번더 검사해 보도록 하겠습니다.



다시 4개군요. 한번 더 해보죠.



계속 4개가 남는군요. 더 이상 줄어들지 않으려나 봅니다. 하지만 우리는 009652B4의 값이 우리가 찾는 값에 가깝다는걸 알고 있습니다. 확인해 보도록 하죠. 이 주소를 아래 리스트 박스로 옮기고 5000으로 값을 바꿔줍니다.


자, 그럼 다시 튜토리얼로 돌아가 확인해 보도록 하겠습니다.


역시 우리의 예상이 맞았습니다. 'Next'버튼이 활성화 되었군요. 이제 이 버튼을 누르면 다음 Step으로 넘어 가게 됩니다.

Posted by J.sean
Computer/Crack2009. 5. 17. 20:03


오늘 강좌에선 지난 시간에 공부한 내용을 몇 가지 게임에서 응용해 보도록 하겠습니다. 간단한 내용이지만 특정 수치를 이용하는 대부분의 게임에서 적용 가능한 내용이므로 이 강좌만 완벽히 이해하면 각종 게임에서 돈, 총알, 생명, 특정 아이템등의 수치를 마음대로 변경할 수 있습니다.

그럼 대부분의 시스템에 설치 되어 있는 3D Pinball 게임으로 시작해 보도록 하죠. 3D Pinball을 실행시키고 Cheat Engine으로 오픈하겠습니다.



3D Pinball은 처음 시작시 플레이어에게 3개의 공이 주어집니다. 이런 간단한 사항을 미리 알아 두는게 많은 도움이 됩니다. 그럼 3D Pinball이 오픈되어 있는 Cheat Engine으로 포커스를 이동하여 3으로 스캔을 시작해 보도록 하겠습니다.


역시 간단한 3이라는 수치는 메모리 이곳 저곳에 많은가 봅니다. 596개가 검색되는 군요. 여기서 어느것이 우리의 공 개수 인지 파악해 내긴 힘들겠죠? 다시 3D Pinball로 돌아가 일부러 공 하나를 잃도록 하겠습니다.


오른 쪽 중간쯤에 BALL 값이 2로 바뀌는 군요. Cheat Engine으로 이번엔 2를 검색해 봅니다.


바로 1개의 주소만 남는군요. 이 값이 우리가 찾는 값 일것 같습니다.

아래 리스트 박스로 옮기고 이 수치를 10으로 바꿔 보겠습니다.


자, 그럼 이제 다시 3D Pinball로 돌아가 공을 잃어 보도록 하죠.


공을 하나 잃으니 BALL 값이 사라져 버렸습니다. 포커스를 Cheat Engine으로 옮겨 보도록 하겠습니다.


우리가 찾아낸 주소의 값이 10에서 9로 변경 되었군요. 뭔가 맞아 떨어지는 느낌입니다.
계속 게임을 진행하여 공이 4개 남을때까지 해보죠.


0121AFAE 주소값이 4가 되자 BALL 값이 0으로 되는걸 확인할 수 있습니다. 3이 되면 1, 2가 되면 2 이런식으로 바뀌는 군요.

제가 개발한 게임이 아니므로 정확한건 알 수 없지만 아마도 개발자가 4이상의 수가 입력될리 없다고 생각하여 4이상의 수는 염두해 두지 않은것 같습니다. 그래서 4 이상의 수는 표시가 되지 않는듯 하네요.

이번엔 고전 명작 게임 Princess Maker 2 를 살펴 보도록 하겠습니다.




이 게임은 처음 시작시 500G의 돈이 주어 집니다. 이 돈으로 딸을 잘 키워 공주로 만드는게 목적이죠. 플레이어의 게임 진행에 따라 돈은 늘기도 하고 줄어 들기도 합니다. 자, 돈을 좀 늘려서 편하게 딸을 키워 봅시다.

우선 Cheat Engine으로 Princess Maker 2를 오픈시키고 500으로 검색으로 시작 합니다.


숫자가 좀 크다 보니 결과가 10개밖에 안 나오는 군요. 확실하게 하기 위해 돈을 조금 쓴 후 다시 검색해 보겠습니다.


바다로 바캉스 다녀 왔습니다.


자연과학 공부 했습니다.


돈이 190G 남았군요. 190으로 검색해 보겠습니다.


00652098 하나 남았습니다. 리스트 박스로 옮기고 이 값을 5000으로 바꿔 보겠습니다.


다시 Princess Maker 2 로 돌아가 확인 해보도록 하죠.


역시 메모리에선 수치가 바뀌었지만 아직 화면에 적용되진 않은듯 하군요. 그럼 돈을 조금 더 써보도록 하겠습니다.


시문학, 예법, 무용을 배웠습니다. 공부하느라 쓴 돈을 빼고 5000G에서 3790G로 바뀐것을 확인 할 수 있습니다.

조금 더 진도를 나가보도록 하죠. Cheat Engine으로 돌아가 보면 리스트 박스에 우리가 옮겨놓은 주소가 수치와 들어가 있습니다. 이 수치가 변하지 않도록 해봅시다.

리스트 박스 왼쪽을 보면 'Frozen'이라는 항목이 있습니다. 아래에는 체크 박스가 각 주소마다 배치 되게 되는데 그 체크 박스를 클릭해 보겠습니다.


체크 되었습니다. 이제 다시 Princess Maker 3로 가서 돈을 써 보겠습니다.


이전에 한 달 동안 계속 공부만 시켰더니 딸이 스트레스가 올라 아프더군요. 아직 어려서 체력이 약해 그런가 봅니다. 요양소만 3번 갔다가 회복되어 돌아왔습니다. 하지만 돈을 확인해 보면 3790G 그대로 남아 있죠. 아무리 돈을 써도 줄지 않아 계속 3790G가 유지 됩니다.

게임을 플레이 해 보면 돈을 쓸때마다 살짝 줄었다가 다시 3790G로 올라 가는걸 확인 할 수 있을겁니다. 아마도 Cheat Engine이 일정한 주기로 계속 이 수치로 바꿔주는거 같더군요.

지금까지 잘 따라 오셨다면 아마도 어렵지 않게 모두 이해 하셨을 겁니다. 어려운 내용은 아니므로 뭔가 잘못 되었다면 처음부터 다시 한번 해보세요.

Posted by J.sean