《Chrome V8源码》32.字节码和 Compiler Pipeline 的细节
1 摘要 本篇文章是 Builtin 专题的第七篇。上篇文章讲解了 Builtin::kInterpreterEntryTrampoline 源码,本篇文章将介绍 Builin 的编译过程,在此过程中可以看到 Bytecode...
Read More1 摘要 本篇文章是 Builtin 专题的第七篇。上篇文章讲解了 Builtin::kInterpreterEntryTrampoline 源码,本篇文章将介绍 Builin 的编译过程,在此过程中可以看到 Bytecode...
Read More1 摘要 本篇文章是Builtin专题的第六篇,讲解Ignition中的Builtin::kInterpreterEntryTrampoline源码。包括InterpreterEntryTrampoline、Runtime_InterpreterTraceByteco...
Read More这是A guided tour through Chrome's javascript compiler上的第三个漏洞,下面是对应的commit。环境配置用v8-action(星阑科技开源)编译漏洞分析看下diff简单看来就是之前返回...
Read More1 摘要 本篇文章是Builtin专题的第五篇,讲解Ignition解释Bytecode之前需要做的准备工作,这些工作由一系列Builtin共同完成,工作内容包括:构建堆栈、压入参数等。本文通过分...
Read More1 摘要 本篇文章是Builtin专题的第五篇,详细分析Builtin的调用过程。在Bytecode handler中使用CallBuiltin()调用Builtin是最常见的情况,本文将详解CallBuiltin()源码和相...
Read More1 摘要 本篇文章是Builtin专题的第四篇,主要分析substring的源码。substring有两种实现方法,一种采用CSA实现,另一种采用Runtime实现。本文讲解CSA实现的substring方法以及...
Read More1 摘要 本篇文章是Builtin专题的第三篇,讲解Bytecode的执行、数据结构以及Dispatch。dispatchtable是连接Bytecode之间的纽带,它记录了每条Bytecode handler的地址,Ignitio...
Read More1 摘要 本篇文章是Builtin专题的第二篇,讲解Bytecode Handler的初始化过程以及相关数据结构。Bytecode handler是采用CAS方式编写的Builtin,它实现了Bytecode的功能,每一条...
Read More这是A guided tour through Chrome's javascript compiler上的第二个漏洞,下面是对应的commit环境搭建用v8-actionenv: PATCH_FLAG: true COMMIT: d2da19c78005c75e0f658...
Read More前言 接下来的几篇文章对Builtin做专题讲解。Builtin实现了V8中大量的核心功能,可见它的重要性。但大多数的Builtin采用CAS和TQ实现,CAS和TQ与汇编类似,这给我们阅读源码带...
Read More1 介绍 SharedFunction是一个包含BytecodeArray和stub_entry等信息的数据集合,该集合是V8编译器的输出结果,由SharedFunction类管理。 本文的组织方式:SharedFunction的内...
Read More1 摘要 本篇是编译链专题的第四篇,梳理V8编译期间涉及到的数据结构和自动机,并解释其作用。 2 Parse_Info 1. // A container for the inputs, configuration options...
Read More1 摘要 本篇是编译链专题的第三篇,详细讲解AST到字节码的转换过程。本文组织方式:字节码生成(章节2);延期常量池(章节3);编译收尾工作(章节4)。 2.字节码生成 把AST树翻译成字...
Read More1 摘要 本篇是编译链专题的第二篇,详细解释Javascript源码到Token,再到抽象语法树(AST)的转换过程。本文组织方式,词法分析器与Token(章节2);抽象语法树(章节3)。 2 词法分析器...
Read More1 摘要 第三、四、五三篇文章对V8编译流程的主要功能做了介绍,在基础之上,接下来的几篇文章是编译专题,讲解V8编译链,从读取Javascript源码文件开始,到字节码的生成,并结合前...
Read More1 摘要 Isolate是V8虚拟机的实例,它负责为Javascript源码创建执行环境,管理堆栈、编译、执行、context等所有组件。编译缓存(CompilationCache),是Isolate的核心组件,也是Isol...
Read More前言 跟随P4nda大佬的博客:http://p4nda.top/2019/06/11/%C2%96CVE-2018-17463/#Reference 复现了CVE-2018-17463,在一些大佬懒得讲的地方加了一些理解和解释,比较新手向...
Read More这是在A guided tour through Chrome's javascript compiler上的几个cve之一,为了学习v8的相关研究,将这三者一个一个攻破,下面是对应的commit。环境搭建用v8 action(星阑科技...
Read More前言 我认为,汇编分析无疑是调试v8的终级武器,当用C++调试无法获取更详细的信息时,汇编分析是最好的帮手,但如果不研究v8字节码或挖漏洞等,此文也许没必要看。本文与第十篇文...
Read More前言 本系列的前十三篇文章,讲解了V8执行Javascript时最基础的工作流程和原理,包括词法分析、语法分析、字节码生成、Builtins方法、ignition执行单元,等等,达到了从零做起,...
Read More前言 本系列的前十三篇文章,讲解了V8执行Javascript时最基础的工作流程和原理,包括词法分析、语法分析、字节码生成、Builtins方法、ignition执行单元,等等,达到了从零做起,...
Read More前言 本系列的前十三篇文,讲解了V8执行Javascript时最基础的工作流程和原理,包括词法分析、语法分析、字节码生成、Builtins方法、ignition执行单元,等等,达到了从零做起,入...
Read More漏洞信息 分支:bdaa7d66a37adcc1f1d81c9b0f834327a74ffe07 成因:JIT优化过程中对操作的副作用推断错误导致可能的类型混淆 漏洞分析 看diff文件,diff文件很短,就加了一...
Read More这是一个关于v8的turbofan的漏洞,对于这种类型的漏洞一般poc都较难构造,这是笔者着手分析的第一个turbofan类型的漏洞,此时对turbofan只有浅显的了解,turbofan的学习没有很全面...
Read More介绍v8的oob很适合作为入门的漏洞,本漏洞是由于js中的内置函数map,在c++中新增使用类汇编的方式实现map(CodeStubAssembler),这一改动所产生的漏洞关于CodeStubAssembler的更多...
Read More