攻防世界:C++复刻MISC掀桌子

攻防世界:C++复刻MISC掀桌子

  • 选择C++
  • 一、参考思路
  • 二、C+复刻代码
    • 1.源码
    • 2.需要注意的地方
  • 写在后面


选择C++

我C、C+都是半吊子的水平,如果再从头开始学JAVA/PYTHON恐怕我的CPU会崩盘。而且C+比C多了个string类,真的救了我一命。


以下是本篇文章正文内容,下面案例可供参考

一、参考思路

python版本:攻防世界MISC之掀桌子
java版本:xctf MISC之掀桌子

二、C+复刻代码

1.源码

代码如下:

int ASCIItoDEC(char a)
{
	int dec = 0;
	switch (a)
	{
	case'0':dec = 0; break;
	case'1':dec = 1; break;
	case'2':dec = 2; break;
	case'3':dec = 3; break;
	case'4':dec = 4; break;
	case'5':dec = 5; break;
	case'6':dec = 6; break;
	case'7':dec = 7; break;
	case'8':dec = 8; break;
	case'9':dec = 9; break;
	case'a':dec = 10; break;
	case'b':dec = 11; break;
	case'c':dec = 12; break;
	case'd':dec = 13; break;
	case'e':dec = 14; break;
	case'f':dec = 15; break;
	default:
		break;
	}
	return dec;
}


	int main()
{
	string hex = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2";
	string temp = "";
	string flag = "";
	ofstream outdata;
	outdata.open("flag.txt", ios::app);
	for (int i = 0; i < hex.length(); i += 2)
	{
		temp = hex.substr(i, 2);
		int dec = ASCIItoDEC(temp[0]) * 16 + ASCIItoDEC(temp[1]);
		flag = (dec - 128);
		outdata << flag;
		cout << flag;
	}
	outdata.close();

	return 0;
}

2.需要注意的地方

因为VS控制台的输出是不能直接复制的,于是新建了一个文本文件用来保存翻译后的报文。

运行结果如下:

攻防世界:C++复刻MISC掀桌子_第1张图片


写在后面

感觉C+还是挺强大的,但是相对JAVA和PYTHON来说还是比较底层的,真的就不得不强迫自己去理解一些原理和机制,这样的话大脑会得到更多的锻炼,好像也会更有成就感,对于我这种菜鸡来说用C+解决这种问题速度很慢,不过先慢慢来吧,慢一点,稳一点。

你可能感兴趣的:(攻防世界,c++,网络,网络安全)