首页
社区
课程
招聘
看雪CTF.TSRC 2018 团队赛-第2题
发表于: 2018-12-3 17:22 3717

看雪CTF.TSRC 2018 团队赛-第2题

2018-12-3 17:22
3717

1.

#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;

#define BUF_SIZE (30)

static char g_buf[BUF_SIZE];
static char *g_psz_input = new char[BUF_SIZE];
static char g_expected[] = "invalid argument";

class ClsVerify
{
public:
	~ClsVerify()
	{
		void verify(char *buf);
		verify(g_expected);
	}
};
static ClsVerify g_cls_verify;

void process(char *buf)
{
	buf[7] = '#';
	for (size_t i = 0; i < strlen(buf); ++i)
	{
		buf[i] ^= 0x1F;
	}
}

void verify(char *buf)
{
	if (!buf)
	{
		return;
	}
	for (size_t i = 0; i < strlen(buf); ++i)
	{
		buf[i] ^= 0x1C;
	}
	if (!strcmp(buf, g_psz_input))
	{
		cout << 'o';
		cout << 'k';
	}
}

int main()
{
	cout << "Please Input:";
	scanf_s("%s", g_buf, BUF_SIZE);
	size_t len = strlen(g_buf);
	if (len > BUF_SIZE || len < 10) 
	{
		printf("输入错误;");
		exit(0);
	}
	strcpy_s(g_psz_input, BUF_SIZE, g_buf);
	if (g_psz_input[7] != 'A')
	{
		printf("输入错误;");
		exit(0);
	}
	process(g_psz_input);
}
sn: jmubojgAbqdvnfmw
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;

#define BUF_SIZE (30)

static char g_buf[BUF_SIZE];
static char *g_psz_input = new char[BUF_SIZE];
static char g_expected[] = "invalid argument";

class ClsVerify
{
public:
	~ClsVerify()
	{
		void verify(char *buf);
		verify(g_expected);
	}
};
static ClsVerify g_cls_verify;

void process(char *buf)
{
	buf[7] = '#';
	for (size_t i = 0; i < strlen(buf); ++i)
	{
		buf[i] ^= 0x1F;
	}
}

void verify(char *buf)
{
	if (!buf)
	{
		return;
	}
	for (size_t i = 0; i < strlen(buf); ++i)
	{
		buf[i] ^= 0x1C;
	}
	if (!strcmp(buf, g_psz_input))
	{
		cout << 'o';
		cout << 'k';
	}
}

int main()
{
	cout << "Please Input:";
	scanf_s("%s", g_buf, BUF_SIZE);
	size_t len = strlen(g_buf);
	if (len > BUF_SIZE || len < 10) 
	{
		printf("输入错误;");
		exit(0);
	}
	strcpy_s(g_psz_input, BUF_SIZE, g_buf);
	if (g_psz_input[7] != 'A')
	{
		printf("输入错误;");
		exit(0);
	}
	process(g_psz_input);
}
sn: jmubojgAbqdvnfmw

2. Just My Code
最新版的vs加入了/JMC编译选项(Debug默认是开启的), 开启后函数开头会加入__CheckForDebuggerJustMyCode调用

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-12-4 09:07 被风间仁编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 5568
活跃值: (3218)
能力值: ( LV12,RANK:407 )
在线值:
发帖
回帖
粉丝
2
检测输入字符串A长度在10-30
检测A的第8个字符是否为为“A”
进入类的方法处理,将字符串A第八个字符替换为#,然后逐位异或1F,生成新的字符串A1
自动调用类的析构方法,将全局字符串B"invalid argument"逐位异或1C,生成新的字符串B1
比较A1和B1,相等输出ok
2018-12-6 12:19
0
游客
登录 | 注册 方可回帖
返回
//