最近在编写shellcode,发现编译出了一个错误:error LNK2001: 无法解析的外部符号 _memset
然后我是一脸黑人问号??我全代码都没有调用memset函数,为什么会报这种无法解析的外部符号这种错误呢,后来用了注释调试法,发现了问题出现在一行代码
char savePath[MAX_PATH] = { 0 };
在没编写shellcode之前这句代码很正常就是一个字符串数组初始化为0的操作,就是因为这行代码才会导致报错!
猜测是因为这句代码内部实现是自动调用了memset函数
去除即可正常编译。
后续测试中发现是不能使用MAX_PATH这种系统常量