首页
社区
课程
招聘
[原创]看雪.京东 2018CTF-第一题分析
发表于: 2018-6-16 13:45 1872

[原创]看雪.京东 2018CTF-第一题分析

2018-6-16 13:45
1872
int __cdecl main(int argc, const char **argv, const char **envp)
{
	int v3; // ST08_4
	signed int v4; // ebx
	char v5; // al
	int result; // eax
	int v7; // [esp+0h] [ebp-70h]
	int v8; // [esp+0h] [ebp-70h]
	char v9; // [esp+12h] [ebp-5Eh]
	char inputKeyBuf[20]; // [esp+14h] [ebp-5Ch]
	char inputKeyHexBuf; // [esp+28h] [ebp-48h]
	__int16 v12; // [esp+48h] [ebp-28h]
	char v13; // [esp+4Ah] [ebp-26h]
	char key; // [esp+4Ch] [ebp-24h]
  
	// 输入的key经过变换后与其比较
	strcpy(&key,"437261636b4d654a757374466f7246756e");

	while ( 1 )
	{
		memset(&inputKeyHexBuf, 0, 0x20u);

		//获取输入的key
		v12 = 0;
		v13 = 0;
		sub_40134B((int)aPleaseInputYou, v7);
		scanf(aS, inputKeyBuf, v3);
		if (strlen(inputKeyBuf) > 0x11)
		{
			break;
		}
		
		//将输入的key字符串转换成16进制字符
		v4 = 0;
		do
		{
			v5 = inputKeyBuf[v4];
			if ( !v5 )
				break;
			sprintf(&v9, asc_408044, v5);
			strcat(&inputKeyHexBuf, &v9);
			++v4;
		}

		//将转换成16进制字符的key与"437261636b4d654a757374466f7246756e"
		if ( !strcmp(&inputKeyHexBuf, &key) )
		{
		  	//比较成功
		  	sub_40134B((int)aSuccess, v8);
		}
		else
		{
			//比较失败
			sub_40134B((int)aWrong, v8);
		}
	}
	sub_40134B((int)aWrong, v8);
	result = stru_408090._cnt-- - 1;
	if ( stru_408090._cnt < 0 )
	return _filbuf(&stru_408090);
	++stru_408090._ptr;
	return result;
}
        通过上面分析,输入的key转换成16进制的字符串是"437261636b4d654a757374466f7246756e" 
        由此可知 key为:CrackMeJustForFun

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-6-16 13:46 被oooAooo编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//