안녕하십니까. 오랜만에 포스팅을 하게 되는군요.

이번에 포스팅할 것은 제가 만든 지뢰찾기 핵의 알고리즘입니다. 해당하는 지뢰찾기는 윈도우 xp버전의 지뢰찾기이며 알고리즘은 다음과 같습니다.

1. 먼저 지뢰찾기의 프로세스의 PID를 가져와 그 PID에 해당하는 프로세스를 연다

2. 열려진 프로세스에 가상의 메모리를 할당한다.

3. 할당된 메모리에 쉘코드 혹은 특정 함수의 코드를 삽입한다.

4. 코드가 적힌 메모리를 스레드로 만든 후 그 스레드를 실행시킨다.

5. 가상 메모리의 할당을 해제하고 프로세스를 닫는다.

여기까지가 지뢰찾기 핵의 알고리즘입니다. 이 때 할당된 메모리에 삽입할 코드 내용에 따라 어떠한 기능을 할지 정해지며 이러한 기법을 코드 인젝션 기법이라고 합니다.

그리고 제가 구현한 기능은 아래와 같습니다.

1. 숨겨진 지뢰를 보여주는 기능

2. 시간을 멈추는 기능

3. 시간을 초기화 시키는 기능

4. 지뢰를 밟아도 죽지 않도록 하는 기능

5. 바로 승리하는 기능

6. 바로 패배하는 기능

다음 포스팅에선 쓰인 함수들을 한 번 살펴보겠습니다. 참고로 이번 프로그램은 리소스가 없습니다.

Posted by englishmath