有个windows dll,编译后看导出表,发现其几乎将stdio.h里的printf/sprintf/fprintf等172个CRT函数全部导出了。
这个dll工程没有使用*.def文件来定义导出函数。
源码里搜__declspec(dllexport),貌似没发现可疑的声明。
搜索包括了vcpkg里的第三方头文件,这些第三方库一般会把__declspec(dllexport)定义为自己的宏。比如:
#define LIBMQTT_API __declspec(dllexport)
调用者是不会用这些宏的。
用dumpbin /exports *.lib,也没发现自己编译出的lib、vcpkg里的第三方lib有导出printf/scanf系列的函数。
--
FROM 125.35.123.*