当前位置: 首页 > news >正文

中山顺的网站建设构站网

中山顺的网站建设,构站网,莆田哪里有学做网站的,多久可以拿证本文主要介绍strcpy/strncpy/sprintf都是不安全的&#xff0c;可能存在内存溢出的问题。下来进行实例分析。 strcpy代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h>void test_func(char *str) {b…

本文主要介绍strcpy/strncpy/sprintf都是不安全的,可能存在内存溢出的问题。下来进行实例分析。

strcpy代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>void test_func(char *str)
{bool flag = false;char buffer[5];memset(buffer, 0, 5);strcpy(buffer, str);if(strcmp("1234", buffer) == 0){printf("buffer is 1234\n");flag = true;}if(flag){printf("flag is true\n");}else{printf("flag is false\n");}
}
int main()
{test_func("45678912");return 0;
}

运行结果:

flag is false
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)

这是因为数组较小,产生了越界。以上是linux gcc编译的。可能其他编译器会遇到打印是flag is true的场景,为什么会变成true呢;

strcpy代码内存溢出原因分析:

strcpy这个函数,字符串溢出了,代码中有两个局部变量,flag(bool类型),buffer(字符数组),局部变量是存放在栈空间的,并且栈上的空间是从高地址向低地址生长的,所以定义的过程类似于压栈,先压进去的flag存放在高地址,buffer存放在了低地址。当调用strcpy的时候,由于buffer的内存只占用了5个字节,拷贝进去的字符串远大于5字节的字符串,然而strcpy函数又不会截断,那字符串多出来的字节存放在哪里?写内存的时候是从低地址往高地址写,所以它会继续寻址,往后面写,写到flag这个局部变量里。所以此时flag可能已经被篡改了,此时的值不在是false了。

strncpy代码:

int dest[3];

strncpy(dest,"hi",5);

strncpy代码内存溢出原因分析:

dest只有3个字符,刚好容纳"hi"加上一个\0, //但是后面传入了5的参数,遇到\0并不会停止,而是往dest[3],dest[4]继续写入\0造成溢出。本周原因是strncpy没有对边界进行检查。

sprintf代码:


        char text[1];
        sprintf(text,"%d.%d.%d", byte1, byte2, byte3);
   );

sprintf代码内存溢出原因分析:

        前面的字符数组空间开得太小了,但是sprintf在执行时不会考虑前面的字符串数组空间是否足够,它会自动地占用后续空间,这样就会影响后面的数据,导致内存溢出。

http://www.yayakq.cn/news/575241/

相关文章:

  • 做国内网站阿里云怎么样泸州北京网站建设
  • 请问有没有做网站安徽网站推广
  • 网站优化自已做还是请人做建设公司和建筑公司哪个好
  • 网站开发如何避免浏览器缓存的影响谷歌推广技巧
  • 重庆网站seo推广公司代理记账公司注册条件
  • 高端网站建设 选择磐石网络wordpress 定时生成首页静态
  • 做简历网站 39凡科代理平台
  • 松江区网站建设怎么才能注册做网站
  • 公司企业网站建设注意事项凡科网是做什么的
  • 企业官方网站认证广告网上接单
  • 网站正在建设中 图片tomcat 建网站
  • 模板网站案例温州建校网站
  • 大连做公司网站哪家好淄博做网站推广
  • 网站建设 爱诚科技公司佛山新网站建设如何
  • 网站有哪些分类页面设计存在的问题
  • 网站建设工作室深圳在线设计家装
  • 手册设计网站做品管圈网站
  • 深圳企业官网网站建设wordpress 变网盘
  • 网站建设策划书有哪些内容网站做自适应好不好
  • 室内设计3d模型素材网站海口网站运营托管报价
  • 建设银行jo 办网站用卡企业策划营销中心
  • 网站建设mng甘肃高端建设网站
  • 麻涌东莞网站建设学校 网站 建设 目的
  • 网站百度搜索不到photoshop软件
  • 设计网站页面新公司做网站有效果吗
  • 网站没备案实验室网站模板
  • 成都网站建设培训郑州做网站推广的公司
  • 厦门市建设局网站住房保障2018小红门网站建设
  • 万网关网站三次手机网站大全排行
  • 如何使用云服务建设网站广州市城市建设网站