Play-with-chrome之环境搭建
前言
浏览器漏洞在 APT 攻击中用的比较多,而且这基本上是用户上网的标配了,所以研究浏览器的漏洞是十分有前景的,我认为。我选择 chrome 浏览器 ( chromium和 chrome之间的关系请自行百度 )为研究对象,主要原因如下:
- 用户基数大,大量的用户使用
chrome或者由chrome改装的浏览器。 - 安卓从
4.4就已经开始使用chromium和v8作为webkit,所以chrome中的漏洞极有可能在 安卓上也有。
工欲善其事,必先利其器 , 本文主要讲环境的搭建,包括 chrome的编译与调试 && v8 引擎到的编译与调试。
测试环境
Win10 64 位, Visual Studio 2015
正文
Chrome编译
Visual Studio 2015
如果你有比较稳定(速度要快,不然得下特别久)的 翻墙 方案,可以直接按照官方的教程来。
在不能 翻墙 时,可以按照我的方案来。
首先下载下面的资源, 其中包括 chrome 58 的源代码, 以及编译时需要的工具。
链接: https://pan.baidu.com/s/1qXMy19U 密码: 49kx
然后下载安装 Visual Studio 2015 , 在安装的时候除了 移动开发相关 的取消掉,其他的都选上,以免重来 , 要不然重新安装又得花特别长的时间。

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

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

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

设置 chromium 源码
首先解压 chromium 到一个目录,然后解压 develop-for-Stable-chromium-58.0.3029.81.zip 文件,然后拷贝相应文件夹到 chromium 源码目录,覆盖掉相应的文件夹。
编译
进入源码目录,执行命令,生成编译需要的文件和 vs 2015 的解决方案。
gn gen out/Default --args="enable_nacl=false"
gn args out/Default --ide=vs
然后使用 ninja 编译
ninja -C out\Default chrome
如果没有问题,等几个小时就好了。然后会在 out\Default 下生成 chrome.exe 和相关的 dll 和 pdb 调试文件。
调试
方案一
使用 Visual Studio 2015 加载 all.sln 直接调试。

方案二
用 Visual Studio 2015 会非常的慢, 可以使用 windbg preview 调试,图形化,而且快,也有 windbg 的强大功能
windbg preview 可以在 windows store 下载

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

这里以 调试 node 为例 (原因是 node 使用 v8 )
首先进入 settings 设置符号路径。

然后根据上上图设置调试的程序 和 参数。 点击 ok 运行之

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

调试信息非常的直观
编译 node
有时漏洞是位于 v8 引擎里面的。 我们可以使用 node 或者 d8来调试 v8 ,这样调试速度比较快。
node 可以去 淘宝的 镜像 里面下载, 这样速度快。
下载完后,解压。如果是在 windows 下编译,先运行

生成 vs 解决方案,然后编译就行了。
如果在 linux 下 直接
./configure --debug && make -j8
Play-with-chrome之环境搭建的更多相关文章
- selenium+java+chrome 自动化测试环境搭建
安装jdk (jdk 配置环境变量) eclipse(可用免安装的) 安装谷歌浏览器 下载chorme driver (chorme driver 也要配置环境变量,将chormedriv ...
- Selenium + Python + Chrome 自动化测试 环境搭建
一.下载Python 相关的教程很多,此处不详细记录了,下面是官网下载地址: https://www.python.org/downloads/ 我使用的python版本为 Python 3.6.1 ...
- Ubuntu环境搭建系列—Chrome/JDK/Android篇
其实每次重装Ubuntu系统的时候都要进行一次基本到环境配置,而且每次总会忘记一些环境配置到东西,所以就写下这个博文,方便自己以后重装系统的时候回顾,同时也给大家做为重装系统后基本环境搭建的参考. 因 ...
- Chrome 插件PPAPI 开发(一)环境搭建
前言:本文参考了其他已有的文章,在其基础上简化了一些没有必要的操作. 同时也记录一下chrome 插件ppapi环境的基础搭建.并且感谢已有文章作者的大无畏的分享精神! 在这附上参考文章链接:http ...
- Firfox、Chrome之python-selenium环境搭建
公共步骤: 一.文件下载 下载地址: python安装包:https://www.python.org/getit/ PyCharm 安装包:http://www.jetbrains.com/pych ...
- React Native的环境搭建以及开发的IDE
(一)前言 前面的课程我们已经对React Native的环境搭建以及开发的IDE做了相关的讲解,今天我们的主要讲解的是应用设备运行(Running)以及调试方法(Debugging).本节的前提条件 ...
- webDriver环境搭建与测试
1.安装jdk 2.安装eclipse 3.安装selenium 由于使用的是开发语言是java,因此需要安装java版的selenium包.下载地址:http://pan.baidu.com/s/1 ...
- Ubuntu Desktop开发生产环境搭建
Ubuntu Desktop开发生产环境搭建 1 开发生产环境搭建 在本节内容开始前,先定义一下使用场合,没有哪种系统或者设备是万能的,都有它的优点和缺点,能够在具体的使用场景,根据自身的需求来取 ...
- Ubuntu Desktop基本办公环境搭建
Ubuntu Desktop基本办公环境搭建 一如前面所强调的, linux系统是面向开发人员友好的,而对office办公人员并不友好 . 如果是重度的office办公需求人员,不建议使用linux ...
- [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建
在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...
随机推荐
- (转)inspect — Inspect live objects
原文:https://docs.python.org/3/library/inspect.html 中文:https://www.rddoc.com/doc/Python/3.6.0/zh/libra ...
- Vundle,Vim 的 Bundle(转)
长久以来,我管理 Vim 配置的方式都非常原始—— zip 打包,然后发到邮箱上.偶尔会发生忘记备份,或者配置混淆的状况,不过由于懒筋发作,竟然这个方案就这么用了两年. 终有一天,我觉得这个方法太笨了 ...
- Java之IO(四)DataInputStream和DataOutputStream
转载请注明源出处:http://www.cnblogs.com/lighten/p/6986155.html 1.前言 DataInputStream和DataOutputStream分别继承了Fil ...
- 安装微软dynamics AX2012R3-AOS(含域服务器的安装)
安装之前首先要确保硬盘可用量>60G,内存要在7G及以上,我是在Mac里装的虚拟机,分配了7G内存(我的电脑总共才8G),编译CIL内存占用到了98% 一.Server 2016新建域控服务器 ...
- android学习-数据存储(一)-----SQLite源码分析
分析SQLiteDatabase.java,SQLiteStatement.java,SQLiteSession.java,SQLiteConnectionPool.java,SQLiteConnec ...
- logstash-jdbc-input与mysql数据库同步
大多数情况下我们的数据都存放在了数据库中,但是elasticsearch它有自己的索引库,那么如果我们在做搜索的是时候就需要将数据库中的数据同步到elasticsearch中,在这里我们使用logst ...
- 深度剖析Dubbo源码
-----------------学习dubbo源码,能给你带来什么好处?----------- 1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕 ...
- word黑底白字
我们在使用word文档编辑文件时,有时候希望某段文字采用黑底白字,以区分其他段落的白底黑字从而达到强调的效果. 方法是: 1. 选中待处理的段落. 2. 点击“设计”选项卡. 3. 找到“设计”选下卡 ...
- cpu负载的探讨
原链接:http://blog.chinaunix.net/uid-12693781-id-368837.html 摘要:确定cpu的负载的定义,帮助管理员设置cpu负载阀值,推测可能的导致cpu负载 ...
- [转载]常见的移动端H5页面开发遇到的坑和解决办法
转过来,平时看看.虽然还有很多问题至今无解.比如:华为麒麟950的P8和meta打开我们的应用首页经常偶发白屏.!! 1.安卓浏览器看背景图片,有些设备会模糊. 用同等比例的图片在PC机上很清楚,但是 ...