rCore - Chapter02
课后练习 作业1 见练习答案 作业2 扩展内核,实现新系统调用get_taskinfo,能显示当前task的id和task name;实现一个裸机应用程序B,能访问get_taskinfo系统调用 先实现sys_get_taskinfo函数: pub fn sys_get_taskinfo() -> isize { println!("[kernel] get_...
课后练习 作业1 见练习答案 作业2 扩展内核,实现新系统调用get_taskinfo,能显示当前task的id和task name;实现一个裸机应用程序B,能访问get_taskinfo系统调用 先实现sys_get_taskinfo函数: pub fn sys_get_taskinfo() -> isize { println!("[kernel] get_...
本文档不会详细写出和解释每一个步骤、每一个指令、每一条汇编,如有疑问请自行查阅CSAPP课本、attack lab官方handout以及Google Phase 1 这一关的目标是通过输入的字符串进行注入攻击,使getbuf函数执行完之后跳转到touch1函数,这就需要我们去想办法得到touch1函数的地址以及getbuf函数执行完后返回到的地址。可以使用readelf和objdump...
课后练习 实现一个linux应用程序A,显示当前目录下的文件名。 use std::fs; use std::io; fn main() -> io::Result<()> { let current_dir = std::env::current_dir()?; let entries = fs::read_dir(current_dir)?; ...
分析 在污点分析中,我们需要处理一种特殊的对象:污点对象。这种对象有什么特性呢? 污点对象的上下文为空上下文 污点对象只会在method call中产生 污点对象没有方法,不会引发method call 污点对象的传播方式在普通对象的基础上新增了三种:Base-to-result、Arg-to-base和Arg-to-result 根据上述性质,我们可以设计出污点分...
分析 这次的实验非常有意思,实验文档并没有告诉我们该用什么算法、什么函数、什么数据结构去实现Alias-Aware的过程间常量传播,这一切都需要我们自己来设计。我想先从我们需要维护什么关系来入手,从设计数据结构开始,去逐步解决这一难题。 我们需要维护什么关系 这次新增的分析类型大体可分为两类:字段和数组,其中字段又可以分为实例字段和静态字段。由于静态字段可以看作没有别名的实例字段,...
本答案仅供参考,每份bomblab的数据是独一无二的,但思路大致相同 Tips !!!每次gdb中运行run命令之前一定要在explode_bomb函数前打上断点 !!! 在通过几个关卡之后可以把答案存在ans.txt中并用gdb的设置参数功能省去每次输入的麻烦: (gdb) set args ans.txt gdb不需要重新运行...
1. BitXor 函数实现 int bitXor(int x, int y) { return ~(~x & ~y) & ~(x & y); } 函数分析 通过真值表可写出按位异或运算函数:~((~x & ~y) | (x & y)),通过德摩根定律将或运算改为与运算即可。 2. copyLSB 函数实现 int copyLSB(...
分析 算法实现与非上下文敏感的指针分析一致,只需要在创建新对象和进行函数调用时用ContextSelector创建新的上下文即可。ContextSelector的实现也非常简单,对链表进行操作即可。 踩过的坑 堆上下文的层数为\(k-1\),其中\(k\)是ContextSelector的层数 不需要创建新上下文的时候就不要使用ContextSelector,直接用已有指针的上下文
分析 在本次实验中,我们要实现非上下文敏感指针分析,具体来说要实现五个API,分别为:addReachable、addPFGEdge、analysis、propagate和processCall。这五个函数的实现在PPT中均有伪代码,PPT中出现过的部分边不多加赘述。需要分析的是新增的三个类型:静态字段、数组索引和静态方法 静态字段 静态字段的规则很简单,由于一个静态字段T.f是唯一的...
分析 CHABuilder 三个算法在PPT中都有,一步一步实现即可 Edge Transfer 在这一部分,有一些比较有意思的点。首先原本的transferNode函数被分为了transferCallNode和transferNonCallNode,这是为什么呢。在Lab2的Intraprocedual Analysis中,我们将函数调用的返回结果默认为NAC。而在当前的Lab,我...