引用请注明出处:http://www.zhihu.com/question/21883209

想了好久,想了好久还没想好

陆彬伟、来来OvO、古城李  等人赞同
前几天,突然发现默认浏览器的Chrome的主页被篡改为了hao123。每次第一次打开,都自动跳转到 http://www.hao123.com/?tn=29065018_59_hao_pg这个网址。自己到网上搜了一下,试了各种方法最终还是无果,本着屌丝懂技术,神都难不住的精神决定自己破掉它。(*^__^*) 嘻嘻……
<一> 缩小包围圈

1、chrome设置?

对chrome中的启动时、外观属性都进行了修改,仍然没有解决问题。

2、快捷方式中添加了参数?

发现不管是从桌面快捷方式还是直接点击exe文件,chrome主页都被篡改。这就排除了是在桌面快捷方式中的目标栏中添加了hao123网址的缘故。哎,查看一下桌面chrome快捷方式不就得了,整的这麽麻烦。囧。

3、chrome.exe被篡改或者chrome配置文件被修改?

将chrome的配置文件和可执行文件一同拷贝到虚拟机中,擦,在虚拟机中就没问题。说明问题不在chrome身上。

那会是什么问题呢?山重水复疑无路,柳暗花明又一村。转折来了,将chrome.exe重新命名后,再打开浏览器,主页就是设置的www.google.com.hk,这样就没问题了。测试一下,将firxfox.exe重命名位chrome.exe后,主页也被篡改位流氓导航页。看来chrome.exe是个关键词啊!一个解决方案就这样诞生了,太easy了吧。但是这里面到底隐藏着什么奥秘呢?继续整!

<二>我要看代码

1. 先上第一个利刃,microsoft旗下的Process Explorer。

查看chrome.exe的主进程信息如下,亮点就在下图中。

小伙伴们一定看到了Command line下面的编辑框里有我们久违的流氓url吧。这个Comand line是什么东东?

Windows下常见的创建进程的api就是CreateProcess,这个函数申明如下。

其中的第二个参数,就是Command line,在我们这里就是chrome.exe应用程序的参数。该api的详细介绍在http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx。

现在的问题就是这个command line是谁传递给chrome.exe进程的?弄清楚这个问题之前,先要搞清楚,windows下,双击或者右键打开应用程序时,该应用程序进程是谁创建的?查阅资料发现,通过双击或者右键打开的应用程序进程都是由explorer.exe这个进程调用CreateProcess创建的。那么,我们的流氓url Command line 就一定是explorer.exe传递给chrome.exe。看来explorer.exe有问题了。测试一下,通过任务管理器中的创建新任务的方式启动chrome就没有流氓导航了。但是通过和虚拟机中的explorer.exe文件对比,发现主机和虚拟机中的两个文件完全相同。Exe运行时不光要加载自身的.exe程序文件,还要依赖一些动态库dll。是不是dll有问题。利刃2上场。

2、ollydbg闪亮上场。

用od加载explorer.exe运行,查看所依赖的dll。

看到有几个可疑的非系统dll,QvodExtend.dll, QvodWebBase.dll,按理说explorer.exe是不会依赖非系统dll的。想起来,网上说的卸载Qvod可以解决问题。这个怎么能说卸就卸呢?万万不可以的。

问题肯定是在调用CreateProcess之前出现的,在当前模块中查找调用CreateProcess的地方,一共有四个点,全部设置断点,然后调试explorer.exe进程?当然时调试失败了。~~~~(>_<)~~~~

但是重新加载explorer.exe运行,然后查看kernel32.dll的CreateProcess的代码发现了重要的问题。

下图就是kernel32.dll中的CreateProcess代码,尼玛不是说好了的CreateProcess将调用CreateProcessInternalW吗?这儿怎么上来直接 jmp QvodWebB.10008B90?QvodWebB你要闹啥啊!!!

看看下面这个正版的CreateProcess吧。

至此,整个流程大致出来了。QvodWebBase.dll将kernel32.dll的CreateProcessW代码的前5个字节改为了一条jmp指令,改变了CreateProcess的正常执行流程。实际上,CreateProcessA,CreateInternProcessW,CreateInternProcessA都被注入了相应的跳转指令。

<三>深入巢穴

QvodWeb如何随explorer.exe加载,QvodExtend.dll, QvodWebBase.dll到底都做了些什么?先mark,后面接着整。

1.先看看QvodExtend.dll, QvodWebBase.dll都导出了些什么函数。

下面是QvodWebBase.dll导出的函数。可以看到有InstallWindowsHook钩子函数。

同时,用IceSword扫描时发现,QvodExtend.dll还是个BHO。

同时,测试发现如果将QvodExtend.dll重命名后,就不会出现主页被篡改,同时explorer.exe也不会有QvodExtend.dll和QvodWebBase.dll模块。由此可以推断,QvodExtend.dll随explorer.exe或者ieplorer.exe启动时,会向系统注册QvodWebBase.dll中的钩子函数,接着再是加载QvodWebBase.dll时,该dll的DLLMain入口函数会向当前进程注入Jmp指令。

反汇编QvodExtend.dll代码可以发现,注册QvodWebBase.dll中的钩子函数的代码

至此,整个过程告一段落。
解决办法就是删除或者重命名QvodExtend.dll和QvodWebBase.dll。不知道会不会影响qvod,目前不得而知。
----------------------------------------------分割线------------------------------------------------------------------------------
QvodExtend.dll在其dll_main函数中,判断当前的模块是explorer.exe或者iexplore.exe,若两者都不是则退出;否则读取qvod安装目录下的QvodCfg.ini文件获取 QvodWebBase的版本号,找到 QvodWebBase.dll后调用LoadLibrary加载该模块(加载过程中会向CreteProcessA/W中注入代码,这个代码就是在CreateProcessInteralA调用之前修改comand line参数),接着调用GetProcAddress获得 QvodWebBase安装钩子的导出函数installwindowshook,并执行该函数,该钩子的类型是WM_CBT。整体流程就是这样。
----------------------------------------------分割线------------------------------------------------------------------------------ 
该实验的软件版本是QvodPlayer5.17.152.0,目前在最新版本中该问题已经解决。

chrome 主页被篡改为hao123?技术宅带你层层深入破之相关推荐

  1. chrome 主页被篡改为hao123?技术宅带你层层深入破之 -转自知乎

    作者为:http://www.zhihu.com/people/xiang-liao-hao-jiu 前几天,突然发现默认浏览器的Chrome的主页被篡改为了hao123.每次第一次打开,都自动跳转到 ...

  2. 修改 Chrome浏览器主页被劫持 chrome 主页被篡改成hao.qquu8.com的解决方案

    修改 Chrome浏览器主页被劫持 chrome 主页被篡改成hao.qquu8.com的解决方案 参考文章: (1)修改 Chrome浏览器主页被劫持 chrome 主页被篡改成hao.qquu8. ...

  3. 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome主页会被hao123劫持的故障原因及解决方法...

    有位win10系统用户最近遇到了一个问题,他反馈有次重启电脑后,好像某某浏览器升级了,然后打开chrome主页就被hao123劫持了,试了很多方法都没有作用.这是怎么回事呢?下面脚本之家的小编带来相应 ...

  4. Chrome浏览器主页被篡改为hao123暂时解决办法

    起因 最近看到某个公众号推送,一个关于程序员福音的导航:http://cxy521.com/,于是就想将其设为浏览器启动主页,无奈发现每次chrome启动都是hao123,无疑是被篡改了 .于是就开启 ...

  5. chrome主页被篡改后缀为?tn=49055317_4_hao_pg

    转载于:https://blog.csdn.net/qq_33661860/article/details/113700561 联想拯救者Y7000P出现该问题,是在用联想电脑管家修复网络DNS时候, ...

  6. chrome主页被篡改毒霸网址大全

    chrome.exe打开主页为毒霸网址大全https://www.duba.com/?f=qd_sch: 根据网上说的多数为右键属性,目标地址后缀会带有乱七八糟的地址,然而并没有. 搜索到的相关信息 ...

  7. 浏览器主页被篡改解决方案汇总

    解决方案一:修改注册表 ①组合键WIN+R 打开运行,输入regidit,回车: ②选中路径 替换为 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Ex ...

  8. 关于鲁大师安装后篡改chrome主页的问题

    最近偶尔用了一次鲁大师安装后,发现我的Chrome主页被篡改了,(至于是不是流氓做法请各位自行评定,反正我已经卸载了)发现是篡改了注册表的两处,并将原来的chrome.exe改名为old_chrome ...

  9. 解决chrome主页被hao123劫持的记录

    自己的chrome浏览器首页被流氓劫持,每次打开都会跳转至hao123主页, 问题:chrome浏览器打开后默认跳转至hao123页面或其他非自己设置的主页 情况1:chrome快捷方式右键属性,查看 ...

最新文章

  1. golang的包管理系统比较
  2. c++容器vector
  3. Xshell 6 提示 要继续使用此程序,您必须应用最新的更新
  4. 龙芯2h芯片不能进入pmon_国产处理器龙芯地址空间详解
  5. 「神策 2021 数据驱动大会」杭州站火热开启!
  6. kde下sudo出现cannot connect to xserver解决方法
  7. 茅塞顿开:Spring Aware原理解析
  8. 每日两SQL(5),欢迎交流~
  9. SpringAOP02 自定义注解
  10. IDEA:AbstractMethodError: Receiver class org.jetbrains.plugins.scala ScTraitImpl not define or inher
  11. “我恨Google无人车”
  12. CSS3 :nth-child()伪类选择器
  13. 分布式设计 —— 容错与主备
  14. ASP实现AJAX的几种方式!
  15. [整理]ISO 27001信息安全管理体系审核员试题汇编之单项选择题
  16. 使用GNOME Tweak Tool来定制Ubuntu 18.04上的GNOME 3桌面环境
  17. 如何实现业务流程集成
  18. photoshop 快捷键学习笔记
  19. RGB 色值与十六进制色值互转
  20. Delphi图像处理 -- 灰色浮雕

热门文章

  1. 2022下半年一些有趣(bushi)的题目记录
  2. centos配置pppoe详解
  3. CO内外部记账数据对应数据库表(COSP、COSS、COEP、COBK、TBO01)和业务场景操作示例
  4. backbone php,backbone-phpRestful并行
  5. 树莓派4B设置代理服务器的方法
  6. 腾讯云+社区沙龙·小程序敏捷开发实战(北京)开启报名
  7. 微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结
  8. 基于知识图谱并考虑智能数据关联的金融反洗钱软件设计及应用
  9. 从永远到永远-Docker安装使用(亲测可用)
  10. 港科喜讯 | 刘浩教授获评30 Under 30-福布斯中国2021