在c++中已经取消函数
strcpy()函数,原因某些 C ++函数运行不
安全,并且具有更
安全的函数取代。而取代
strcpy()的函数是
strcpy_s(),接下来介绍
strcpy_s()具体用法。
首先要包含头文件<cstring>,
strcpy_s()函数被包含在此头文件中。
接着,
strcpy_s()函数有三个参数
文章目录引言函数调用约定(32位)程序编译运行攻击的思路填充数据jum esp地址编写shellcode完整攻击代码攻击效果公众号
在刚刚开始学校C语言的时候,很多人都用过strcpy这个函数。简单说是一个内存复制的函数。这个函数确实非常方便,但是这个函数是非常不安全,由与这个函数而产生的缓冲区溢出漏洞在很多文章中都有所介绍。我们应该摒弃strcpy的使用,而是用strncpy进行代替。
原型声明:char *strcpy(char* dest, const char *src);
头文件:#incl
strcpy和strcpy_s都是C语言中的字符串复制函数,但是它们有以下区别:
1. 参数不同:strcpy函数只有两个参数,分别是目标字符串和源字符串;而strcpy_s函数有三个参数,分别是目标字符串、目标字符串的大小和源字符串。
2. 安全性不同:strcpy函数没有对目标字符串的大小进行检查,容易导致缓冲区溢出等安全问题;而strcpy_s函数会在复制前检查目标字符串的大小,如果目标字符串的大小不足以容纳源字符串,则会返回错误码。
3. 可移植性不同:strcpy函数是标准C库函数,可以在各种平台上使用;而strcpy_s函数是Microsoft Visual C++的扩展函数,只能在Windows平台上使用。
因此,如果在Windows平台上编写C程序,建议使用strcpy_s函数,以提高程序的安全性。