Windows RES协议

在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个比较复杂的问题,需要详细的代码实现和调试。以下是大概的思路和步骤: 1. 实现一个tcp server端 - 创建一个socket,绑定到一个端口上 - 监听客户端的连接请求 - 接受客户端的连接请求,创建一个新的线程来处理客户端的请求 - 在新线程中处理客户端的请求,根据协议执行相应的操作 2. 实现一个tcp client端 - 创建一个socket,连接到server端的ip地址和端口上 - 根据协议向server端发送请求 - 接收server端的响应 3. 自己设计简单的协议 - 可以使用字符串或二进制数据来表示请求和响应 - 可以使用预定义的命令来表示不同的操作 4. log保存在server端 - 可以使用文件来保存log信息 - 在server端处理client端的请求时,读写log文件 5. client通过socket向server端发送请求 - client根据协议向server发送请求 - server根据请求执行相应的操作 6. server通过socket返回响应 - server根据请求执行相应的操作 - 将操作结果返回给client 7. 当client异常退出时,server端应该有对应的处理机制 - 可以在server端记录client的状态,如是否在线等 - 当client异常退出时,server端可以根据状态来处理 8. server端的log打印不做任何要求,但是client正常/异常离线需要有对应的log - 可以在server端记录client的状态和操作日志 - 当client正常/异常离线时,server端可以记录日志 注意事项: - 在编写代码时要注意线程安全问题,如多个client同时访问server端 - 要注意内存泄漏和异常情况的处理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值