前言

该漏洞源于 V8 引擎的 Maglev 编译器在处理具有父类的类时的编译机制。在此场景下,编译器需遍历所有父类及其构造函数进行查找,而此过程中引入了安全漏洞,该漏洞的补丁和详细信息可以从chrome issues中来进行查看,下面我们将对此漏洞进行详细的分析以及对v8 shell的提权操作

Read more »

简介

v8 是一种 JS 引擎的实现,它由Google开发,使用C++编写。v8 被设计用于提高网页浏览器内部 JavaScript 代码执行的性能。为了提高性能,v8 将会把 JS 代码转换为更高效的机器码,而非传统的使用解释器执行。因此 v8 引入了 JIT (Just-In-Time) 机制,该机制将会在运行时动态编译 JS 代码为机器码,以提高运行速度。
TurboFan是 v8 的优化编译器之一,它使用了 sea of nodes 这个编译器概念。

Read more »

环境搭建

使用如下方法编译

1
2
3
4
5
6
7
8
9
10
11
git reset --hard 0ec93e047216979431bd6f147ab5956bb729afa2
gclient sync

# 加入patch,编译release版本的d8
git apply --ignore-space-change --ignore-whitespace ../diff.patch
tools/dev/v8gen.py x64.release
ninja -C out.gn/x64.release d8
#该题其实不能使用debug版本的v8,只能使用release版本的v8
# 编译debug版本的d8
tools/dev/v8gen.py x64.debug
ninja -C out.gn/x64.debug d8
Read more »

mojo

mojo术语

message pipe是一对endpoints,对应通信的两端,每个endpoint保存一个传入消息队列,并且在一端写入消息可以有效地传送到另外一端,因此message pipe是双向的。
一个mojom文件描述一组interfaces,其代表的是强类型的消息集合。
给定一个mojom接口和一条message pipe,可以将其中指定为Remote,用来发送该接口描述的信息,另一端指定为Recevier,用来接收接口的消息。
Receiver端必须和mojom接口的具体实现(implementation)相绑定,从而将收到的消息分发给对应的接口实现函数。

Read more »

Mojo

Mojo是一个跨平台的IPC框架,诞生于chromium,用来实现chromium进程内或进程间通信。目前也被用于Chromeos。

Read more »
0%