Computer/Crack2009. 5. 22. 20:19


step 6까지 진행하며 약간 어려운 편에 속했던 내용들을 3D Pinball게임을 통해 복습해 보는 시간을 갖도록 하겠습니다.

3D Pinball게임을 실행하고 Cheat Engine으로 오픈 시킨후 ball개수를 저장하는 주소를 찾아 리스트 박스로 옮겨 줍니다. ball의 개수는 10개로 바꿔 주겠습니다.


0121AFAE번지를 오른쪽 마우스 클릭하여 'Find out what writes to this address'를 선택해 debugger를 붙여 줍니다. 그리고 다시 ball을 하나 잃어 어떤 코드가 공의 개수를 줄여주는지 찾아 보겠습니다.


'89 86 46 01 00 00'이군요. 저 코드를 선택해 주고 'Replace'를 클릭해 아무것도 하지 않는 코드로 바꿔주면 더 이상 볼의 개수가 줄어들지 않게 되겠죠? 우리는 포인터를 한번 찾아 보겠습니다. 'More information'을 클릭합니다.


이번에도 역시 우리가 주목할 부분은 붉은색으로 나타난 '>>010175b7 - mov [esi+00000146], eax'입니다. 그 아래에는 0121AE68이 우리가 찾아야 할 값이라고 친절하게 나와 있습니다. 이 값이 포인터가 가지고 있는 값이겠죠? 그럼 Cheat Engine으로 돌아가서 그 값을 찾아 보겠습니다.


346개의 결과가 나왔습니다. 그 중 녹색으로 나오는 주소값이 위에 2개 있군요. 주소값이 static일때 녹색으로 표시 됩니다. 그럼 둘 중 위의 주소값으로 먼저 확인해 보겠습니다.

'Add address manually'버튼을 눌러 포인터를 추가해 줍니다.


offset값은 146입니다. 기억 하시죠? '>>010175b7 - mov [esi+00000146], eax'이 우리가 찾은 코드였습니다. 0121AE68 + 146 = 0121AFAE로 이 값은 우리가 처음 찾아 놓은 주소값과 일치 합니다.

그럼 'OK'버튼을 클릭해 줍니다.


'P->0121AFAE'가 추가 되었습니다. 이 포인터가 우리가 찾던 포인터인지 확인해 보도록 하죠. 'Value'를 20으로 바꿔주고 freeze시킨 후 게임을 진행시켜 공을 잃도록 하겠습니다. 처음 찾아놓았던 주소의 'Value'도 자동으로 똑같이 바뀝니다.


아무리 해도 공의 개수는 변하지 않는군요. 성공입니다.

윈도우 사용자라면 대부분 가지고 있는 3D Pinball게임으로 간단한 포인터 찾기 연습을 해 보았습니다. 포인터에 대해 확실히 이해하고 넘어 가시기 바랍니다.

Posted by J.sean