chrome 主页被篡改为hao123?技术宅带你层层深入破之
来源:互联网 发布:ds18b20工作原理c语言 编辑:程序博客网 时间:2024/05/22 00:22
引用请注明出处:http://www.zhihu.com/question/21883209
<一> 缩小包围圈
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?技术宅带你层层深入破之
- chrome 主页被篡改为hao123?技术宅带你层层深入破之 -转自知乎
- Chrome 浏览器主页被 hao123 篡改解决办法
- chrome被hao123劫持,篡改主页
- 浏览器主页被篡改为hao123
- 浏览器主页被篡改为hao123解决办法
- chrome主页被垃圾软件篡改为hao123后最小白的修复方法
- chrome主页被篡改为360导航之解决方案
- win10 被KMS 篡改主页 hao123
- 修改被hao123恶意篡改的主页
- 主页被hao123篡改真正的解决方案
- IE、Chrome浏览器主页被hao123或360篡改简单有效解决办法
- 一分钟解决Chrome浏览器主页被hao123、360和2345篡改简单有效方法
- Chrome,IE等浏览器主页被hao123等篡改的解决方法
- 主页被篡改修复 例如: hao123,毒霸网址大全
- IE主页被篡改成hao123并且灰色无法更改
- 关于浏览器主页被hao123等页面篡改的解决方法
- chrome被hao123主页绑架的解决
- android的消息处理机制(图+源码分析)——Looper,Handler,Message
- Hadoop工具箱:到底应该什么时候用哪一个?
- Js实现Ctrl+S/Ctrl+N/Ctrl+Z提交/撤销/新建/附:Keycode常数表
- 点滴:Java JVM垃圾回收机制
- [Mugeda HTML5技术教程之18]如何在Android应用中使用Mugeda动画内容
- chrome 主页被篡改为hao123?技术宅带你层层深入破之
- PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)
- Linux多线程同步互斥量Mutex详解
- ArrayList和LinkedList的区别
- ffmpeg h264+ts +udp传输
- B - 最少拦截系统
- 107条Javascript的常用语句
- Linux 首次引入 nftables
- 团队协同工具