##0x00 由于某些原因,突然对shellcode有了些兴趣。从Google翻到了这篇文章Shellcoding for Linux and Windows Tutorial,给予了我很大的帮助。 在这里我就简单地介绍…
标签:C
VScode Windows下配置Visual Studio编译C++
0x00 缘由 因为某些原因,需要使用VScode来编译C++文件。在各种Google之后,终于找到了配置的方法。 0x01 需要的组件 首先,我们需要VScode本体,和Windows下的C/C++ Build Too…
C 二维数组的传参方法
对于普通的一维数组,我们只需要这样声明一个函数即可: void fun1(int *ar); void fun2(int ar[]); 但是,对于二维数组,函数声明就会比较复杂,常见的有: void fun3(int a…
C 可变长参数va_arg的一些总结和陷阱
今天尝试着使用va_arg来写一个my_printf()函数,目的就是做到像printf()那样可以格式化输出。首先,想到的就是通过可变长参数来传递参数。之所以这样做是因为我们不能确定每次调用my_printf()的时候…
C float在内存中的储存方法
众所周知,int类型的数据在内存中以32位储存,且第一位为符号位,实际储存为31位二进制,非常的好算。但是,对于float类型来说,因为有小数部分,所以和int类型的储存方法是有点区别的。一个浮点数由两部分组成:底数m …
C 位数组的建立方法与运用
今天用到了位数组,从网上找到了一个灰常6的方法。通过宏定义,就可以快速的建立位数组并且创建常用函数: #include //引入CHAR_BIT #define BITMASK(b) (1
C 关于移位运算的一点总结
C语言中有两个很牛x的运算符,就是移位运算符。这就使得我们可以对一个数的某个位进行独立的操作。例如,一个unsigned int类型就可以变成32个bool型来使用。当然,没什么人这么疯狂罢了。。纯属闲的蛋疼233那么,…
Linux下的C语言pow()函数引出的问题
今天才Linux下用math.h库的pow()函数,gcc编译的时候报错返回:对‘pow’未定义的引用查了下资料,需要在gcc编译的时候加上-lm参数才能正常编译。这是为什么呢?再查了下资料: 使用math.h中声明的库…
C语言 while((ch=getchar())!=EOF) 的问题
以前,经常使用while((ch=getchar()!=EOF)来作为程序读取输入的结束。但是,今天发现,这个EOF的类型是整形。然而,我们经常是将ch定义为字符型:char ch;这样就造成了一个问题:getchar(…
C 语言 批量Ping工具(改)
经过了一晚上的努力,终于把这个工具做的能看了。。早上的版本只是基本功能罢了。这次的改进版提供了手动输入和从文件导入两种输入方式。能够自定义Ping的次数。同时,将各个功能模块化,代码量也变大了好多。。总之,这个Ping工…