源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

vbscript LoadPicture函数使用方法与漏洞利用

  • 时间:2021-08-04 02:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:vbscript LoadPicture函数使用方法与漏洞利用
[url=http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms693724%28v=vs.85%29.aspx]OleLoadPicture[/url]函数,查文档可知返回的是[url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms680762%28v=vs.85%29.aspx]IPictureDisp[/url]接口。不过后来我发现了更简单的方法,那就是查VB的函数声明(谁让它们是一家人呢),在VB的对象浏览器中查找LoadPicture函数: Function LoadPicture([FileName], [Size], [ColorDepth], [X], [Y]) As IPictureDisp虽然VBS的LoadPicture函数比VB的简单,但是返回值应该是一样的。 好了,知道返回的是IPictureDisp接口,文档说它支持下面的属性:
Property Type Access Description
Handle [b]OLE_HANDLE[/b] ([b]int[/b]) R The Windows GDI handle of the picture
hPal [b]OLE_HANDLE[/b] ([b]int[/b]) RW The Windows handle of the palette used by the picture.
Type [b]short[/b] R The type of picture (see [url=http://msdn.microsoft.com/en-us/library/windows/desktop/ms687195(v=vs.85).aspx]PICTYPE[/url]).
Width [b]OLE_XSIZE_HIMETRIC[/b] ([b]long[/b]) R The width of the picture.
Height [b]OLE_YSIZE_HIMETRIC[/b] ([b]long[/b]) R The height of the picture.
我们只关心Width和Height,它们分别表示图片的宽和高,但是它们的单位不是像素(Pixel),而是Himetric,我们要做的是把Himetric换算成Pixel。 首先把Himetric换算成英寸(Inch),1 Himetric = 0.01 mm,1 Inch = 2.54 cm,所以1 Inch = 2540 Himetric。 然后从Inch换算成Pixel,1 Inch等于多少Pixel呢?这是由系统的DPI(Dot Per Inch)设置决定的,默认值是96。 现在知道2540和96是怎么来的了吧?不过上面的代码存在两个问题:第一,使用了2540/96的近似值,可能会有误差;第二,使用了DPI的默认值96,而DPI的值是可以在控制面板中修改的。 VBS中LoadPicture函数的正确用法是:
[url=http://demon.tw/programming/vbs-loadpicture.html]http://demon.tw/programming/vbs-loadpicture.html[/url] 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部