[NISACTF 2022]string
考点一览
使用Ubuntu编程、随机函数(srand&rand)
Ubuntu编程
1.打开Ubuntu虚拟机
2.在设置中找到“Text Editor”
3.编写C/C++文件
4.保存文件:C文件以“.c”结尾,C++文件以“.cpp”结尾
5.在保存文件的位置打开终端
6.输入“ls”
7.C输入“gcc 文件名.c -o 文件名”| C艹输入“g++ 文件名.c -o 文件名”
8.最后输入“./文件名”
如图所示:
随机函数
函数一:void srand((unsigned) seed)
参数seed是rand()的种子
功能:用来初始化rand()的起始值。
函数二:int rand((void) )
无参数
功能:产生随机值,从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。
简单解题
本题主要考察认不认识函数,脚本就是ida中看到的一部分。坑在于在Ubuntu环境下和在windows环境下,同样的脚本,答案是不一样的,这里我们要在Ubuntu下编程!
脚本如下:
#include<stdlib.h>
#include<stdio.h>
int main()
{
int seed = 10086;
srand(seed);
printf("NSSCTF{");
for ( int m = 0; m < 13; ++m )
{
int v4 =rand();
printf("%d", (unsigned int)(v4 % 8 + 1));
}
printf("}\n");
return 0;
}
搞定啦~