9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

memcpy() 函数即将禁用

  • 2009-05-25
  • 本文字数:919 字

    阅读完需:约 3 分钟

微软已经建议禁用 memcpy() 函数,该函数很可能会在今年底出现在微软的 SDL 禁用列表中。memcpy() 加入到 strcpy, strncpy, strcat, strncat 等常用函数的队伍中,都是由于可通过缓存溢出进行安全攻击而被禁用。

一些微软的安全更新由于 memcpy() 的原因而发布:MS03-030 (DirectX)、MS03-043 (Messenger Service)、MS03-044 (Help and Support)、MS05-039 (PnP)、MS04-011 (PCT)、MS05-030 (Outlook Express)、CVE-2007-3999 (MIT Kerberos v5)、CVE-2007-4000 (MIT Kerberos v5) 及其他。

微软禁用的函数有 memcpy()、CopyMemory() 和 RtlCopyMemory()。要禁用这些函数,编程人员可添加以下#pragma 代码行到头文件,编译器每一次遇到该行代码的时候都会发出警告。

errno_t __cdecl
memcpy_s(
_Out_opt_bytecap_post_bytecount_(_DstSize, _MaxCount)
void * _Dst,
_In_ rsize_t _DstSize,
_In_opt_bytecount_(_MaxCount) const void * _Src,
_In_ rsize_t _MaxCount
);

Description
描述
Banned function
禁用函数
Recommended function
推荐函数
String copy
字符串复制函数 strcpy, wcscpy, _tcscpy, _mbscpy, StrCpy, StrCpyA, StrCpyW, lstrcpy, lstrcpyA, lstrcpyW, strcpyA, strcpyW, _tccpy, _mbccpy strcpy_s String concatenation
字符串连接函数 strcat, wcscat, _tcscat, _mbscat, StrCat, StrCatA, StrCatW, lstrcat, lstrcatA, lstrcatW, StrCatBuffW, StrCatBuff, StrCatBuffA, StrCatChainW, strcatA, strcatW, _tccat, _mbccat strcat_s Sprintf
Sprintf 函数 wnsprintf, wnsprintfA, wnsprintfW, sprintfW, sprintfA, wsprintf, wsprintfW, wsprintfA, sprintf, swprintf, _stprintf sprintf_s Tokenizing 函数 strtok, _tcstok, wcstok, _mbstok strtok_s Scanf scanf, wscanf, _tscanf, sscanf, swscanf, _stscanf sscanf_s Numeric conversions

数值转换函数

_itoa, _itow, _i64toa, _i64tow, _ui64toa, _ui64tot, _ui64tow, _ultoa, _ultot, _ultow _itoa_s, _itow_s Gets gets, _getts, _gettws gets_s

SDL 提供了头文件 ( banned.h ),编程人员一旦使用所有被禁用函数就会得到相关的警告。另一种可选的方式是编程人员可以在 VS2005 或后续版本中使用 /W4-C4996 编译选项。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2009-05-25 05:508141
用户头像

发布了 87 篇内容, 共 19.7 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Android 主流通用常用框架汇总(持续更新)

android 程序员 移动开发

android 五大应用开发框架

android 程序员 移动开发

Android 开发规范(完结版)

android 程序员 移动开发

Android Switch控件修改样式

android 程序员 移动开发

Android VideoPlayer

android 程序员 移动开发

Android Zygote 从何而来?揭开Android系统启动的面纱

android 程序员 移动开发

android 三级级联筛选列表

android 程序员 移动开发

Android 开发,你遇上 Emoji 头疼吗?

android 程序员 移动开发

Android UI--ViewPager扩展Tab标签指示

android 程序员 移动开发

Android 图像处理

android 程序员 移动开发

Android 开发面试中,面试过最喜欢问那些问题?

android 程序员 移动开发

android 实现 搜索保存历史记录功能

android 程序员 移动开发

Android 开发艺术探索笔记(21)

android 程序员 移动开发

Android View 绘制流程

android 程序员 移动开发

Android WebView常见问题

android 程序员 移动开发

Android 三类框架的理解以及MVVM框架的使用

android 程序员 移动开发

Nebula 分布式图数据库介绍

Se7en

Android _ 从 Dagger2 到 Hilt 玩转依赖注入(一)

android 程序员 移动开发

android 图表基本属性方法设置

android 程序员 移动开发

Android 实现系统深度休眠笔记

android 程序员 移动开发

Android 序列化(Serializable和Parcelable)

android 程序员 移动开发

android 中DrawerLayout实现抽屉

android 程序员 移动开发

Android 中高级核心复习面试题整理,备战年后金三银四!

android 程序员 移动开发

Android 使用讯飞语音SDK

android 程序员 移动开发

Android 开发艺术探索笔记(1)

android 程序员 移动开发

Android 原生控件ViewFlipper实现淘宝头条垂直滚动广告条

android 程序员 移动开发

android 定位到输入的地址

android 程序员 移动开发

Android 开发中,与屏幕有关的三个小众知识

android 程序员 移动开发

Android TextView的属性与应用

android 程序员 移动开发

Android 多渠道打包配置

android 程序员 移动开发

Android 开发者想咸鱼翻身并不是难事,只要你掌握这些……

android 程序员 移动开发

  • 扫码添加小助手
    领取最新资料包
memcpy()函数即将禁用_.NET_Abel Avram_InfoQ精选文章