字节码安全性断言:Jinja字节码与断言逻辑
1. 引言
在Java相关的逻辑系统中,以往的逻辑大多是为Java源代码设计的,而非其字节码。本文引入了一种带有JVM特定构造的一阶表达式语言,该语言足以表达Jinja指令的最弱前置条件以及针对算术溢出的安全策略。
2. Jinja字节码
Jinja字节码是Java字节码的精简版本,虽仅有16条指令,但涵盖了大多数面向对象的特性,如对象创建、继承、动态方法调用和异常处理。
2.1 指令类型
以下是Jinja字节码的指令类型定义:
datatype instr =
Load nat -- load from register
| Store nat -- store into register
| Push val -- push a constant
| New cname -- create object on heap
| Getfield vname cname -- fetch field from object
| Putfield vname cname -- set field in object
| Checkcast cname -- check if object is of class cname
| Invoke mname nat -- invoke instance method with nat parameters
| Return -- return from method
| Pop -- remove top ele
超级会员免费看
订阅专栏 解锁全文
922

被折叠的 条评论
为什么被折叠?



