U E D R , A S I H C RSS

��호/지뢰찾기

모기 땜� 잠 설�서 지뢰찾기 시작.
모기� 많고 지뢰찾기� 안�고 해서 지뢰찾기 Reverse Engineering
지뢰찾기 만든 coder가 어떤 ��으로 �걸 짰는지 분�부터 시작.

목표: 지뢰 찾기 분�
결과: 2차� 배열로 만들어져 있으며 �반��다.
Crack: 분� 완료 �후, Inline Patch로 배열 부분� �보고 지뢰 찾기 시작 후 고급 기� 1초 갱신 완료.


아래 소스는 지뢰찾기 분�한 것� coder가 제작한 게임 소스 그대로 C언어로 완벽하게 구현한 것�다. (아마 M$� 있는 소스와 완벽히 똑같� 것�다.)

--------------------------------지뢰 �성 함수 시작--------------------------------
int func(int limit)
{
	int num = (int)rand();
	return num%limit;
}

// 지뢰 �성 함수
// srand(GetTickCount()); 를 � 함수 밖�서 수행한다.
main_func()
{
...

	int base = 0x1E;	// 가로길� (30) <- �래 main_func()� 매개변수로 받아온다.
	int height = 0x10;	// 세로길� (16)
	int count = 0x0A;	// 지뢰 갯수(10)
	int map[height][base] = {0x0f, };	// 눈여겨 볼�� x좌표는 뒤� y좌표는 앞� �다는 �.. 지뢰 없는 곳� 0x0f로 기� 있는 곳� 0x80
	int ret_base, ret_height;

	do {
		ret_base = func(base)++;
		ret_height = func(height)++;

		if(map[ret_height][ret_base] == 0x80)
			continue;

		map[ret_height][ret_base] = 0x80;

		count--;
	} while(count);

...
}
// map 배열� DS:1005340�서 시작
--------------------------------지뢰 �성 함수 �--------------------------------


재밌네..~ 전� �우님(http://ssrnet.snu.ac.kr/~leedw)처럼 디스어셈블 시�해서 분�한 것임~? --1002
네~ 맞아요~! �거 쓰고 모기를 16마리 잡았네요 -0- --��호
Reverse 하는 김� 모기 퇴치 프로그램� 같� 짜야 할듯; --1002
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:32
Processing time 0.0050 sec