<二>我要看代码

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

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

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

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

其中的第二个参数,就是Command line,在我们这里就是chrome.exe应用程序的参数。该api的详细介绍在 。

现在的问题就是这个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,后面接着整。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)

结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了 Java互联网工程师面试1000题 ,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

  • Java互联网工程师面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

  • 程序员代码面试指南–IT名企算法与数据结构题目最优解

  • 其余像设计模式,建议可以看看下面这4份PDF(已经整理)

  • 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

[外链图片转存中…(img-oNyI8IyO-1710396377691)]

以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

本文已被 收录