如何拦截ActiveX的下载?(非XP SP2系统下)

shines77 高级软件工程师  2005-07-22 09:43:50
XP SP2后IE自己实现了这个功能,如何在以前的系统(Win98/Win2000/Win XP SP1)下的IE实现这个功能,类似3721和Maxthon(Maxthon是基于IE内核写的,比3721等插件容易实现)。

拦截到之后,如何获得ActiveX的信息,如插件来源(CODEBASE),插件的名称、Classid等

分不够还可以再开贴,谢谢。
...全文
201 点赞 收藏 14
写回复
14 条回复
shines77 2005年07月30日
准备下载安装(多数情况是第一次安装)的ActiveX注册表里应该是找不到的吧...
回复 点赞
sinall 2005年07月30日
(CODEBASE)、Classid可以从网页里分析得到,但插件在注册表里的名称,比如"ShockwaveFlash Object"就得不到了。。。
——Classid 你都得到了,其他信息可以到注册表里查找。
回复 点赞
shines77 2005年07月29日
看了你自己写的另外一篇文章:

控制下载和执行
浏览器控件给你它的下载,显示设置和执行的控制权。 为了要得到这些控制,你实现你的宿主的IDispatch接口,使得它处理DISPID_AMBIENT_DLCONTROL。当浏览器控件被实例化的时候,它将会以这一个ID调用你的IDispatch::Invoke。将pvarResult设置为下列的标识的一个位与的组合,指明你的配置。

DLCTL_NO_DLACTIVEXCTLS 和 DLCTL_NO_RUNACTIVEXCTLS: ActiveX 控件将不被下载或者运行。

还有,

IInternetSecurityManager::ProcessUrlAction Method里有

URLACTION_ACTIVEX_RUN
Manages the execution of ActiveX Controls and plug-ins from HTML pages in the zone.

URLACTION_DOWNLOAD_SIGNED_ACTIVEX
Manages the download of signed ActiveX Controls from the URL zone of the HTML page that contains the control.

URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX
Manages the download of unsigned ActiveX Controls from the URL zone of the HTML page that ontains the control.

感觉关于ActiveX Download的部分应该有点用,但不知道怎么在IE插件里实现宿主的IDispatch接口,或者替换WebBrowser的IInternetSecurityManager接口,因为所给的范例都是基于MFC的
回复 点赞
shines77 2005年07月29日
to jiangsheng(蒋晟.MSMVP2004Jan),

我看了下那2个文章和例子程序,security manager只能禁止或打开(ActiveX, Script, Java)的请求,好像不能做到拦截某一个classid的Object对象,而且security manager只能简单的关闭所有的ActiveX,拦截真正的目的只是把正在准备下载安装的ActiveX拦截,而对于已经下载安装的ActiveX是不处理的,我查阅MSDN,曾经试过Hook CoGetClassObjectFromURL() 函数无效,只要有办法可以拦到ActiveX弹出的(是否信任某某插件)确认框,就算前进了一小步,虽然此时ActiveX的cab文件已经下载了,只是没有安装和自注册。最好是在下载ActiveX的cab文件的时候就收到通知就完美了,但是要跟正常的点击下载cab文件区别开来,Pluggable Namespace Handler可以拦截到cab的下载,但无法区分是ActiveX的cab下载,还是点击的cab下载。。。(而且Pluggable Namespace Handler技术有时会被其他插件干扰而失效)
回复 点赞
shines77 2005年07月25日
(CODEBASE)、Classid可以从网页里分析得到,但插件在注册表里的名称,比如"ShockwaveFlash Object"就得不到了。。。
回复 点赞
sinall 2005年07月24日
上次没发出去。
“拦截到之后,如何获得ActiveX的信息,如插件来源(CODEBASE),插件的名称、Classid等”
——分析网页源码应该可以。
回复 点赞
shines77 2005年07月23日
lcstudio(铁板牛牛): 你的方法不行, 拦截的意义在于还在可以对用户感兴趣的ActiveX放行,不能一棒子打死
回复 点赞
helldream2002 2005年07月22日
回复 点赞
rolen 2005年07月22日
不会,关注
回复 点赞
shines77 2005年07月22日
自己Mark
回复 点赞
lcstudio 2005年07月22日
非技术解决法:
其实IE已经实现了,把那些觉得应该下载的网址放到“可信站点列表”,然后把internet域的下载已签名ActiveX控件禁用就可以。
回复 点赞
shines77 2005年07月22日
谢谢 jiangsheng(蒋晟.MSMVP2004Jan),回去看看
回复 点赞
AntonlioX 2005年07月22日
firefox不支持ActiveX ,可以参考一下
回复 点赞
蒋晟 2005年07月22日
http://support.microsoft.com/kb/q246227/
http://support.microsoft.com/kb/q239095/
回复 点赞
发动态
发帖子
ATL
创建于2007-09-28

3023

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告