VBS字符串的内部实现
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
函数是以 NUL 作为字符串结束符的。 复制代码 代码如下: /* 简单起见只实现一个参数 * MessageBox 的第二个参数是以 NUL 作为结束符的 * Pointer to a null-terminated string that contains the message to be displayed. * 所以 VBS 字符串中包含的 Chr(0) 会把字符串截断 */ int MsgBox(const BSTR str) { return MessageBoxW(NULL, str, L"", 0); } 也就是说,如果 VBS 内置的函数或者 COM 组件的某些方法在其内部实现中调的 Windows API 的字符串参数是以 NUL 作为结束符的话,就会被 Chr(0) 字符截断。 现在再去看《ASP/VBScript中CHR(0)的由来以及带来的安全问题》、《ASP上传漏洞之利用CHR(0)绕过扩展名检测脚本》、《ASP缺陷—-一个特殊字符chr(0)》、《用Python脚本写ASP页面》,应该就不会有疑问了吧。 时间关系就不再展开了,如果你想了解更多关于 COM 组件的知识,我推荐你拜读一下 Jeff Glatt 的神作《COM in plain C》。 仅以此文回答雨中风铃的问题。 注①:本文中 Chr(0) 和 NUL 交替使用,表示同一个意思。 原文: http://demon.tw/programming/vbs-file-unicode.html |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于VBS字符串的内部实现的所有评论