博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
_tcscat在Debug和Release根据问题
阅读量:6941 次
发布时间:2019-06-27

本文共 777 字,大约阅读时间需要 2 分钟。

背景

因此,例如,在下面的代码段,作用是得到的路径当前程序(C:\work\A.exe),然后”A.exe”拆除,组装的”C:\work\inject.dll”

TCHAR szDllPath[MAX_PATH] = _T("");TCHAR szExePath[MAX_PATH] = _T("");GetModuleFileName(GetModuleHandle(NULL), szExePath, MAX_PATH);int nIndex = 0;int i = lstrlen(szExePath);while (i > 0){    if (szExePath[i] == _T('\\'))    {        nIndex = i;        break;    }    i--;}for (i = 0; i < nIndex + 1; i++ ){    szDllPath[i] = szExePath[i];}_tcscat(szDllPath, _T("InjectDll.dll"));

问题

1.Debug模式下执行,得到的结果是预期的"C:\\work\\inject.dll"。

2.Release模式下执行。得到的结果却是"C:\\work\\",也就是_tcscat函数执行不成功。

结论

1.发现使用_tcscat可能存在风险问题,换用_tcscat_s就OK了。

2.自从vc2005開始,微软力推_s安全版函数以代替不安全的标准非_s版函数,比如:strcat_s、strcopy_s、sprintf_s、_tcsnset_s、_tcsset_s、_tcstok_s...等等 3.代码静态走查是能够关注字符串运算是否使用了_s安全版函数。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
mysql 文件导入方法总结
查看>>
汉化入门之ExplorerControls
查看>>
python 转 exe -- py2exe库实录
查看>>
第 55 章 Cherokee
查看>>
iOS - Plist 数据解析
查看>>
sql 经常使用的语句(个人)
查看>>
日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)
查看>>
查看Linux下的文件
查看>>
7mall:4种方法弥补店铺亮点不够多的产品
查看>>
SAP WM LRFMD中Variant参数的影响初探
查看>>
【Xamarin挖墙脚系列:多窗口之间的导航】
查看>>
JPA & Hibernate 注解
查看>>
android 读写sd卡的权限设置
查看>>
Android4: Write Storage权限问题
查看>>
9.9、Libgdx之软键盘
查看>>
LB 负载均衡的层次结构(转)
查看>>
JavaWeb-Servlet技术的监听器-解析与实例-网站在线用户信息与网页点击量
查看>>
【百度地图API】批量地址解析与批量反地址解析(带商圈数据)
查看>>
Flink内存管理源码解读之内存管理器
查看>>
libcurl,多线程,gzip,共享DNS
查看>>