<목표>
도움말(F1)을 누르면 지뢰의 위치를 알려주는 핵 제작
<과정>
1. F1 기능을 콜하는 함수 찾기
2. 지뢰를 보여주는 함수 찾기
3. F1의 기능을 지뢰를 보여주는 함수로 대체하기
1.
IDA를 통해 MS심볼 서버를 설정하여 받으면 함수명이 'sub_100000' 등의 숫자가 아닌 함수명으로 나온다. 근데 이 부분에서 오류가 나서 모든 함수에 브레이크 포인트를 걸어주었다. 지뢰찾기 창이 정상적으로 나타날 때까지의 중단점들은 풀어주며 각 함수의 기능을 확인해 주었다.
이 방식을 통해 F1을 누르면 01003D76으로 이동하는 것을 알 수 있다.
다음을 보면 01001F0F에서 call 01003D76을 호출하여 F1의 기능을 불러내는 것을 확인할 수 있다.
2.
위와 동일한 방식으로 계속해서 브레이킹 포인트를 해제하고 진행하는 과정을 반복해보자.
01002F80 부분의 브레이킹 포인트를 해제하고 진행하니 다음과 같이 지뢰들이 보이는 것을 확인할 수 있다.
3.
이제 F1을 누르면 지뢰를 모두 보여주는 01002F80 함수을 호출하고 RETN하도록 만들어보자.
F1 출력 포인트 : 01003D76
지뢰 출력 포인트 : 01002F80
이제 수정한 코드를 오른쪽 마우스 버튼 - Copy to executable - All modification 으로 복사, Backup - Save data to file 을 통해 저장해주자.
저장한 게임에서 f1을 누르면 다음과 같이 지뢰가 보인다.