如何拦截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等

分不够还可以再开贴,谢谢。
...全文
285 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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/

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧