严重 | Google Chrome V8 类型混淆漏洞正被积极利用
0x01漏洞状态漏洞细节漏洞POC漏洞EXP在野利用否未知未知存在0x02漏洞描述Google Chrome浏览器是一个由 Google(谷歌) 公司开发的网页浏览器。V8是一个由Google开发的开源Jav...
Read More0x01漏洞状态漏洞细节漏洞POC漏洞EXP在野利用否未知未知存在0x02漏洞描述Google Chrome浏览器是一个由 Google(谷歌) 公司开发的网页浏览器。V8是一个由Google开发的开源Jav...
Read More1 介绍 substring、getDate、catch 等是常用的 JavaScript API。接下来的几篇文章将从整体上对 JavaScript API 的设计思想、源码和关键函数进行讲解,并能通过例子来分析...
Read More1 介绍 Runtime 是一系列采用 C++ 语言编写的功能方法,它实现了大量 JavaScript 运行期间需要的 native 功能。接下来几篇文章将介绍一些 Runtime 方法。本文分析 Runtim...
Read More1 介绍 接上一篇文章继续说,本文讲解 Turbofan 的工作流程、梳理 PrepareJob、ExecuteJob 和 FinalizeJob 的主要功能以及重要数据结构。 2 Turbofan 工作流程 前文提...
Read More前言 《Chrome V8 Bug》系列文章的目的是解释漏洞的产生原因,并向你展示这些漏洞如何影响 V8 的正确性。其他的漏洞文章大多从安全研究的角度分析,讲述如何设计与使用 PoC。...
Read More1 介绍 InterpreterEntryTrampoline 属于 V8 ignition,负责为 JSFunction 函数构建堆栈并执行该函数,也负责启动优化编译功能 Runtime_CompileOptimized_Concurrent。之前...
Read More1 摘要 JavaScript是动态类型语言,数据类型具有不确定性。V8是用C++编写的,C++是强类型语言,要求类型确定。类型确定的C++是如何表达类型不确定的JS呢?解决方法是:操作JS数据...
Read More1 摘要 Javascript对象是属性和一些成员值的集合。通过“.”符号来引用属性值。字符串(string)不是对象,为什么它会有属性呢?因为引用字符串的属性时,V8会将字符串转换成对象...
Read More1 摘要 编译Javascript源码得到的字节码流(Bytecode Array)不能直接执行,绑定了入口(Entry)和上下文(Context)的字节码流才能被解释器(Ignition)执行,绑定了“入口+上下文”的字码...
Read More1 摘要 Dispatch(调度)负责字节码的调度,每条字节码执行完后由Dispatch负责调度下一条字节码执行,相当于寄存器EIP++、执行下一条字节码。Dispatch是V8维护的全局指令调度机...
Read More1 摘要 Execution是V8执行Javascript字节码的运行单元,它负责启动Ignition执行字节码。前几篇文章对Javascript的执行过程和理论知识做过介绍。本文重在实践,注重梳理Exec...
Read More题目介绍 来自*CTF的v8 pwn题,漏洞点比较简单,利用起来也不是很复杂,比较适合作为v8的入门 题目环境搭建 v8是由google开发的java script引擎。由于特殊条件的限制,我们...
Read More1 摘要 上一篇文章中,Builtin作为先导知识,我们做了宏观概括和介绍。Builtin(Built-in function)是编译好的内置代码块(chunk),存储在snapshot_blob.bin文件中,V8启动时以反序列...
Read More1 摘要 本次是第八篇,讲解v8解释器Ignition的工作流程。Ignition是基于寄存器的解释器,本过通过分析Ignition重要源码和核心数据结构、讲解bytecode的加载和执行过程,详细...
Read More1 摘要 本文是第七篇。讲解v8处理函数调用时的底层架构。通过分析运行时函数堆栈,重点对“实际参数少于声明参数”和“实际参数多于声明参数”两种函数调用的stack frame...
Read More1.摘要 本次是第六篇,讲解V8中抽象语法树(abstract syntax code,AST)到字节码(bytecode)的翻译过程。AST是源代码的抽象语法结构的树状表示,是语法分析的输出结果,bytecode...
Read More1.摘要 本次是第五篇,剖析V8语法分析(parser)的源码和工作流程,讲解V8语法分析的核心源码、主要工作流程以及重要数据结构。本文将沿用第四篇文章的“测试样例代码”。 ...
Read More本篇内容 本次是第四篇,以“测试样例代码”为V8的输入,跟随样例代码在词法分析(scanner)阶段的处理过程,剖析V8词法分析的源码实现。本文通过讲解样例代码中前两个token字...
Read More本篇内容 本次是第三篇,讲解V8中词法分析(scanner)的实现,这中间涉及到几个重要的数据结构和一些相关的编译知识,本文也尽量全面讲解相关的编译知识,争取让读者有一个全面的认...
Read MoreV8是chrome核心组件,重要程度不用多言。本系列文章,讲解V8源码,力求做到全面覆盖知识点、有理论高度,做到细致讲解代码、有实践依据。 本篇内容 本次是第二篇,主要内容是...
Read More为什么写这个主题 Chrome的重要地位不用赘述,V8不仅是chrome的核心组件,还是node.js等众多软件的核心组件,V8的重要程度亦不用多言。V8涉及的技术十分广泛,包括了操作系统、...
Read More1 介绍 Runtime 是一系列采用 C++ 语言编写的功能方法,它实现了大量 JavaScript 运行期间需要的 native 功能。接下来几篇文章将介绍一些 Runtime 方法。本文分析 Runtim...
Read More1 介绍 Runtime 是一系列采用 C++ 语言编写的功能方法,它实现了大量 JavaScript 运行期间需要的 native 功能,例如 String add、String split。接下来这几篇文章将介绍一...
Read More1 介绍 字符串是 JavaScript 中的重要数据类型,其重要性不仅体现在字符串是应用最多最广泛的数据类型,更体现在V8中使用了大量的技术手段来修饰和优化字符串的操作。接下...
Read More1 介绍 字符串是 JavaScript 中的重要数据类型,其重要性不仅体现在字符串是应用最多最广泛的数据类型,更体现在V8中使用了大量的技术手段来修饰和优化字符串的操作。接下...
Read More1 介绍 字符串是 JavaScript 中的重要数据类型,其重要性不仅体现在字符串是应用最多最广泛的数据类型,更体现在V8中使用了大量的技术手段来修饰和优化字符串的操作。接下...
Read More1 介绍 字符串是 JavaScript 中的重要数据类型,其重要性不仅体现在字符串是应用最多最广泛的数据类型,更体现在V8中使用了大量的技术手段来修饰和优化字符串的操作。接下...
Read More1 介绍 本文先讲解 String.prototype.CharAt 源码以及相关数据结构,再通过测试用例演示 String.prototype.CharAt 的调用、加载和执行过程。 注意 (1)Sea of Nodes 是本文...
Read More1 摘要 Turbofan 是基于 Sea of Nodes 理论的优化编译,它是 V8 Compiler Pipeline 三个节点中的最后一个节点,此外还有 Ingintion 和 Sparkplug。 Turbofan 使 JavaScript...
Read More1 摘要 本篇文章是 Builtin 专题的第八篇。本篇文章将跟踪 Bytecode 的执行过程,在该过程中讲解 Lazy Compile 的启动方式、工作流程以及重要的数据结构,同时也会介绍与 L...
Read More