Play-with-chrome之环境搭建

Author Avatar
hac425 11月 27, 2017
  • 在其它设备中阅读本文章

前言

浏览器漏洞在 APT 攻击中用的比较多,而且这基本上是用户上网的标配了,所以研究浏览器的漏洞是十分有前景的,我认为。我选择 chrome 浏览器 ( chromiumchrome之间的关系请自行百度 )为研究对象,主要原因如下:

  • 用户基数大,大量的用户使用 chrome 或者由 chrome 改装的浏览器。
  • 安卓从 4.4 就已经开始使用 chromiumv8 作为 webkit,所以chrome 中的漏洞极有可能在 安卓上也有。

工欲善其事,必先利其器 , 本文主要讲环境的搭建,包括 chrome的编译与调试 && v8 引擎到的编译与调试。

测试环境

1
Win10 64 位, Visual Studio 2015

正文

Chrome编译

Visual Studio 2015

如果你有比较稳定(速度要快,不然得下特别久)的 翻墙 方案,可以直接按照官方的教程来。

在不能 翻墙 时,可以按照我的方案来。

首先下载下面的资源, 其中包括 chrome 58 的源代码, 以及编译时需要的工具。

1
链接: https://pan.baidu.com/s/1qXMy19U 密码: 49kx

然后下载安装 Visual Studio 2015 , 在安装的时候除了 移动开发相关 的取消掉,其他的都选上,以免重来 , 要不然重新安装又得花特别长的时间。

paste image

如果系统语言是 中文 的话还需要,修改 非Unicode 程序的语言英语(美国) , 如下图所示

paste image

depot_tools

然后解压 depot_tools-2017-1-ALL.rar 到一个目录,目录名不要有 空格, 中文 。然后把目录添加到环境变量,后面编译时要用到。

比如我的 depot_tools 的目录是 D:\depot_tools\depot_tools

paste image

然后新建一个 DEPOT_TOOLS_WIN_TOOLCHAIN 系统变量, 其值设为 0.

paste image

设置 chromium 源码

首先解压 chromium 到一个目录,然后解压 develop-for-Stable-chromium-58.0.3029.81.zip 文件,然后拷贝相应文件夹到 chromium 源码目录,覆盖掉相应的文件夹。

编译

进入源码目录,执行命令,生成编译需要的文件和 vs 2015 的解决方案。

1
2
gn gen out/Default --args="enable_nacl=false"
gn args out/Default --ide=vs

然后使用 ninja 编译

1
ninja -C out\Default chrome

如果没有问题,等几个小时就好了。然后会在 out\Default 下生成 chrome.exe 和相关的 dllpdb 调试文件。

调试

方案一

使用 Visual Studio 2015 加载 all.sln 直接调试。

paste image

方案二

Visual Studio 2015 会非常的慢, 可以使用 windbg preview 调试,图形化,而且快,也有 windbg 的强大功能

windbg preview 可以在 windows store 下载

paste image

打开点击 左上角 文件, 根据情况设置好即可。

paste image

这里以 调试 node 为例 (原因是 node 使用 v8

首先进入 settings 设置符号路径。
paste image
然后根据上上图设置调试的程序 和 参数。 点击 ok 运行之
paste image

设置断点,断点断下来后可以直接定位到源码(自己编译)

paste image
调试信息非常的直观

编译 node

有时漏洞是位于 v8 引擎里面的。 我们可以使用 node 或者 d8来调试 v8 ,这样调试速度比较快。

node 可以去 淘宝的 镜像 里面下载, 这样速度快。

下载完后,解压。如果是在 windows 下编译,先运行

paste image

生成 vs 解决方案,然后编译就行了。
如果在 linux 下 直接

1
./configure --debug && make -j8

本站文章均原创, 转载注明来源
本文链接:http://blog.hac425.top/2017/11/27/have_fun_with_chrome_part1.html