第48天:由(KCTF-独树一帜 )引发的C语言复习

1.昨天做完一道简单的Crack,发现自己C语言就是个辣鸡。(今天不服,得搞懂)

2.在Ubuntu中下载Code::blocks

3.复习操作系统,明天考试

先看看昨天那道题的C语言脚本吧。(看雪里师傅的代码)

#include 
#include 
#include 
char src[20];
char buff[20];
int main()
{

	char name[] = "CTFHUB";
	int v2 = 0;
	unsigned int v3;
	int v4;
	v3 = 0;
	if (strlen(name) != 0)
	{
		do
			v2 += name[v3++];
		while (v3 < strlen(name));
	}
	v4 = v2 + 0x6064;
	sprintf(src, "%lu", v4);
	*buff = *name;
	*(buff + 1) = 45; 
	*(buff + 2) = toupper(name[strlen(name) - 1]);
	strcat(buff, src);
	strcat(buff, "-");
	sprintf(src, "%lu", v4 + 0x6064);
	strcat(buff, src);
	printf("%s\n", buff);
	return 0;
}

发现C语言快要忘光了。。。

首先是定义字符串,三种方式:

char names[] = {'C', 'T', 'F', 'H', 'U', 'B', '\0'};
char names[50] = "CTFHUB";
char * name = "CTFHUB";

然后是一个对字符串的每个字符的ascii码相加,我本来在这里用了atoi函数,但是好像这个函数是将数字字符串转为整型,例如:“12345”变为12345.

其实直接相加就会将字符强制转换为int型。

然后就到了给数组赋值了,然后又学习了一下数组指针和指针数组。

数组指针:int (*p)[n]  整个数组整体是一个指针。

指针数组:int *p[n]  数组内的每个元素都是指针元素。

主要把类型搞清楚,地址和 * 搞清楚,就很容易理解,网上详细教程很多,俺就不写了。

传送门:https://blog.csdn.net/mick_hu/article/details/100931034

 

在Ubuntu下搭了个C/C++开发环境,我的是Ubuntu18.04,gcc,g++我不记得装过,但是它有,所以我直接在软件商店下载了Code::Blocks,但是编译运行还是出问题了,又浪费我很多时间,后来发现是中文目录的锅。。。。

 

下午复习操作系统到现在,求过。

 

 

 

 

 

 

 

你可能感兴趣的:(Every)