Windows RES协议

来源:互联网 发布:java在线运行环境 编辑:程序博客网 时间:2024/05/16 05:50
在IE里输入以下“网址”,看看出来什么了?
res://shell32.dll/2/131


res://C:\WINDOWS\system32\drivers\estbus.sys/16/1


res://notepad.exe/16/1


res://shell32.dll/16/1


是不是可以用来分析 exe dll sys 的版本呢?只要符合 Win32 PE 格式的文件都可以用 res:// 协议来分析。其中第二个数字是资源类型,在 VC++ 的 winuser.h 里有定义


#define RT_CURSOR MAKEINTRESOURCE(1)
#define RT_BITMAP MAKEINTRESOURCE(2)
#define RT_ICON   MAKEINTRESOURCE(3)
#define RT_MENU   MAKEINTRESOURCE(4)
#define RT_DIALOG MAKEINTRESOURCE(5)
#define RT_STRING   MAKEINTRESOURCE(6)
#define RT_FONTDIR MAKEINTRESOURCE(7)
#define RT_FONT   MAKEINTRESOURCE(8)
#define RT_ACCELERATOR MAKEINTRESOURCE(9)
#define RT_RCDATA MAKEINTRESOURCE(10)
#define RT_MESSAGETABLE MAKEINTRESOURCE(11)
#define RT_VERSION MAKEINTRESOURCE(16)
#define RT_DLGINCLUDE    MAKEINTRESOURCE(17)
#define RT_PLUGPLAY      MAKEINTRESOURCE(19)
#define RT_VXD           MAKEINTRESOURCE(20)
#define RT_ANICURSOR     MAKEINTRESOURCE(21)
#define RT_ANIICON       MAKEINTRESOURCE(22)
#define RT_HTML          MAKEINTRESOURCE(23)


res:// 用处大了,可以用来提取图片、AVI、光标、图标等。


还有一个很NB的专门用来分析文件图标的协议 sysimage,只是只从上次出了个 文件探测 的漏洞以后,貌似微软就把这个协议封了,IE7里直接禁用了,郁闷。


IE中"RES://"协议的详细用法


"RES://"协议是IE 4.0预定义的一个协议,它的具体语法为:"RES://resource file[/resourcetype]/resource id"。


    resource file:含有资源的模块的文件名,请注意这里的路径分隔符只能使用“\”,而不能使用“/”。


    Resourcetype:资源类型,它是一个字符串或数字。常用的资源类型都对应着一个数,比如BITMAP对应着RT_BITMAP=2,这些常数定义在VC++的WINUSER.H可以找到,如果资源类型是数字,要在数字前面加上“#”号。Resourcetype可以省略,默认为RT_HTML=23,即HTML文件。RT_HTML在VC++ 5.0中没有定义,但现在已经广泛使用。


    Resource id:资源的ID号。


VBS代码:


Dim oInfo,a
a=InputBox("Full file path?",wscript.ScriptName,"shell32.dll") 
msgbox a 
Set oVer = WScript.GetObject("res://"& a&"/16/1") 
WScript.Sleep 500 
oInfo = Split(oVer.body.innerHTML,Chr(01)) 
For i = 1 To UBound(oInfo) 
WScript.Echo oInfo(i) 
Next

原创粉丝点击