1 Star 0 Fork 1

leminis / JIT_Compiler

forked from shinian / JIT_Compiler 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
vm
Loading...
README
WTFPL

软件安全原理第二次大作业:JIT编译器

简介

使用自己设计的指令集(homework IR)和JIT编译器复现Chrome V8 JIT 漏洞 CVE-2021-21220.
漏洞POC:

.begin
@main
var foo
var bar
.rt
asgn foo, :i32, 0x80000000
cast foo, :i64
li $a0, 4 # printint
ld $a1, foo
addi $a1, $a1, 1
ecall # runtime: -2147483647
.jit
asgn bar, :i32, 0x80000000
cast bar, :i64
li $a0, 4 # printint
ld $a1, bar
addi $a1, $a1, 1
ecall # jit: 2147483649
ret
.end

目录结构

  • 工程计划.md : 工程的各个阶段和计划时间
  • homework_IR.txt : 设计的指令集, homework IR
  • alloc.c : 内存分配器
  • defs.h : 全局函数
  • interp.c : 解释器
  • jit.txt : homework IR到x86-64的转换方式
  • jitcc.c : JIT编译器
  • jitexec.S : TB块入口
  • lexer.c : 词法分析器
  • main.c : 主函数
  • params.h : 全局参数
  • parser.c : 语义分析器
  • preproc.c : 预处理器
  • runtime.c : 运行时环境
  • x86-64.txt : x86-64平台的一些小tips
  • types.h : 基本类型定义
  • x86-64def.h : x86-64平台相关定义
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

软件安全原理第二个大作业.使用自己设计的指令集和jit编译器复现 v8 jit漏洞. 展开 收起
C
WTFPL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/leminis/jit-compiler.git
git@gitee.com:leminis/jit-compiler.git
leminis
jit-compiler
JIT_Compiler
master

搜索帮助