一 BHO和浏览器劫持

BHO
Browser Helper Objects (也被称为 BHOs) 是com组件,扮演着ie插件的角色。BHOs可以在某种程度上定制IE,如:用户交互的修改,网页过滤的及下载管理。

BHO(Browser Help Objects),是实现了特定接口的COM组件。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的工程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等;BHO可以在这些事件的响应中实现与浏览器的交互。

浏览器劫持

BHO的出现帮助程序员更好的打造个性化浏览器或者为自己的程序实现了方便简洁的交互功能,可以说,如果没有BHO接口的诞生,我们今天就不能用一些工具实现个性化IE的功能了。从某一方面来看,BHO的确是各种缤纷网络互动功能的幕后功臣,但是一切事物都是有两面性的,这个恒古不变的真理同样对BHO有效,于是就有了今天让安全界头痛的“浏览器劫持”的攻击手段诞生。
看看前面我提到的BHO接口特性,你想到了什么?BHO可以获知和实现浏览器的大部分事件和功能,也就是说,它可以利用少量的代码控制浏览器行为。程序员可以设计出一个BHO按钮以实现用户点击时通知浏览器跳转到某个页面完成交互功能,当然就可以进一步写出控制浏览器跳转到他想让用户去的页面,这就是最初的“浏览器劫持”的成因:BHO劫持。

IE如何加载BHO
当BHO将被IE加载的时候,它调用一个叫做CoCreateInstance的COM函数,传给它我们BHO的类ID和叫做IObjectWithSite的接口ID。
BHOs被要求实现IObjectWithSite接口,是IE用来和BHO交互的。

二 查找BHO模块

通过前面介绍,可知,BHO是一个dll,并且实现了相应的COM接口。下面来找下浏览器进程中的DLL,看有无BHO。因为现在的浏览器都有扩展功能,也许会有BHO。

看360极速浏览器的所引入的模块;

看下这个afe.dll的介绍,也许是BHO;

用dll查看器看下,它只实现了两个函数,不是BHO;

再找另一个DLL查看工具看下,也许前一个看的不准;

这个工具查看模块导出的函数要麻烦一些;

结果是一样的,afe.dll仅导出2个函数,不是BHO;

再看这个dll,介绍说是“插件”;那么可能是BHO;

用dll查看器查看,导出3个函数,非BHO;

看下360极速浏览器导入的这堆dll,看上去似乎都不是BHO;good,很好;

三 在注册表中查找BHO

根据相关资料有,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
可以找到所有的BHO
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
中可以找到BHO对应的注册项
其中的InprocServer32的默认值为BHO所对应的dll文件.
打开我电脑的上述键,根本没有上述第一个键;

再看CLSID里,一堆,根本不知道谁是谁;

用搜索功能搜索注册表;

原来64位系统该键在另外的位置;

搜到3个BHO,如下;看上去都是微软自带的;

看下360极速的模块,没有导入上面3个dll;看来360极速浏览器是没有使用BHO插件的了,good。

结束此次研究。

图解用工具对BHO做初步研究相关推荐

  1. 图解用工具对PE文件格式做初步研究

    工具: PETool,MiniHex,PEViewer 以本机notepad.exe为研究对象.本机64位,该notepad.exe是64位应用程序. 1 用peviewer打开 PE文件大体包括四部 ...

  2. 图解使用PowerTool对Windows内核做初步研究探索

    PowerTool下载 http://pan.baidu.com/s/1skZx4TZ PowerTool_1.6_PortableSoft.7z 1 系统检测 自动检测了如下安全项: 有个 流氓快捷 ...

  3. GWT与Eclipse集成开发初步研究

    GWT与Eclipse集成开发初步研究 原文:http://blog.sina.com.cn/s/blog_415bd707010086cy.html JDK6.0 下载.安装.配置 http://b ...

  4. 研究人员用数据统计的方法来做文学研究

    研究人员用数据统计的方法来做文学研究 大数据与文学,一个是理性工具,一个是感性思维,看起来似乎不沾边.但如今,二者的联系却日渐紧密起来,也由此引发了不少争议. 谁是最爱往外跑的诗人? 唐宋时期最爱往外 ...

  5. 基于windows PE文件的恶意代码分析;使用SystemInternal工具与内核调试器研究windows用户空间与内核空间...

    基于windows PE文件的恶意代码分析:使用SystemInternal工具与内核调试器研究windows用户空间与内核空间 ******************** 既然本篇的主角是PE文件,那 ...

  6. 特别推荐 | 专利引用数据,可以用来做哪些研究?

    一.引言 最近有不少学界的朋友向我们询问关于专利引用数据的情况.看来学界已经不能再满足简单统计企业各类专利申请.授权的数量,而希望以更丰富的专利信息为切入点对创新展开更为深入的研究. 文献检索发现,目 ...

  7. 周志华教授:AI领域如何做优秀研究并写高水平论文?

    ↑ 点击蓝字 关注极市平台 来源丨深度强化学习实验室 极市导读 本文整理了AI领域著名学者周志华教授<做研究与写论文>的PPT,详细介绍了从研究方向选择到论文写作技巧,再到向期刊投稿的过程 ...

  8. 【正一专栏】读《怎样做社会研究》——社会研究的意义

    读<怎样做社会研究>--社会研究的意义 原创 2017-11-01 九天 九天时空 读了费老的江村经济,再读这本<怎么做社会研究>有点豁然开朗的感觉,这简直就是一部中国社会学的 ...

  9. 如何给一家公司做定性研究?

    讨论:先从四个关键要素开始.老实说,这不是一个寥寥几句就可以回答清楚的问题.最稳妥的办法就是去读巴菲特历年致股东的信,里面有大量的关于如何给企业做定性研究的表述. 尽管如此,我们还是决定在这里为那些想 ...

最新文章

  1. 微擎小程序怎么配置服务器域名,随便撸源码源码微擎小程序通用配置图文教程,教会你怎么配置微擎小程序!...
  2. 【小游戏】有意思的小游戏集合
  3. hdu 5256 序列变换 (LIS变形)
  4. JavaScript(js)/上
  5. 8位两院院士、20位长江、杰青……这个学院厉害了!
  6. Python模块之: fractions模块-分数模块
  7. 甘肃陇西雪后现雾凇 田野树林披“银装”
  8. 终端编译opengl程序编译运行_ubuntu – 通过SSH编写opengl代码,通过机器显示运行程序...
  9. ApacheCN Vue 译文集 20211115 更新
  10. JAVA中的hasNextInt()方法多次调用只有一个结果的原因
  11. 1042 Shuffling Machine
  12. SharePoint 2010 文档管理系列
  13. 聊聊苹果电脑上不错的三维建模软件
  14. 【数学建模】——1992~2019国赛优秀论文
  15. 【Ubuntu20.04+ROS Noetic】ROS解决BUG日志【一】
  16. HDU4585 Shaolin
  17. CMDN Club #20 活动预告: 从粉笔网多终端产品快速开发说开去——移动创业产品的架构和项目管理(10月10日)...
  18. mysql sql查询昨天的数据_sql语句,查询昨天的数据
  19. linux中的快捷键大全
  20. 域名Goldrush第6部分-追溯到未来?

热门文章

  1. python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer
  2. xshell突然连接不上虚拟机解决办法
  3. 应用程序启动器选项卡以及页面内容的设置
  4. EasyStruct.js轻松创建可填入式html模板结构
  5. BAT批处理文件无法运行提示“/E /I /Y ‘XCOPY‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”解决方法
  6. 嵌入式Linux学习2——Linux常用指令2
  7. 两个坐标系进行了缩放平移后的变换关系
  8. 【HDU 2814 扩展欧拉 a^b ≡ (a mod c)^b mod ϕ(c)+ϕ(c) modc,b=ϕ(c) 】
  9. 第7周项目实践 1 队列算法库的建立
  10. MATLAB图像函数 块和邻域的处理