《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 More这是A guided tour through Chrome’s javascript compiler上的第二个漏洞,下面是对应的commit。 环境搭建 用v8-action(星阑科技开源) env: PATCH_FLAG: true C...
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这是在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背景近日,奇安信威胁情报中心红雨滴团队结合红雨滴云沙箱产出的相关IOC情报,并配合内部蜜罐系统,在全球范围内,首个监测到多例组合使用Chrome浏览器高危漏洞及Windows内核权限提...
Read More前言 本系列的前十三篇文,讲解了V8执行Javascript时最基础的工作流程和原理,包括词法分析、语法分析、字节码生成、Builtins方法、ignition执行单元,等等,达到了从零做起,入...
Read More一切的起点在4月13日,一位大佬放出来一个chrome的0day而在最新版的v8上,该poc无法触发漏洞,故可能是chrome的最新版尚未更新的漏洞,而当天chrome也释放了最新版,从致谢中可以看到...
Read More这是一个关于v8的turbofan的漏洞,对于这种类型的漏洞一般poc都较难构造,这是笔者着手分析的第一个turbofan类型的漏洞,此时对turbofan只有浅显的了解,turbofan的学习没有很全面...
Read More介绍v8的oob很适合作为入门的漏洞,本漏洞是由于js中的内置函数map,在c++中新增使用类汇编的方式实现map(CodeStubAssembler),这一改动所产生的漏洞关于CodeStubAssembler的更多...
Read More漏洞简介Google发布公告,旧版本的 chrome 浏览器的 FreeType字体库中存在堆溢出,被利用可能导致 RCE(远程代码执行)。安全专家建议用户尽快升级到86.0.4240.111 之后的版本,以解...
Read More最近,卡巴斯基研究团队发现了谷歌Chrome浏览器的一个新的未知漏洞,并立即向谷歌Chrome安全团队报告了这一情况。谷歌确认存在零日漏洞,并分配编号CVE-2019-13720。谷歌发布...
Read More