본문 바로가기

Games/CTF

PHDays 2012 Misc400


phdays_misc400.pdf


Task: I am lost. ctf.phdays.com:1165


문제로 주어진 주소로 nc 접속을 해보면 다음과 같은 메시지가 날라온다.

Hi there! Stupid CAPTCHA: enter your name, user63912


user63912 부분은 접속시마다 랜덤인데, 이를 입력하면 다음 메시지가 날라온다.

Find a path between (45, 0, 5) and (6, 49, 45):
The solution must be in format:
(a0_x,a0_y,a0_z)(a1_x,a1_y,a1_z)...(aN_x,aN_y,aN_z)
Steps must differ in exactly one coordinate


그리고 몇초뒤에 다음과 같은 맵 정보가 text 형태로 전송된다


layer (1, y, z):

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 

=   = =     =         =       =   =   = = =   = = = =     =   =     =   = =   =     =   =   = =   = 

= =     = =   = =   = = = = =       =       =   = =     =         = = =     =   =     = = = =   = = 

= =   = =     = =   =     =   =   = =   =   = =     =   =   = = =   =     =     =   = =           = 

=     =   =     =       = =   =   =   = = =   =   = =       =   =   = = = = = =   = =     = = = = = 

= =   = = = =     =   =     = = =   = = =         = =   = = =             =   =   = =   =   =     = 

=   =     = =   =   = = = = = =   =         = = =     =     =   =   =   = =     = =           =   = 

= =   = =     =     = = =     =   =   =   =       =   =   =   = = =   =     =   = =   = = = = =   = 

=   = =     = = = = = = = = =       =         = =   = =   =   = = =       =               =     = = 

= = = =   =   =       =     = = = = = = =   = = = = = =   = = = = =   = = = = = = = = =   = = = = = 

= = =       =   = =   = = =         =   =   = =     = =     =       =         =         =   = =   = 

=   = =   =     = =     = =   =   = =   = =   =   =       =     = =     = = = = = =   =   =       = 

=   =     =   = = = = =     = =   = = =     =         = =   =   = = =         = = = =   =   = = = = 

= =   =   = =     =     = =   = =   =   = = = = =   =           = =     = =     = = =         = = = 

=           = =     =   =     =     = =       =   = =   =   = =   = =   =   = =   = =   = =   =   = 

=   = = =   =   = =   =   = = = = = =   = =     = =   =   =   =   =             =       =   = = = = 

=     =   =     =     =   =   =       = =     = = =   =     =       =   = = =       = =   =   = = = 

=   = =     =   =   =   =       = = = = =   =       =     =   = = =           = = =   =   =   = = = 

=   = =   = =   = =         =   =         = = = = = = = =   =     =   = =   =     = =     =       = 

= =     =     =     = = = =   =   = =   = =     =   =       = =   =       = =   = = = = = =   = = = 

=   =     = = = =   =         =       =       =     =   = =   = =   = =   = =   =   = =   =     = = 

=       =   = =   =     = = =   = = =     = =   = =   =   = =   =       =     = = =   =   =   =   = 

= = = = =   =   =   = = =             = = = = =       = =       = = = = = =   = = = =   =   = =   = 

=   = =   =       = =       = = = = =     =   = =   =     = = = = =       =   =   =   =   =   = = = 

=   =   = =   =   =     = =       =   =   =       =     =     = = = = =   =     =   = =     =     = 

= =   = = = = =     =     =   = =     = = = = = =     =     =     =   =       =     =   =   = = = = 

=               =   =   =   = = =   =       =     = =   = =     = =       =     =   =   =     =   = 

= =   = = = = =   =   =   = =     = = =   =     =     = = = = =     =   =   = = = =   =     = =   = 

= = =   =   = =   =   =       = =   =   =   = =   = = = = =   = =   = =     =         = =   = = = = 

= =     = = = =     =   =   = = =         =   = = =     =       = =   =   = = = =   = = = =   = = = 

=   = = =       = =     = =   = = = = = =     =   = = =   =   =         = = =     =     = = = = = = 

=   =     =   =     =   = =     =     =     =   =     =     = = = = = =   = =   =   = =   = = = = = 

= = = =   = =   = =         = =     = =   =       = =   = =     =     =     =   =   = =         = = 

=   =     =     = =   =   =     =       = = = =         =     = =   = =   =   =   =   = = = =   = = 

= =   = = = =   =   = = = = = = =   =     =     = = = =   = =     =     =   =     =   =     = =   = 

=   =     = =   = =   = =       =   =   = = =   =   =   = = =   =     =     = =   =   = =         = 

= = = = = = = =   =   =   = = = = = =       =   = = =     =   =   = =   = =   = = = = =   =   =   = 

= =   =   =     = =     =     = = = =   = =   =   =     =   =     =       =               = = = = = 

=         = = =   = = =   =   = = = =   =       =   =   =   = = =   = =       = = = = =           = 

=   = =   = =   =   =       =     = = =     =   =   =     =         =     =   =   =     =   = = = = 

= =         =   = =     =   =   =   =   = =   =   =   = = = = = =   =   = = =     = =   =       = = 

=   =   = =     = =   =   =             = = = =   = = =       =     =   = = = =   = = = =   = = = = 

=       = = = =   =   =       =   = =   = = = =         = = =   =     =     = =     =     =     = = 

= = =   =                 =     =   = =     =   = = =   =   =   =   =   =       = =   = = =   = = = 

=   =   = =   =   = =   = = = = = =   =   =   =     = =   = =   =           = = = =       =   = = = 

=         =     =   = = =   =   =     = = =   = = =   = = = =     =   = =       =     =     =   = = 

= =   =   =   = = =     =     = = = =       =     =   = = =   =   =   = = = = = =   = = = =     = = 

=       = =   = =     =     =       =   =     = =   =   =     =   =     = =     =       = =   = = = 

=   =   =     = = = = =   =   = =     = = = =       =   =   = =     =       =   =   = =     =     = 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 


50 x 50 형태의 그림인데 이러한것이 49개 더 전송된다.  보아하니 = 는 벽이고 스페이스는 공간이다. 

이러한 map 데이터 50장을 z 축으로 쌓아 생각해보면 50 x 50 x 50 의 입방체가 되는것을 알 수 있다.


주어진 두 좌표의 최단경로를 구해서 포맷에 맞게 서버로 전송해주면 flag 를 줄거라 생각했다

일단 아무 데이터로 응답해보니 잘못된 데이터라면서 연결이 끊겨버린다.


그래서 3차원 미로를 풀기위해 text 로 된 map 데이타를 3차원 배열에 파싱해 넣고

이를 BFS 알고리즘으로 해결하는 프로그램을 C 로 아래와같이 작성했다.



#include "stdafx.h"
#include 
#include 

/*
The solution must be in format:
(a0_x,a0_y,a0_z)(a1_x,a1_y,a1_z)...(aN_x,aN_y,aN_z)
*/

int map[50][50][50];

// represent a 3 dementional position
typedef struct _tagPOSITION{
	int x;
	int y;
	int z;
	void*	pt;		// path tree pointer which is pointing me
}POSITION;

// size of queue entry(static)
#define MAXPOINT 65535

// global queue data structure
typedef struct _tagQUEUE{
	POSITION		q[MAXPOINT];
	int				head;
	int				tail;
}QUEUE;

// path tree for backtrace.
typedef struct _tagPATHTREE{
	POSITION				p;
	struct _tagPATHTREE*	xp;
	struct _tagPATHTREE*	xm;
	struct _tagPATHTREE*	yp;
	struct _tagPATHTREE*	ym;
	struct _tagPATHTREE*	zp;
	struct _tagPATHTREE*	zm;
	struct _tagPATHTREE*	parent;
}PATHTREE;

// global queue declaration
QUEUE g_queue;
PATHTREE g_tree;

//(5, 0, 10) and (6, 49, 10)
// start - end coordinate.
#define START_X 49
#define START_Y 45
#define START_Z 6

#define END_X 0
#define END_Y 5
#define END_Z 45

void init_tree(PATHTREE* pt){
	pt->xm=0;
	pt->xp=0;
	pt->ym=0;
	pt->yp=0;
	pt->zm=0;
	pt->zp=0;
	pt->parent=0;	// root
}

// loc: 1, 2, 3, 4, 5, 6 = xp, xm, yp, ym, zp, zm
// create new PATHTREE with newpos, and hang it as loc leaf of parent
PATHTREE* add_leaf(PATHTREE* parent, POSITION newpos, int loc){
	
	PATHTREE* pt = (PATHTREE*)malloc( sizeof(PATHTREE) );
	init_tree(pt);
	pt->p = newpos;
	pt->parent = parent;

	switch(loc){
	case 1:
		parent->xp = pt;
		break;
	case 2:
		parent->xm = pt;
		break;
	case 3:
		parent->yp = pt;
		break;
	case 4:
		parent->ym = pt;
		break;
	case 5:
		parent->zp = pt;
		break;
	case 6:
		parent->zm = pt;
		break;
	default:
		printf("undefined loc!!\n");
		break;
	}

	return pt;
}

FILE* fout;
void backtrace_tree(PATHTREE* pt){

	fout = fopen("out.txt", "w");
	if(fout==0){
		printf("can't opent file out.txt\n");
		return;
	}

	while(pt->parent != 0){
		fprintf(fout, "(%d,%d,%d)", pt->p.x, pt->p.z, pt->p.y);
		pt = pt->parent;		
	}
	fprintf(fout, "(%d,%d,%d)", pt->p.x, pt->p.z, pt->p.y);	
	fclose(fout);
	printf("trace done\n");
}

void initqueue(){
	g_queue.head=0;
	g_queue.tail=0;
}

// head points data. tail points next empty slot.(we just wast one slot)
// head==tail means queue is empty.

int is_full(){
	if( (g_queue.tail+1) % MAXPOINT == g_queue.head ){
		return 1;
	}
	return 0;
}

int is_empty(){
	if( g_queue.head == g_queue.tail){
		return 1;
	}
	return 0;
}

int enqueue(POSITION p){	
	// check if queue is full
	if( is_full() ){
		printf("queue is full!!\n");
		return 0;
	}

	g_queue.q[ g_queue.tail ] = p;
	g_queue.tail = (g_queue.tail+1) % MAXPOINT;
	return 1;
}

POSITION dequeue(){

	POSITION res;

	// check if queue is empty
	if( is_empty() ){
		printf("queue is empty!!\n");
		return res;
	}

	res = g_queue.q[ g_queue.head ];
	g_queue.head = (g_queue.head+1) % MAXPOINT;
	return res;
}

// see if the position is inside the map.
int is_valid(int x, int y, int z){
	if(x<0) return 0;
	if(x>=50) return 0;
	if(y<0) return 0;
	if(y>=50) return 0;
	if(z<0) return 0;
	if(z>=50) return 0;
	return 1;
}

// we use breath first search in order to find shortest path!
PATHTREE* BFS(PATHTREE* pt, POSITION start){

	POSITION p = start;	// current position
	POSITION tmp;		// adjacent position

	// we start at root position.
	// first make this start position as root node(pt->parent==0) in the pathtree.
	init_tree(pt);
	pt->p = start;

	while(1){

		// check this position as visited
		map[ p.x ][ p.y ][ p.z ] = 0;
		printf("%d,%d,%d visited\n", p.x, p.y, p.z);

		// see if it is final destination
		if( p.x==END_X && p.y==END_Y && p.z==END_Z ){
			printf("PATH FOUND!\n");
			break;
		}
		
		// explore adjacent positions and queue them. (+x -x +y -y +z -z)
		// and also add them into path tree.
		if( map[ p.x+1 ][ p.y ][ p.z ] && is_valid(p.x+1, p.y, p.z) ){
			tmp.x = p.x+1;
			tmp.y = p.y;
			tmp.z = p.z;
			tmp.pt = add_leaf(pt, tmp, 1);
			enqueue( tmp );			
		}
		if( map[ p.x-1 ][ p.y ][ p.z ] && is_valid(p.x-1, p.y, p.z) ){
			tmp.x = p.x-1;
			tmp.y = p.y;
			tmp.z = p.z;
			tmp.pt = add_leaf(pt, tmp, 2);
			enqueue( tmp );
		}
		if( map[ p.x ][ p.y+1 ][ p.z ] && is_valid(p.x, p.y+1, p.z) ){
			tmp.x = p.x;
			tmp.y = p.y+1;
			tmp.z = p.z;
			tmp.pt = add_leaf(pt, tmp, 3);
			enqueue( tmp );
		}
		if( map[ p.x ][ p.y-1 ][ p.z ] && is_valid(p.x, p.y-1, p.z) ){
			tmp.x = p.x;
			tmp.y = p.y-1;
			tmp.z = p.z;
			tmp.pt = add_leaf(pt, tmp, 4);
			enqueue( tmp );
		}
		if( map[ p.x ][ p.y ][ p.z+1 ] && is_valid(p.x, p.y, p.z+1) ){
			tmp.x = p.x;
			tmp.y = p.y;
			tmp.z = p.z+1;
			tmp.pt = add_leaf(pt, tmp, 5);
			enqueue( tmp );
		}
		if( map[ p.x ][ p.y ][ p.z-1 ] && is_valid(p.x, p.y, p.z-1) ){
			tmp.x = p.x;
			tmp.y = p.y;
			tmp.z = p.z-1;
			tmp.pt = add_leaf(pt, tmp, 6);
			enqueue( tmp );
		}

		// dequeue a position and visit there
		p = dequeue();
		pt = (PATHTREE*)p.pt;	// track path pointer.

	}

	return pt;
}


void print_map()
{
	int x, y, z;
	FILE* fp = fopen("debugmap.txt", "w");
	for (z = 0; z < 50; z++) {
		fprintf(fp, "layer (%d, y, z):\n", z);
		for (x = 0; x < 48; x++) {
			for (y = 0; y < 48; y++) {
				fprintf(fp, "%c ", map[x][y][z] == 1 ? ' ' : '=');
			}
			fprintf(fp, "\n");
		}
	}
	fclose(fp);
}	

void read_map()
{
	FILE *fp;
	int x, y, z;
	char line[1024];
	
	x = 0; y = 0; z = 0;	

	fp = fopen("my_map.txt", "rb");
	for (z = 0; z < 50; z++) {
		fgets(line, sizeof(line), fp);  // layer (0, y, z):
		for (x = 0; x < 50; x++) {
			fgets(line, sizeof(line), fp);
			for (y = 0; y < 50; y++) {
				map[x][y][z] = line[y * 2] == '=' ? 0 : 1;
			}
		}
	}
	
	fclose(fp);
}

int _tmain(int argc, _TCHAR* argv[])
{
	read_map();
	print_map();
	
	PATHTREE* pt;
	POSITION start;
	start.x = START_X;
	start.y = START_Y;
	start.z = START_Z;

	printf("start...\n");
	pt = BFS(&g_tree, start);
	printf("ok!\n");
	
	backtrace_tree( pt );
	return 0;
}





약간의 디버깅이 필요했지만 미로찾기 프로그램은 비교적 순조롭게 2시간정도에 만들어졌다

최단경로를 찾아야하기 때문에 BFS 를 사용했고, 3차원 경로추적을 위한 6진 tree 를 사용했다.

BFS 를 위한 Queue 는 빨리 만들기위해 제한된 버퍼로 구성된 circular 큐로 구현했다.


미로를 풀고 찾아낸 경로를 서버로 보내줬다.  그러나 아쉽게도 flag 가 오는것이 아니라

또다른 미로의 map 데이터와 좌표가 날라왔다. 그리고 마찬가지로 몇초의 시간제한이 걸려있었다.

그리고 서버에서 보내주는 map 이 접속할때마다 미묘하게 달랐다.  알고보니 동일한 맵이지만

3차원 맵을 projection 한 방향이 x, y, z 축으로 랜덤으로 돌아가면서 날라오던 것이었다.


아무튼 서버에서 수신한 데이터를 자동으로 파싱하여 3차원 배열로 저장하고 BFS 알고리즘을 수행해서

그 결과를 다시 서버로 전송하도록 만들었다.


삽질에 삽질을 하다보니 서버가 총 16번 맵 데이터를 주고, 최단경로를 받는 작업을 하는것을 알았다.

그런데 16번동안 올바른 최단경로를 서버로 전송해주니 마지막에 아래와같은 메시지를 서버가 보냈다.


You win! How do you like the flag? ;)


flag 는 안보이고, 축하메시지만 있다.

어찌된 영문인지 고민하다보니, MD5 가 16바이트로 이루어져있다는 사실을 깨닳았다.

즉 16번 맵과 최단경로 를 주고받은것 자체에 flag 가 어떤형태로 포함되있을 것이라 추정했다.


나는 처음에 50 x 50 x 50 짜리 3차원 맵 1개가 flag 의 MD5 1바이트에대한 정보를 가지고 있을

것이라고 추정했다.  그러나 내 생각이 틀렸었다. 이부분부터는 문해은 형님이 해결하신 부분이다.


알고보니 flag 정보는 16개의 map 에 있던게 아니라 각 map 을 풀기위한 최단경로에 있었다.

대회서버에서 x, y, z projection 을 잘 고려하라는 힌트가 나왔다.

결론은 맵 1개를 풀기위한 최단경로 1개가 flag 의 MD5 1바이트를 표현했는데

그 방식이, 최단경로를 xy, yz, zx 평면으로 각각 2차원으로 투영시키면 그중 하나가

글자가 되는 것이었다.


문해은 형님이 아래와같이 16개의 3차원 경로에 대하여 모든 평면으로 2차원 투영을 시켜서

출력하는 작업을 하는 python 스크립트를 만드셨다.


import re, sys 
coods = []
cood = '''
 (0,45,5)(0,44,5)(0,43,5)(0,42,5)(0,41,5)(0,40,5)(0,39,5)(0,38,5)(0,37,5)(0,36,5)(0,35,5)(0,34,5)(0,33,5)(0,32,5)(0,31,5)(0,30,5)(0,29,5)(0,28,5)(1,28,5)(2,28,5)(3,28,5)(4,28,5)(4,27,5)(4,26,5)(5,26,5)(6,26,5)(6,25,5)(6,24,5)(6,23,5)(6,22,5)(6,21,5)(6,20,5)(6,19,5)(6,18,5)(6,17,5)(6,16,5)(6,15,5)(6,14,5)(6,13,5)(7,13,5)(7,12,5)(7,11,5)(7,10,5)(7,9,5)(7,8,5)(7,7,5)(7,6,5)(8,6,5)(9,6,5)(9,6,6)(9,6,7)(9,7,7)(9,7,8)(9,8,8)(9,8,9)(9,9,9)(9,9,10)(10,9,10)(11,9,10)(12,9,10)(12,10,10)(12,10,11)(12,11,11)(12,11,12)(12,12,12)(12,12,13)(12,13,13)(12,13,14)(12,14,14)(12,14,15)(12,15,15)(12,15,16)(12,16,16)(12,16,17)(12,17,17)(12,17,18)(12,18,18)(12,18,19)(12,19,19)(12,19,20)(12,20,20)(12,20,21)(12,21,21)(12,21,22)(12,22,22)(12,22,23)(12,23,23)(12,23,24)(12,24,24)(12,24,25)(12,25,25)(12,25,26)(12,26,26)(12,26,27)(13,26,27)(14,26,27)(15,26,27)(16,26,27)(16,27,27)(16,27,28)(16,28,28)(16,28,29)(16,29,29)(16,29,30)(16,30,30)(17,30,30)(17,30,31)(17,31,31)(17,31,32)(17,32,32)(17,32,33)(17,33,33)(17,33,34)(17,34,34)(17,34,35)(17,35,35)(17,35,36)(17,36,36)(17,36,37)(17,37,37)(17,37,38)(17,38,38)(17,38,39)(17,39,39)(17,39,40)(17,40,40)(17,40,41)(17,41,41)(18,41,41)(18,41,42)(19,41,42)(19,42,42)(19,42,43)(20,42,43)(20,43,43)(20,43,44)(20,43,45)(20,42,45)(20,41,45)(20,40,45)(20,39,45)(20,38,45)(20,37,45)(20,36,45)(20,35,45)(20,34,45)(21,34,45)(22,34,45)(22,33,45)(22,32,45)(23,32,45)(23,31,45)(23,30,45)(23,29,45)(23,28,45)(23,27,45)(23,26,45)(23,25,45)(23,24,45)(23,23,45)(24,23,45)(25,23,45)(25,22,45)(25,21,45)(26,21,45)(27,21,45)(28,21,45)(28,20,45)(28,19,45)(28,18,45)(28,17,45)(28,16,45)(29,16,45)(30,16,45)(31,16,45)(32,16,45)(32,15,45)(32,14,45)(32,13,45)(33,13,45)(34,13,45)(35,13,45)(35,12,45)(35,11,45)(36,11,45)(36,10,45)(36,9,45)(36,8,45)(36,7,45)(36,6,45)(37,6,45)(38,6,45)(39,6,45)(40,6,45)(41,6,45)(42,6,45)(43,6,45)(44,6,45)(45,6,45)(46,6,45)(47,6,45)(48,6,45)(49,6,45)
 '''
coods.append(cood)

cood = '''
my answer : (0,5,10)(0,5,11)(0,5,12)(0,5,13)(0,5,14)(0,5,15)(1,5,15)(1,5,16)(1,5,17)(1,5,18)(1,5,19)(1,5,20)(1,5,21)(1,5,22)(2,5,22)(3,5,22)(3,5,23)(4,5,23)(5,5,23)(6,5,23)(7,5,23)(8,5,23)(8,5,24)(8,5,25)(8,5,26)(8,5,27)(8,5,28)(8,5,29)(8,5,30)(8,5,31)(8,5,32)(8,5,33)(8,5,34)(9,5,34)(10,5,34)(11,5,34)(12,5,34)(13,5,34)(13,5,35)(13,5,36)(13,5,37)(13,5,38)(14,5,38)(15,5,38)(16,5,38)(17,5,38)(17,5,39)(17,5,40)(17,6,40)(17,7,40)(17,8,40)(17,9,40)(17,10,40)(17,11,40)(18,11,40)(19,11,40)(19,12,40)(19,13,40)(19,14,40)(19,15,40)(19,16,40)(19,17,40)(19,18,40)(19,19,40)(19,20,40)(19,21,40)(19,22,40)(19,23,40)(19,24,40)(19,25,40)(19,26,40)(20,26,40)(21,26,40)(21,27,40)(21,28,40)(21,29,40)(21,30,40)(21,31,40)(21,32,40)(21,33,40)(21,34,40)(21,35,40)(21,36,40)(21,37,40)(21,38,40)(21,39,40)(21,40,40)(21,41,40)(21,42,40)(21,43,40)(21,44,40)(22,44,40)(23,44,40)(24,44,40)(25,44,40)(25,45,40)(25,45,39)(25,45,38)(25,45,37)(25,45,36)(26,45,36)(27,45,36)(28,45,36)(28,45,35)(28,45,34)(28,45,33)(28,45,32)(28,45,31)(28,45,30)(28,45,29)(28,45,28)(28,45,27)(28,45,26)(28,45,25)(28,45,24)(28,45,23)(28,45,22)(28,45,21)(28,45,20)(28,45,19)(29,45,19)(29,45,18)(29,45,17)(29,45,16)(30,45,16)(30,45,15)(30,45,14)(30,45,13)(30,45,12)(30,45,11)(31,45,11)(32,45,11)(32,45,10)(32,44,10)(33,44,10)(34,44,10)(34,43,10)(34,42,10)(34,41,10)(34,40,10)(34,39,10)(34,38,10)(34,37,10)(34,36,10)(34,35,10)(34,34,10)(35,34,10)(35,33,10)(35,32,10)(36,32,10)(37,32,10)(37,31,10)(37,30,10)(37,29,10)(37,28,10)(37,27,10)(37,26,10)(37,25,10)(37,24,10)(37,23,10)(37,22,10)(37,21,10)(37,20,10)(37,19,10)(38,19,10)(39,19,10)(39,18,10)(39,17,10)(39,16,10)(39,15,10)(39,14,10)(39,13,10)(39,12,10)(39,11,10)(39,10,10)(39,9,10)(39,8,10)(39,7,10)(39,6,10)(40,6,10)(41,6,10)(42,6,10)(43,6,10)(44,6,10)(45,6,10)(46,6,10)(47,6,10)(48,6,10)(49,6,10)
'''
coods.append(cood)

cood = '''
my answer : (5,0,39)(5,0,38)(5,0,37)(5,0,36)(5,0,35)(5,0,34)(5,0,33)(5,0,32)(5,0,31)(5,0,30)(5,0,29)(5,0,28)(5,0,27)(5,0,26)(5,0,25)(5,0,24)(5,0,23)(5,0,22)(5,0,21)(5,1,21)(5,2,21)(5,2,20)(5,2,19)(5,2,18)(5,2,17)(5,2,16)(5,2,15)(5,2,14)(5,3,14)(5,3,13)(5,3,12)(5,3,11)(5,3,10)(6,3,10)(7,3,10)(8,3,10)(8,4,10)(9,4,10)(10,4,10)(11,4,10)(11,5,10)(11,6,10)(11,7,10)(11,8,10)(11,9,10)(12,9,10)(12,10,10)(13,10,10)(14,10,10)(15,10,10)(15,11,10)(15,12,10)(15,13,10)(15,14,10)(15,15,10)(15,16,10)(15,17,10)(16,17,10)(17,17,10)(18,17,10)(19,17,10)(20,17,10)(21,17,10)(22,17,10)(23,17,10)(24,17,10)(25,17,10)(26,17,10)(26,18,10)(27,18,10)(28,18,10)(28,19,10)(29,19,10)(30,19,10)(31,19,10)(31,20,10)(31,21,10)(32,21,10)(33,21,10)(34,21,10)(34,22,10)(34,23,10)(35,23,10)(36,23,10)(36,24,10)(36,25,10)(36,26,10)(36,27,10)(36,28,10)(37,28,10)(38,28,10)(39,28,10)(40,28,10)(41,28,10)(42,28,10)(43,28,10)(43,29,10)(43,30,10)(42,30,10)(42,31,10)(41,31,10)(40,31,10)(39,31,10)(38,31,10)(37,31,10)(36,31,10)(35,31,10)(35,32,10)(34,32,10)(33,32,10)(32,32,10)(31,32,10)(30,32,10)(29,32,10)(28,32,10)(28,33,10)(28,34,10)(28,35,10)(28,36,10)(27,36,10)(26,36,10)(25,36,10)(25,37,10)(25,38,10)(25,38,11)(25,38,12)(25,38,13)(25,38,14)(25,38,15)(25,38,16)(25,38,17)(25,38,18)(25,38,19)(25,38,20)(25,38,21)(25,38,22)(25,38,23)(25,38,24)(25,38,25)(25,38,26)(25,38,27)(25,38,28)(25,38,29)(25,38,30)(25,38,31)(25,39,31)(25,39,32)(25,39,33)(25,39,34)(25,39,35)(25,39,36)(25,39,37)(25,39,38)(25,40,38)(25,41,38)(25,42,38)(25,43,38)(25,44,38)(25,45,38)(25,46,38)(25,47,38)(25,48,38)(25,49,38)
(len:1547)asnwer sent.
round : 3
'''
coods.append(cood)

cood = '''
my answer : (5,0,10)(5,0,11)(5,0,12)(5,1,12)(5,2,12)(5,2,13)(5,2,14)(5,2,15)(5,2,16)(5,2,17)(5,2,18)(5,2,19)(5,2,20)(5,2,21)(5,2,22)(5,2,23)(5,2,24)(5,3,24)(5,3,25)(5,3,26)(5,3,27)(5,3,28)(5,4,28)(5,4,29)(5,5,29)(5,5,30)(5,6,30)(5,6,31)(5,6,32)(5,7,32)(5,8,32)(5,8,33)(5,8,34)(5,8,35)(5,8,36)(5,8,37)(5,8,38)(5,8,39)(5,9,39)(6,9,39)(6,10,39)(7,10,39)(7,10,38)(8,10,38)(8,10,37)(8,11,37)(8,12,37)(8,13,37)(8,14,37)(8,15,37)(8,16,37)(9,16,37)(9,16,36)(10,16,36)(10,16,35)(11,16,35)(11,16,34)(12,16,34)(12,16,33)(12,17,33)(13,17,33)(13,17,32)(14,17,32)(14,17,31)(15,17,31)(15,17,30)(15,18,30)(15,19,30)(15,20,30)(16,20,30)(16,21,30)(16,22,30)(16,22,29)(17,22,29)(17,22,28)(18,22,28)(18,22,27)(18,23,27)(19,23,27)(19,23,26)(20,23,26)(20,23,25)(21,23,25)(21,23,24)(22,23,24)(22,23,23)(23,23,23)(23,23,22)(24,23,22)(24,23,21)(25,23,21)(26,23,21)(26,23,22)(26,23,23)(26,23,24)(26,23,25)(26,23,26)(26,23,27)(26,24,27)(26,24,28)(26,24,29)(26,24,30)(26,24,31)(26,24,32)(26,24,33)(26,24,34)(26,24,35)(26,24,36)(26,24,37)(26,24,38)(26,24,39)(26,24,40)(27,24,40)(28,24,40)(29,24,40)(29,25,40)(29,26,40)(29,27,40)(29,28,40)(29,29,40)(30,29,40)(31,29,40)(31,30,40)(32,30,40)(33,30,40)(34,30,40)(35,30,40)(36,30,40)(37,30,40)(37,31,40)(37,32,40)(38,32,40)(39,32,40)(40,32,40)(41,32,40)(42,32,40)(43,32,40)(44,32,40)(45,32,40)(45,32,39)(45,32,38)(45,32,37)(45,32,36)(45,32,35)(45,32,34)(45,32,33)(45,32,32)(45,32,31)(45,32,30)(45,33,30)(45,34,30)(45,35,30)(45,36,30)(45,37,30)(45,37,29)(45,37,28)(45,37,27)(45,37,26)(45,37,25)(45,37,24)(45,37,23)(45,38,23)(45,38,22)(45,38,21)(45,38,20)(45,38,19)(45,38,18)(45,38,17)(45,38,16)(45,38,15)(45,38,14)(45,38,13)(45,38,12)(45,38,11)(45,39,11)(45,40,11)(45,41,11)(45,42,11)(45,43,11)(45,44,11)(45,45,11)(45,46,11)(45,47,11)(45,48,11)(45,49,11)
(len:1758)asnwer sent.
round : 4
'''
coods.append(cood)

cood = '''
my answer : (40,0,10)(39,0,10)(39,1,10)(38,1,10)(37,1,10)(36,1,10)(35,1,10)(34,1,10)(33,1,10)(32,1,10)(31,1,10)(30,1,10)(29,1,10)(28,1,10)(27,1,10)(26,1,10)(25,1,10)(25,1,11)(25,1,12)(25,1,13)(25,1,14)(25,1,15)(25,1,16)(25,2,16)(25,2,17)(25,2,18)(25,2,19)(25,2,20)(25,2,21)(25,2,22)(25,2,23)(25,2,24)(25,2,25)(25,2,26)(25,2,27)(25,2,28)(25,2,29)(25,2,30)(25,2,31)(25,2,32)(25,2,33)(25,2,34)(25,3,34)(25,4,34)(25,5,34)(25,6,34)(25,6,35)(25,7,35)(25,8,35)(25,8,36)(25,8,37)(25,8,38)(25,8,39)(25,8,40)(24,8,40)(23,8,40)(22,8,40)(21,8,40)(20,8,40)(19,8,40)(18,8,40)(17,8,40)(17,9,40)(17,10,40)(16,10,40)(15,10,40)(14,10,40)(13,10,40)(12,10,40)(12,11,40)(12,12,40)(11,12,40)(10,12,40)(9,12,40)(8,12,40)(7,12,40)(6,12,40)(5,12,40)(5,12,39)(5,12,38)(5,12,37)(5,12,36)(5,12,35)(5,12,34)(5,12,33)(5,12,32)(5,13,32)(5,13,31)(5,14,31)(5,15,31)(5,15,30)(5,15,29)(5,15,28)(5,15,27)(5,15,26)(5,15,25)(5,15,24)(5,15,23)(5,15,22)(5,16,22)(5,17,22)(5,17,21)(5,17,20)(5,17,19)(5,17,18)(5,17,17)(5,17,16)(5,17,15)(5,17,14)(5,17,13)(5,17,12)(5,17,11)(5,17,10)(6,17,10)(7,17,10)(8,17,10)(9,17,10)(10,17,10)(11,17,10)(12,17,10)(13,17,10)(14,17,10)(15,17,10)(16,17,10)(17,17,10)(18,17,10)(19,17,10)(20,17,10)(21,17,10)(22,17,10)(22,18,10)(23,18,10)(24,18,10)(24,19,10)(24,20,10)(24,21,10)(24,22,10)(25,22,10)(25,22,11)(25,22,12)(25,22,13)(25,22,14)(25,22,15)(25,22,16)(25,22,17)(25,22,18)(25,23,18)(25,24,18)(25,24,19)(25,24,20)(25,24,21)(25,24,22)(25,24,23)(25,24,24)(25,24,25)(25,25,25)(25,26,25)(25,27,25)(25,27,26)(25,28,26)(25,28,27)(25,28,28)(25,28,29)(25,28,30)(25,28,31)(25,28,32)(25,28,33)(25,29,33)(25,29,34)(25,30,34)(25,31,34)(25,32,34)(25,32,35)(25,32,36)(25,32,37)(25,32,38)(25,32,39)(25,32,40)(26,32,40)(27,32,40)(28,32,40)(29,32,40)(30,32,40)(31,32,40)(32,32,40)(32,33,40)(33,33,40)(34,33,40)(35,33,40)(36,33,40)(36,34,40)(36,35,40)(36,36,40)(37,36,40)(38,36,40)(39,36,40)(40,36,40)(40,37,40)(40,38,40)(40,39,40)(41,39,40)(42,39,40)(43,39,40)(44,39,40)(44,40,40)(44,41,40)(44,42,40)(44,43,40)(44,44,40)(44,45,40)(44,46,40)(44,47,40)(44,48,40)(44,49,40)
(len:2034)asnwer sent.
round : 5
'''
coods.append(cood)

cood = '''
my answer : (45,10,0)(44,10,0)(43,10,0)(42,10,0)(41,10,0)(40,10,0)(39,10,0)(38,10,0)(37,10,0)(36,10,0)(36,10,1)(35,10,1)(34,10,1)(33,10,1)(32,10,1)(31,10,1)(30,10,1)(29,10,1)(29,10,2)(28,10,2)(27,10,2)(26,10,2)(25,10,2)(24,10,2)(24,10,3)(23,10,3)(23,10,4)(23,10,5)(23,10,6)(23,10,7)(23,10,8)(23,10,9)(22,10,9)(22,10,10)(21,10,10)(20,10,10)(19,10,10)(18,10,10)(17,10,10)(16,10,10)(15,10,10)(14,10,10)(13,10,10)(12,10,10)(11,10,10)(10,10,10)(9,10,10)(9,10,11)(9,10,12)(9,10,13)(8,10,13)(7,10,13)(7,10,14)(7,10,15)(7,10,16)(7,10,17)(6,10,17)(5,10,17)(5,11,17)(5,12,17)(5,12,18)(5,12,19)(5,13,19)(5,14,19)(5,15,19)(5,16,19)(5,17,19)(5,18,19)(5,19,19)(5,20,19)(5,20,20)(5,20,21)(5,20,22)(5,21,22)(5,22,22)(5,23,22)(5,24,22)(5,25,22)(5,26,22)(5,27,22)(5,28,22)(5,29,22)(5,30,22)(5,31,22)(5,32,22)(5,33,22)(5,34,22)(5,35,22)(5,36,22)(5,37,22)(5,38,22)(5,39,22)(5,40,22)(6,40,22)(7,40,22)(8,40,22)(9,40,22)(10,40,22)(10,40,23)(10,40,24)(11,40,24)(12,40,24)(13,40,24)(14,40,24)(15,40,24)(15,40,25)(15,40,26)(15,40,27)(15,40,28)(16,40,28)(17,40,28)(17,40,29)(17,40,30)(18,40,30)(19,40,30)(20,40,30)(21,40,30)(22,40,30)(23,40,30)(24,40,30)(25,40,30)(25,39,30)(25,38,30)(25,38,31)(25,37,31)(25,36,31)(25,35,31)(25,34,31)(25,33,31)(25,32,31)(25,31,31)(25,30,31)(25,29,31)(25,28,31)(25,27,31)(25,26,31)(25,25,31)(25,24,31)(25,23,31)(25,22,31)(25,21,31)(25,20,31)(25,19,31)(25,18,31)(25,18,32)(25,17,32)(25,16,32)(25,15,32)(25,14,32)(25,13,32)(25,12,32)(26,12,32)(27,12,32)(27,13,32)(28,13,32)(28,14,32)(29,14,32)(29,15,32)(30,15,32)(30,16,32)(30,16,33)(31,16,33)(31,17,33)(31,17,34)(31,17,35)(32,17,35)(32,17,36)(32,18,36)(33,18,36)(33,19,36)(34,19,36)(34,20,36)(35,20,36)(35,21,36)(36,21,36)(36,22,36)(37,22,36)(37,23,36)(38,23,36)(38,24,36)(39,24,36)(39,25,36)(39,25,37)(40,25,37)(40,26,37)(40,26,38)(41,26,38)(41,27,38)(42,27,38)(42,28,38)(43,28,38)(43,29,38)(44,29,38)(44,30,38)(45,30,38)(45,30,39)(45,30,40)(45,30,41)(45,30,42)(45,30,43)(45,30,44)(45,30,45)(45,30,46)(45,30,47)(45,30,48)(45,30,49)
(len:1977)asnwer sent.
round : 6
'''
coods.append(cood)

cood = '''
my answer : (45,5,0)(44,5,0)(43,5,0)(42,5,0)(41,5,0)(40,5,0)(39,5,0)(38,5,0)(37,5,0)(36,5,0)(35,5,0)(34,5,0)(33,5,0)(32,5,0)(31,5,0)(30,5,0)(29,5,0)(28,5,0)(28,5,1)(28,5,2)(28,5,3)(28,5,4)(27,5,4)(26,5,4)(26,5,5)(26,5,6)(25,5,6)(24,5,6)(23,5,6)(22,5,6)(21,5,6)(20,5,6)(19,5,6)(18,5,6)(17,5,6)(16,5,6)(15,5,6)(14,5,6)(13,5,6)(13,5,7)(12,5,7)(11,5,7)(10,5,7)(9,5,7)(8,5,7)(7,5,7)(6,5,7)(6,5,8)(6,5,9)(6,6,9)(6,7,9)(7,7,9)(7,8,9)(8,8,9)(8,9,9)(9,9,9)(9,10,9)(9,10,10)(9,10,11)(9,10,12)(10,10,12)(10,11,12)(11,11,12)(11,12,12)(12,12,12)(12,13,12)(13,13,12)(13,14,12)(14,14,12)(14,15,12)(15,15,12)(15,16,12)(16,16,12)(16,17,12)(17,17,12)(17,18,12)(18,18,12)(18,19,12)(19,19,12)(19,20,12)(20,20,12)(20,21,12)(21,21,12)(21,22,12)(22,22,12)(22,23,12)(23,23,12)(23,24,12)(24,24,12)(24,25,12)(25,25,12)(25,26,12)(26,26,12)(26,27,12)(26,27,13)(26,27,14)(26,27,15)(26,27,16)(27,27,16)(27,28,16)(28,28,16)(28,29,16)(29,29,16)(29,30,16)(30,30,16)(30,30,17)(30,31,17)(31,31,17)(31,32,17)(32,32,17)(32,33,17)(33,33,17)(33,34,17)(34,34,17)(34,35,17)(35,35,17)(35,36,17)(36,36,17)(36,37,17)(37,37,17)(37,38,17)(38,38,17)(38,39,17)(39,39,17)(39,40,17)(40,40,17)(40,41,17)(41,41,17)(41,41,18)(41,42,18)(41,42,19)(42,42,19)(42,43,19)(42,43,20)(43,43,20)(43,44,20)(43,45,20)(42,45,20)(41,45,20)(40,45,20)(39,45,20)(38,45,20)(37,45,20)(36,45,20)(35,45,20)(34,45,20)(34,45,21)(34,45,22)(33,45,22)(32,45,22)(32,45,23)(31,45,23)(30,45,23)(29,45,23)(28,45,23)(27,45,23)(26,45,23)(25,45,23)(24,45,23)(23,45,23)(23,45,24)(23,45,25)(22,45,25)(21,45,25)(21,45,26)(21,45,27)(21,45,28)(20,45,28)(19,45,28)(18,45,28)(17,45,28)(16,45,28)(16,45,29)(16,45,30)(16,45,31)(16,45,32)(15,45,32)(14,45,32)(13,45,32)(13,45,33)(13,45,34)(13,45,35)(12,45,35)(11,45,35)(11,45,36)(10,45,36)(9,45,36)(8,45,36)(7,45,36)(6,45,36)(6,45,37)(6,45,38)(6,45,39)(6,45,40)(6,45,41)(6,45,42)(6,45,43)(6,45,44)(6,45,45)(6,45,46)(6,45,47)(6,45,48)(6,45,49)
(len:1884)asnwer sent.
round : 7
'''
coods.append(cood)

cood = '''
my answer : (5,10,0)(5,11,0)(5,12,0)(5,13,0)(5,14,0)(5,15,0)(5,15,1)(5,16,1)(5,17,1)(5,18,1)(5,19,1)(5,20,1)(5,21,1)(5,22,1)(5,22,2)(5,22,3)(5,23,3)(5,23,4)(5,23,5)(5,23,6)(5,23,7)(5,23,8)(5,24,8)(5,25,8)(5,26,8)(5,27,8)(5,28,8)(5,29,8)(5,30,8)(5,31,8)(5,32,8)(5,33,8)(5,34,8)(5,34,9)(5,34,10)(5,34,11)(5,34,12)(5,34,13)(5,35,13)(5,36,13)(5,37,13)(5,38,13)(5,38,14)(5,38,15)(5,38,16)(5,38,17)(5,39,17)(5,40,17)(6,40,17)(7,40,17)(8,40,17)(9,40,17)(10,40,17)(11,40,17)(11,40,18)(11,40,19)(12,40,19)(13,40,19)(14,40,19)(15,40,19)(16,40,19)(17,40,19)(18,40,19)(19,40,19)(20,40,19)(21,40,19)(22,40,19)(23,40,19)(24,40,19)(25,40,19)(26,40,19)(26,40,20)(26,40,21)(27,40,21)(28,40,21)(29,40,21)(30,40,21)(31,40,21)(32,40,21)(33,40,21)(34,40,21)(35,40,21)(36,40,21)(37,40,21)(38,40,21)(39,40,21)(40,40,21)(41,40,21)(42,40,21)(43,40,21)(44,40,21)(44,40,22)(44,40,23)(44,40,24)(44,40,25)(45,40,25)(45,39,25)(45,38,25)(45,37,25)(45,36,25)(45,36,26)(45,36,27)(45,36,28)(45,35,28)(45,34,28)(45,33,28)(45,32,28)(45,31,28)(45,30,28)(45,29,28)(45,28,28)(45,27,28)(45,26,28)(45,25,28)(45,24,28)(45,23,28)(45,22,28)(45,21,28)(45,20,28)(45,19,28)(45,19,29)(45,18,29)(45,17,29)(45,16,29)(45,16,30)(45,15,30)(45,14,30)(45,13,30)(45,12,30)(45,11,30)(45,11,31)(45,11,32)(45,10,32)(44,10,32)(44,10,33)(44,10,34)(43,10,34)(42,10,34)(41,10,34)(40,10,34)(39,10,34)(38,10,34)(37,10,34)(36,10,34)(35,10,34)(34,10,34)(34,10,35)(33,10,35)(32,10,35)(32,10,36)(32,10,37)(31,10,37)(30,10,37)(29,10,37)(28,10,37)(27,10,37)(26,10,37)(25,10,37)(24,10,37)(23,10,37)(22,10,37)(21,10,37)(20,10,37)(19,10,37)(19,10,38)(19,10,39)(18,10,39)(17,10,39)(16,10,39)(15,10,39)(14,10,39)(13,10,39)(12,10,39)(11,10,39)(10,10,39)(9,10,39)(8,10,39)(7,10,39)(6,10,39)(6,10,40)(6,10,41)(6,10,42)(6,10,43)(6,10,44)(6,10,45)(6,10,46)(6,10,47)(6,10,48)(6,10,49)
(len:1791)asnwer sent.
round : 8
'''
coods.append(cood)

cood = '''
my answer : (0,5,10)(0,5,11)(0,5,12)(1,5,12)(2,5,12)(2,5,13)(2,5,14)(2,5,15)(2,5,16)(2,5,17)(2,5,18)(2,5,19)(2,5,20)(2,5,21)(2,5,22)(2,5,23)(2,5,24)(3,5,24)(3,5,25)(3,5,26)(3,5,27)(3,5,28)(4,5,28)(4,5,29)(5,5,29)(5,5,30)(6,5,30)(6,5,31)(6,5,32)(7,5,32)(8,5,32)(8,5,33)(8,5,34)(8,5,35)(8,5,36)(8,5,37)(8,5,38)(8,5,39)(9,5,39)(9,6,39)(10,6,39)(10,7,39)(10,7,38)(10,8,38)(10,8,37)(11,8,37)(12,8,37)(13,8,37)(14,8,37)(15,8,37)(16,8,37)(16,9,37)(16,9,36)(16,10,36)(16,10,35)(16,11,35)(16,11,34)(16,12,34)(16,12,33)(17,12,33)(17,13,33)(17,13,32)(17,14,32)(17,14,31)(17,15,31)(17,15,30)(18,15,30)(19,15,30)(20,15,30)(20,16,30)(21,16,30)(22,16,30)(22,16,29)(22,17,29)(22,17,28)(22,18,28)(22,18,27)(23,18,27)(23,19,27)(23,19,26)(23,20,26)(23,20,25)(23,21,25)(23,21,24)(23,22,24)(23,22,23)(23,23,23)(23,23,22)(23,24,22)(23,24,21)(23,25,21)(23,26,21)(23,26,22)(23,26,23)(23,26,24)(23,26,25)(23,26,26)(23,26,27)(24,26,27)(24,26,28)(24,26,29)(24,26,30)(24,26,31)(24,26,32)(24,26,33)(24,26,34)(24,26,35)(24,26,36)(24,26,37)(24,26,38)(24,26,39)(24,26,40)(24,27,40)(24,28,40)(24,29,40)(25,29,40)(26,29,40)(27,29,40)(28,29,40)(29,29,40)(29,30,40)(29,31,40)(30,31,40)(30,32,40)(30,33,40)(30,34,40)(30,35,40)(30,36,40)(30,37,40)(31,37,40)(32,37,40)(32,38,40)(32,39,40)(32,40,40)(32,41,40)(32,42,40)(32,43,40)(32,44,40)(32,45,40)(32,45,39)(32,45,38)(32,45,37)(32,45,36)(32,45,35)(32,45,34)(32,45,33)(32,45,32)(32,45,31)(32,45,30)(33,45,30)(34,45,30)(35,45,30)(36,45,30)(37,45,30)(37,45,29)(37,45,28)(37,45,27)(37,45,26)(37,45,25)(37,45,24)(37,45,23)(38,45,23)(38,45,22)(38,45,21)(38,45,20)(38,45,19)(38,45,18)(38,45,17)(38,45,16)(38,45,15)(38,45,14)(38,45,13)(38,45,12)(38,45,11)(39,45,11)(40,45,11)(41,45,11)(42,45,11)(43,45,11)(44,45,11)(45,45,11)(46,45,11)(47,45,11)(48,45,11)(49,45,11)
(len:1758)asnwer sent.
round : 9
'''
coods.append(cood)


cood = '''
my answer : (0,5,5)(0,6,5)(0,6,6)(0,7,6)(0,7,7)(0,8,7)(0,8,8)(0,9,8)(0,9,9)(0,10,9)(0,10,10)(0,11,10)(0,11,11)(0,12,11)(0,12,12)(0,13,12)(0,13,13)(0,14,13)(0,14,14)(0,15,14)(0,15,15)(0,16,15)(0,16,16)(0,17,16)(0,17,17)(0,18,17)(0,18,18)(1,18,18)(1,19,18)(1,19,19)(1,20,19)(1,20,20)(1,21,20)(1,21,21)(1,22,21)(1,22,22)(1,23,22)(1,23,23)(1,24,23)(1,24,24)(1,25,24)(2,25,24)(2,25,25)(2,26,25)(2,26,26)(2,27,26)(3,27,26)(4,27,26)(5,27,26)(6,27,26)(6,27,27)(6,28,27)(6,28,28)(6,29,28)(6,29,29)(6,30,29)(6,30,30)(6,31,30)(6,31,31)(6,32,31)(6,32,32)(6,33,32)(6,33,33)(6,34,33)(6,34,34)(6,35,34)(6,35,35)(6,36,35)(6,36,36)(7,36,36)(7,37,36)(7,37,37)(7,38,37)(7,38,38)(7,39,38)(7,39,39)(7,40,39)(8,40,39)(8,40,40)(8,41,40)(8,41,41)(8,42,41)(8,42,42)(8,43,42)(8,43,43)(8,44,43)(8,44,44)(9,44,44)(10,44,44)(10,43,44)(10,43,43)(10,42,43)(11,42,43)(12,42,43)(13,42,43)(14,42,43)(14,42,42)(14,41,42)(14,41,41)(14,40,41)(14,40,40)(14,39,40)(14,39,39)(14,38,39)(14,38,38)(15,38,38)(15,37,38)(15,37,37)(15,36,37)(15,36,36)(15,35,36)(15,35,35)(15,34,35)(15,34,34)(15,33,34)(15,33,33)(15,32,33)(15,32,32)(15,31,32)(15,31,31)(15,30,31)(15,30,30)(15,29,30)(15,29,29)(15,28,29)(15,28,28)(15,27,28)(15,27,27)(15,26,27)(15,26,26)(15,25,26)(15,24,26)(15,24,27)(15,23,27)(15,23,28)(15,22,28)(16,22,28)(16,22,29)(16,21,29)(16,21,30)(16,20,30)(16,20,31)(16,19,31)(16,19,32)(16,18,32)(16,18,33)(16,17,33)(17,17,33)(17,17,32)(18,17,32)(18,18,32)(18,18,31)(18,19,31)(18,19,30)(19,19,30)(20,19,30)(20,20,30)(20,20,29)(21,20,29)(21,21,29)(22,21,29)(22,21,28)(22,22,28)(22,22,27)(22,23,27)(22,23,26)(22,24,26)(22,24,25)(22,25,25)(22,25,24)(22,26,24)(22,26,23)(23,26,23)(24,26,23)(25,26,23)(26,26,23)(27,26,23)(27,27,23)(27,27,22)(27,28,22)(27,28,21)(27,29,21)(27,29,20)(27,30,20)(27,30,19)(27,31,19)(27,31,18)(27,32,18)(27,32,17)(27,33,17)(27,33,16)(27,34,16)(27,34,15)(27,35,15)(27,35,14)(27,36,14)(28,36,14)(29,36,14)(29,36,13)(29,37,13)(29,37,12)(29,38,12)(29,38,11)(29,39,11)(29,39,10)(30,39,10)(31,39,10)(32,39,10)(33,39,10)(33,40,10)(33,40,9)(34,40,9)(35,40,9)(36,40,9)(37,40,9)(37,41,9)(37,41,8)(37,42,8)(37,42,7)(38,42,7)(39,42,7)(39,43,7)(39,43,6)(39,44,6)(39,44,5)(40,44,5)(41,44,5)(42,44,5)(43,44,5)(44,44,5)(45,44,5)(46,44,5)(47,44,5)(48,44,5)(49,44,5)
(len:2219)asnwer sent.
round : 10
'''
coods.append(cood)

cood = '''
my answer : (5,25,0)(6,25,0)(6,25,1)(7,25,1)(7,25,2)(7,25,3)(8,25,3)(9,25,3)(10,25,3)(10,25,4)(11,25,4)(12,25,4)(13,25,4)(13,25,5)(13,25,6)(14,25,6)(15,25,6)(16,25,6)(16,25,7)(16,25,8)(16,25,9)(16,25,10)(17,25,10)(18,25,10)(19,25,10)(20,25,10)(21,25,10)(22,25,10)(22,25,11)(22,25,12)(22,25,13)(22,25,14)(22,25,15)(23,25,15)(23,25,16)(23,25,17)(24,25,17)(25,25,17)(26,25,17)(26,25,18)(27,25,18)(28,25,18)(29,25,18)(29,25,19)(29,25,20)(29,25,21)(30,25,21)(31,25,21)(32,25,21)(32,25,22)(33,25,22)(34,25,22)(34,25,23)(35,25,23)(36,25,23)(36,25,24)(36,25,25)(36,25,26)(37,25,26)(37,25,27)(37,25,28)(37,25,29)(37,25,30)(37,25,31)(37,25,32)(37,25,33)(37,25,34)(37,25,35)(37,25,36)(38,25,36)(39,25,36)(40,25,36)(41,25,36)(42,25,36)(43,25,36)(43,25,37)(43,25,38)(43,25,39)(44,25,39)(44,25,40)(44,25,41)(44,25,42)(44,25,43)(44,25,44)(44,25,45)(44,25,46)(44,25,47)(44,25,48)(44,25,49)
(len:862)asnwer sent.
round : 11
'''

coods.append(cood)

cood = '''
my answer : (0,10,5)(0,10,6)(0,10,7)(0,10,8)(0,10,9)(0,10,10)(0,10,11)(1,10,11)(2,10,11)(3,10,11)(4,10,11)(4,10,12)(5,10,12)(5,10,13)(5,10,14)(5,10,15)(5,10,16)(5,10,17)(6,10,17)(7,10,17)(7,10,18)(7,10,19)(7,10,20)(7,10,21)(8,10,21)(9,10,21)(9,10,22)(9,10,23)(9,10,24)(9,10,25)(9,10,26)(9,10,27)(10,10,27)(11,10,27)(11,10,28)(12,10,28)(12,10,29)(12,10,30)(12,10,31)(12,10,32)(12,10,33)(12,10,34)(12,10,35)(12,10,36)(12,10,37)(12,10,38)(13,10,38)(14,10,38)(15,10,38)(16,10,38)(16,10,39)(16,10,40)(16,10,41)(16,10,42)(17,10,42)(17,10,43)(17,10,44)(17,10,45)(18,10,45)(19,10,45)(19,10,44)(19,10,43)(20,10,43)(21,10,43)(22,10,43)(22,10,42)(23,10,42)(23,10,41)(23,10,40)(23,10,39)(23,10,38)(24,10,38)(24,10,37)(25,10,37)(25,10,36)(26,10,36)(26,10,35)(26,10,34)(27,10,34)(27,10,33)(27,10,32)(27,10,31)(27,10,30)(28,10,30)(29,10,30)(29,10,29)(29,10,28)(29,10,27)(29,10,26)(29,10,25)(29,11,25)(29,12,25)(29,13,25)(29,14,25)(29,15,25)(29,16,25)(29,17,25)(29,18,25)(29,19,25)(29,20,25)(29,21,25)(29,22,25)(29,23,25)(29,24,25)(29,25,25)(29,26,25)(29,27,25)(29,28,25)(29,29,25)(29,30,25)(29,31,25)(29,32,25)(30,32,25)(30,33,25)(31,33,25)(32,33,25)(33,33,25)(33,34,25)(33,35,25)(33,36,25)(33,37,25)(33,38,25)(34,38,25)(35,38,25)(36,38,25)(37,38,25)(37,39,25)(38,39,25)(39,39,25)(40,39,25)(41,39,25)(42,39,25)(43,39,25)(44,39,25)(45,39,25)(46,39,25)(47,39,25)(48,39,25)(49,39,25)
'''
coods.append(cood)

cood = '''
my answer : (5,0,10)(5,1,10)(6,1,10)(6,2,10)(6,3,10)(6,4,10)(6,5,10)(6,6,10)(6,7,10)(7,7,10)(8,7,10)(9,7,10)(9,8,10)(10,8,10)(11,8,10)(12,8,10)(13,8,10)(14,8,10)(15,8,10)(16,8,10)(17,8,10)(18,8,10)(19,8,10)(20,8,10)(21,8,10)(22,8,10)(23,8,10)(24,8,10)(25,8,10)(26,8,10)(26,9,10)(26,10,10)(26,11,10)(27,11,10)(28,11,10)(29,11,10)(30,11,10)(31,11,10)(32,11,10)(32,12,10)(32,13,10)(32,14,10)(32,15,10)(33,15,10)(34,15,10)(35,15,10)(36,15,10)(37,15,10)(38,15,10)(39,15,10)(40,15,10)(41,15,10)(42,15,10)(42,16,10)(42,17,10)(41,17,10)(40,17,10)(40,18,10)(39,18,10)(38,18,10)(37,18,10)(36,18,10)(35,18,10)(34,18,10)(33,18,10)(32,18,10)(31,18,10)(30,18,10)(29,18,10)(28,18,10)(27,18,10)(26,18,10)(25,18,10)(25,18,11)(25,18,12)(25,18,13)(25,19,13)(25,19,14)(25,19,15)(25,19,16)(25,19,17)(25,19,18)(25,20,18)(25,20,19)(25,20,20)(25,20,21)(25,20,22)(25,20,23)(25,20,24)(25,21,24)(25,22,24)(25,22,25)(25,22,26)(25,22,27)(25,22,28)(25,23,28)(25,23,29)(25,23,30)(25,23,31)(25,23,32)(25,24,32)(25,25,32)(25,25,33)(25,25,34)(25,25,35)(25,25,36)(25,25,37)(25,25,38)(25,25,39)(25,25,40)(24,25,40)(23,25,40)(23,26,40)(23,27,40)(23,28,40)(22,28,40)(21,28,40)(20,28,40)(19,28,40)(18,28,40)(17,28,40)(16,28,40)(15,28,40)(14,28,40)(14,29,40)(13,29,40)(12,29,40)(12,30,40)(11,30,40)(11,31,40)(11,32,40)(10,32,40)(10,33,40)(10,34,40)(11,34,40)(11,35,40)(11,36,40)(12,36,40)(13,36,40)(14,36,40)(15,36,40)(16,36,40)(17,36,40)(18,36,40)(19,36,40)(20,36,40)(21,36,40)(22,36,40)(23,36,40)(24,36,40)(25,36,40)(26,36,40)(27,36,40)(28,36,40)(29,36,40)(30,36,40)(31,36,40)(32,36,40)(33,36,40)(34,36,40)(34,37,40)(35,37,40)(36,37,40)(37,37,40)(38,37,40)(39,37,40)(40,37,40)(41,37,40)(42,37,40)(43,37,40)(44,37,40)(44,38,40)(44,39,40)(44,40,40)(44,41,40)(44,42,40)(44,43,40)(44,44,40)(44,45,40)(44,46,40)(44,47,40)(44,48,40)(44,49,40)
(len:1787)asnwer sent.
round : 13
'''
coods.append(cood)


cood = '''
my answer : (5,39,0)(5,38,0)(5,38,1)(5,38,2)(5,38,3)(5,38,4)(5,38,5)(5,37,5)(5,37,6)(5,37,7)(5,37,8)(5,37,9)(5,36,9)(5,35,9)(5,34,9)(5,33,9)(5,32,9)(5,31,9)(5,30,9)(5,29,9)(5,28,9)(5,27,9)(5,26,9)(5,25,9)(5,24,9)(5,23,9)(5,22,9)(5,22,10)(5,22,11)(5,22,12)(5,21,12)(5,20,12)(5,20,13)(5,19,13)(5,18,13)(5,17,13)(5,17,14)(5,16,14)(5,15,14)(5,14,14)(5,13,14)(5,12,14)(5,11,14)(5,10,14)(6,10,14)(7,10,14)(8,10,14)(9,10,14)(10,10,14)(11,10,14)(12,10,14)(13,10,14)(14,10,14)(15,10,14)(16,10,14)(17,10,14)(18,10,14)(19,10,14)(20,10,14)(21,10,14)(22,10,14)(23,10,14)(24,10,14)(25,10,14)(25,11,14)(25,12,14)(25,13,14)(25,14,14)(25,15,14)(25,16,14)(25,17,14)(25,17,15)(25,17,16)(25,16,16)(25,15,16)(25,14,16)(25,13,16)(25,13,17)(25,12,17)(25,11,17)(25,10,17)(26,10,17)(27,10,17)(28,10,17)(29,10,17)(29,10,18)(30,10,18)(30,10,19)(31,10,19)(32,10,19)(32,10,20)(32,10,21)(33,10,21)(34,10,21)(35,10,21)(35,10,22)(35,10,23)(36,10,23)(37,10,23)(38,10,23)(39,10,23)(40,10,23)(41,10,23)(42,10,23)(43,10,23)(44,10,23)(45,10,23)(45,11,23)(45,12,23)(45,13,23)(45,14,23)(45,14,24)(45,15,24)(45,15,25)(45,15,26)(45,15,27)(45,16,27)(45,16,28)(45,17,28)(45,18,28)(45,19,28)(45,19,29)(45,19,30)(45,20,30)(45,21,30)(45,22,30)(45,23,30)(45,24,30)(45,25,30)(45,26,30)(45,27,30)(45,27,31)(45,28,31)(45,28,32)(45,28,33)(45,28,34)(45,28,35)(45,29,35)(45,30,35)(45,31,35)(45,32,35)(45,33,35)(45,34,35)(45,35,35)(45,36,35)(45,37,35)(45,38,35)(45,38,36)(45,38,37)(45,38,38)(45,39,38)(45,39,39)(45,39,40)(45,39,41)(45,39,42)(45,39,43)(45,39,44)(45,39,45)(45,39,46)(45,39,47)(45,39,48)(45,39,49)
(len:1546)asnwer sent.
round : 14
'''
coods.append(cood)

cood = '''
my answer : (45,0,10)(44,0,10)(43,0,10)(42,0,10)(41,0,10)(40,0,10)(39,0,10)(38,0,10)(37,0,10)(36,0,10)(36,1,10)(35,1,10)(34,1,10)(33,1,10)(32,1,10)(31,1,10)(30,1,10)(29,1,10)(29,2,10)(28,2,10)(27,2,10)(26,2,10)(25,2,10)(24,2,10)(24,3,10)(23,3,10)(23,4,10)(23,5,10)(23,6,10)(23,7,10)(23,8,10)(23,9,10)(22,9,10)(22,10,10)(21,10,10)(20,10,10)(19,10,10)(18,10,10)(17,10,10)(16,10,10)(15,10,10)(14,10,10)(13,10,10)(12,10,10)(11,10,10)(10,10,10)(9,10,10)(9,11,10)(9,12,10)(9,13,10)(8,13,10)(7,13,10)(7,14,10)(7,15,10)(7,16,10)(7,17,10)(6,17,10)(5,17,10)(5,17,11)(5,17,12)(5,18,12)(5,19,12)(5,19,13)(5,19,14)(5,19,15)(5,19,16)(5,19,17)(5,19,18)(5,19,19)(5,19,20)(5,20,20)(5,21,20)(5,22,20)(5,22,21)(5,22,22)(5,22,23)(5,22,24)(5,22,25)(5,22,26)(5,22,27)(5,22,28)(5,22,29)(5,22,30)(5,22,31)(5,22,32)(5,22,33)(5,22,34)(5,22,35)(5,22,36)(5,22,37)(5,22,38)(5,22,39)(5,22,40)(6,22,40)(7,22,40)(8,22,40)(9,22,40)(10,22,40)(10,23,40)(10,24,40)(11,24,40)(12,24,40)(13,24,40)(14,24,40)(15,24,40)(15,25,40)(15,26,40)(15,27,40)(15,28,40)(16,28,40)(17,28,40)(17,29,40)(17,30,40)(18,30,40)(19,30,40)(20,30,40)(21,30,40)(22,30,40)(23,30,40)(24,30,40)(25,30,40)(25,30,39)(25,30,38)(25,31,38)(25,31,37)(25,31,36)(25,31,35)(25,31,34)(25,31,33)(25,31,32)(25,31,31)(25,31,30)(25,31,29)(25,31,28)(25,31,27)(25,31,26)(25,31,25)(25,31,24)(25,31,23)(25,31,22)(25,31,21)(25,31,20)(25,31,19)(25,31,18)(25,32,18)(25,32,17)(25,32,16)(25,32,15)(25,32,14)(25,32,13)(25,32,12)(26,32,12)(27,32,12)(27,32,13)(28,32,13)(28,32,14)(29,32,14)(29,32,15)(30,32,15)(30,32,16)(30,33,16)(31,33,16)(31,33,17)(31,34,17)(31,35,17)(32,35,17)(32,36,17)(32,36,18)(33,36,18)(33,36,19)(34,36,19)(34,36,20)(35,36,20)(35,36,21)(36,36,21)(36,36,22)(37,36,22)(37,36,23)(38,36,23)(38,36,24)(39,36,24)(39,36,25)(39,37,25)(40,37,25)(40,37,26)(40,38,26)(41,38,26)(41,38,27)(42,38,27)(42,38,28)(43,38,28)(43,38,29)(44,38,29)(44,38,30)(45,38,30)(45,39,30)(45,40,30)(45,41,30)(45,42,30)(45,43,30)(45,44,30)(45,45,30)(45,46,30)(45,47,30)(45,48,30)(45,49,30)
(len:1977)asnwer sent.
round : 15
'''
coods.append(cood)

cood = '''
my answer : (5,10,0)(5,11,0)(5,12,0)(5,12,1)(5,12,2)(5,13,2)(5,14,2)(5,15,2)(5,16,2)(5,17,2)(5,18,2)(5,19,2)(5,20,2)(5,21,2)(5,22,2)(5,23,2)(5,24,2)(5,24,3)(5,25,3)(5,26,3)(5,27,3)(5,28,3)(5,28,4)(5,29,4)(5,29,5)(5,30,5)(5,30,6)(5,31,6)(5,32,6)(5,32,7)(5,32,8)(5,33,8)(5,34,8)(5,35,8)(5,36,8)(5,37,8)(5,38,8)(5,39,8)(5,39,9)(6,39,9)(6,39,10)(7,39,10)(7,38,10)(8,38,10)(8,37,10)(8,37,11)(8,37,12)(8,37,13)(8,37,14)(8,37,15)(8,37,16)(9,37,16)(9,36,16)(10,36,16)(10,35,16)(11,35,16)(11,34,16)(12,34,16)(12,33,16)(12,33,17)(13,33,17)(13,32,17)(14,32,17)(14,31,17)(15,31,17)(15,30,17)(15,30,18)(15,30,19)(15,30,20)(16,30,20)(16,30,21)(16,30,22)(16,29,22)(17,29,22)(17,28,22)(18,28,22)(18,27,22)(18,27,23)(19,27,23)(19,26,23)(20,26,23)(20,25,23)(21,25,23)(21,24,23)(22,24,23)(22,23,23)(23,23,23)(23,22,23)(24,22,23)(24,21,23)(25,21,23)(26,21,23)(26,22,23)(26,23,23)(26,24,23)(26,25,23)(26,26,23)(26,27,23)(26,27,24)(26,28,24)(26,29,24)(26,30,24)(26,31,24)(26,32,24)(26,33,24)(26,34,24)(26,35,24)(26,36,24)(26,37,24)(26,38,24)(26,39,24)(26,40,24)(27,40,24)(28,40,24)(29,40,24)(29,40,25)(29,40,26)(29,40,27)(29,40,28)(29,40,29)(30,40,29)(31,40,29)(31,40,30)(32,40,30)(33,40,30)(34,40,30)(35,40,30)(36,40,30)(37,40,30)(37,40,31)(37,40,32)(38,40,32)(39,40,32)(40,40,32)(41,40,32)(42,40,32)(43,40,32)(44,40,32)(45,40,32)(45,39,32)(45,38,32)(45,37,32)(45,36,32)(45,35,32)(45,34,32)(45,33,32)(45,32,32)(45,31,32)(45,30,32)(45,30,33)(45,30,34)(45,30,35)(45,30,36)(45,30,37)(45,29,37)(45,28,37)(45,27,37)(45,26,37)(45,25,37)(45,24,37)(45,23,37)(45,23,38)(45,22,38)(45,21,38)(45,20,38)(45,19,38)(45,18,38)(45,17,38)(45,16,38)(45,15,38)(45,14,38)(45,13,38)(45,12,38)(45,11,38)(45,11,39)(45,11,40)(45,11,41)(45,11,42)(45,11,43)(45,11,44)(45,11,45)(45,11,46)(45,11,47)(45,11,48)(45,11,49)
(len:1758)asnwer sent.
'''
coods.append(cood)

flag = int(sys.argv[1])
print len(coods)
count = 1
for cood in coods : 
	print 
	print "[%d] ------------------------"%count
	c1 = re.findall('(\d+,\d+,\d+)', cood)
	# print c1 

	map =  [ [' ']*50 for x in range(50)]

	for dot in c1 : 
		l = dot.split(',')
		#print l
		if flag == 1:
			map[int(l[0])][int(l[1])] = '*'
		if flag == 2:
			map[int(l[1])][int(l[2])] = '*'
		if flag == 3:
			map[int(l[0])][int(l[2])] = '*'

	for i in range(50):
		print 
		for j in range(50):
			print map[i][j],

	count = count + 1



해당 python 스크립트를 돌려보니 아래와같이 3개의 투영중 하나는 영어 알파벳 글자모양이 되었다.


[1] ------------------------


                                                        * * * * * * * * * * * * * * * * * *        

                                                        *                                          

                                                        *                                          

                                                        *                                          

                                                    * * *                                          

                                                    *                                              

                          * * * * * * * * * * * * * *                                              

            * * * * * * * *                                                                        

            *                                                                                      

            * * * *                                                                                

                  *                                                                                

                  *                                                                                

                  * * * * * * * * * * * * * * * * * *                                              

                                                    *                                              

                                                    *                                              

                                                    *                                              

                                                    * * * * *                                      

                                                            * * * * * * * * * * * *                

                                                                                  *                

                                                                                  * *              

                                                                    * * * * * * * * * *            

                                                                    *                              

                                                                * * *                              

                                              * * * * * * * * * *                                  

                                              *                                                    

                                          * * *                                                    

                                          *                                                        

                                          *                                                        

                                * * * * * *                                                        

                                *                                                                  

                                *                                                                  

                                *                                                                  

                          * * * *                                                                  

                          *                                                                        

                          *                                                                        

                      * * *                                                                        

            * * * * * *                                                                            

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                                                                      

            *                                 



[1] ------------------------                                                                                              

                                                                                                   

                                                                                                   

                                                                                                   

                                                                                                   

                                                                                                   

          * * *                                                                           *        

          *   * *                                                                         *        

          *     * *                                                                       *        

          *       * *                                                                     *        

          *         * *                                                                   *        

          *           * *                                                                 *        

          *             * *                                                               *        

          *               * *                                                             *        

          *                 * *                                                           *        

          *                   * *                                                         *        

          *                     * *                                                       *        

          *                       * *                                                     *        

          *                         * *                                                   *        

          *                           * *                                                 *        

          *                             * *                                               *        

          *                               * *                                             *        

          *                                 * *                                           *        

          *                                   * *                                         *        

          *                                     * *                                       *        

          *                                       * *                                     *        

          *                                         * *                                   *        

          *                                           * *                                 *        

          *                                             * *                               *        

          *                                               * *                             *        

          *                                                 * *                           *        

          *                                                   * *                         *        

          *                                                     * *                       *        

          *                                                       * *                     *        

          *                                                         * *                   *        

          *                                                           * *                 *        

          *                                                             * *               *        

          *                                                               * *             *        

          *                                                                 * *           *        

          *                                                                   * *         *        

          *                                                                     * *       *        

          *                                                                       * *     *        

          *                                                                         * *   *        

          *                                                                           * * *        

          *                                                                                        



[1] ------------------------


          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          *                                                                                        

          * * * * * *                                                                              

                    *                                                                              

                    *                                                                              

                    * * * * * * * * * * * * * * * * * *                                            

                                                      *                                            

                                                      *                                            

                                                      *                                            

                                                      * * * *                                      

                                                            * * * * * * * * * * * *                

                                                                                  * *              

                                                                                    * *            

                                                                                      * * *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        

                                                                                          *        




두번째 평면의 투영에서 N 이라는 알파벳이 보이는것을 알 수 있다.

이런식으로 16개의 최단경로들을 모두 투영해보니 16개의 글자를 찾을 수 있었다.



1 : N

2 : 0

3 : F

4 : 3

5 : A

6 : R

7 : N

8 : 0

9 : 3

10 : X

11 : I

12 : T

13 : H

14 : E

15 : R

16 : 3


이어붙이면 "N0F3ARN03XITHER3" 이라는 메시지가 되었다.

flag 는 MD5 포맷이라고 했으므로 이 각각의 byte 들에 대한 HEX 코드를 붙인 것이었다.




'Games > CTF' 카테고리의 다른 글

DEFCON20 PWN100  (0) 2013.03.19
Forbidden BITS x96  (0) 2013.03.19
CODEGATE2013 BIN200  (1) 2013.03.05
PHDays 2012 pwn200  (0) 2013.01.25
PHDays 2012 Realword 200  (0) 2013.01.23