Computer/Crack2009. 5. 19. 22:45


경우에 따라 어떤 데이터가 저장 되어 있는 장소는 프로그램을 다시 실행하거나 프로그램 실행중 바뀔 수 있습니다. 이런 경우에 쓸 수 있는 기술 하나를 step 5에서 배워 보겠습니다.

튜토리얼을 실행 시키고 step 5까지 진행 합니다.


'Change value'버튼이 있고 그 위에 100이 주어져 있습니다. 100이 저장되어 있는 장소는 튜토리얼을 실행할 때마다 바뀌게 됩니다. 수치는 'Change value'버튼을 누를때마다 바뀝니다.

Cheat Engine을 실행 시키고 튜토리얼을 오픈 합니다.


우선 100으로 검색을 시작해 보겠습니다.


50개의 결과가 나왔습니다. 튜토리얼로 돌아가 'Change value'버튼을 클릭 하겠습니다.


938로 바뀌는 군요. Cheat Engine으로 다시 938을 검색 합니다.


0096AB24라는 주소 하나가 남았습니다. 아래 리스트 박스로 옮기겠습니다.


자, 지금 까진 리스트 박스로 옮겨진 주소의 value값을 수정하여 문제를 풀어 왔습니다. 하지만 step 5에선 이 값을 아무리 바꿔주거나 freeze시켜도 소용이 없습니다. 튜토리얼 설명에선 충분히 빠른 속도로 이 값을 고정시켜 주면 step 5가 해결 될 수 도 있다고 하지만 단순히 'Frozen'체크박스를 클릭해 주는것 만으론 해결되지 않습니다. 아마도 프로그램 내부에서 'Frozen'보다 빠른 속도로 값을 체크하는것 같습니다. 보다 근본적인 해결책을 찾아 보도록 하죠.

우리가 리스트 박스에 넣은 0096AB24주소 항목을 오른쪽 마우스 클릭해 줍니다.


위 그림과 같이 여러가지 메뉴가 나오는데 그 중 'Find out what writes to this address'항목을 선택해 줍니다.


Cheat Engine의 debugger를 튜토리얼에 붙이겠냐는 말입니다. 'Yes'를 클릭해 줍니다.


'Yes'를 클릭하고 나면 위 그림과 같은 빈 윈도우가 나타납니다. 이 윈도우는 지금 부터 우리가 선택해 놓은 0096AB24주소에 무엇인가 기록을 시도 하는 코드를 찾아 줍니다. 그럼 다시 튜토리얼로 돌아가 'Change value'버튼을 클릭해 값을 바꿔 보겠습니다.


값이 304로 바뀌었습니다. 값이 바뀌었다는건 어떤 코드가 그 주소에 새로운 값을 대입했다는 뜻이므로 조금전에 생성된 윈도우에 기록이 남아 있겠죠? 포커스를 조금 전에 새로 생긴 윈도우로 다시 옮겨 가 보도록 하죠.


드디어 어떤 코드가 0096AB24번지에 기록을 시도 했는지 찾았습니다. '89 10'이라는 코드 였군요. 오른쪽 아래에 있는 'Stop'버튼을 눌러 추적을 멈추고 이 코드를 선택 해주면 오른쪽의 버튼들이 활성화 됩니다. 'Replace'를 클릭 해 우리가 리스트 박스에 선택했던 0096AB24번지에 새로운 값을 대입하는 '89 10'이라는 코드를 아무런 일도 하지 않는 코드로 대체 합니다.


Replace를 클릭하면 위와 같은 윈도우가 나오는데 새로 대체될 코드의 이름을 지어주는 것 입니다. 그냥 'OK'를 클릭해 줘도 상관 없고 특별한 이름을 지어줘도 됩니다. 'changed'라는 이름을 만들어 주도록 하겠습니다.


'OK'버튼을 클릭 합니다.


다시 이 윈도우로 포커스가 옮겨 갔습니다. 필요한 코드는 모두 찾아 해결 했으니 'Close'버튼을 눌러 닫아 줍니다.


다시 Cheat Engine으로 돌아 왔습니다. 겉보기엔 아무런 변화가 없어 보입니다. 하지만 우린 분명히 위에서 코드를 바꿔 주었습니다. 확인해 봐야 겠죠? 튜토리얼로 돌아가 'Change value'버튼을 클릭해 보겠습니다.


'Change value'버튼을 클릭했는데 값은 바뀌지 않고 'Next'버튼이 활성화 되었습니다. 우리가 위에서 0096AB24번지에 새로운 값을 대입하는 '89 10'이라는 코드를 아무런 일도 하지 않는 코드로 대체 했기 때문에 아무리 'Change value'버튼을 클릭해도 값은 바뀌지 않습니다.


cheat Engine으로 돌아가 화면 왼쪽 하단을 보면 위 그림과 같이 'Advanced options'라는 작은 버튼이 있습니다. 한번 클릭해 보겠습니다.


'Advanced Options'윈도우가 열립니다. 조금전 우리가 이름 지어준 'changed'가 있군요. 오른쪽 클릭해 보죠.


'changed'코드에서 disassembler를 열거나 원래 코드로 복원 하는등 여러가지 메뉴가 나옵니다. 실수로 엉뚱한 코드를 수정 했다면 여기서 복원이 가능합니다.

튜토리얼로 돌아가 'Next'버튼을 클릭하면 Step 6로 넘어갑니다.

Posted by J.sean