- 博客(8)
- 收藏
- 关注
原创 将二进制原码转换为补码的图灵机
11001001* 经过 (1 2 4 5 6 6 5 6 6 5 7 8 15 15 14 15 15 14 15 16) 变为 *10110111**00101110* 经过 (1 2 3) 变为 *00101110*运行以下程序,initial state值为IsNegative。输入的二进制数据按从左到右类似于。读取,第一位为符号位。
2024-05-25 15:04:09
642
原创 CSAPP CacheLab PartA
Modify operation指的是一次data load+一次data store,最开始是在handle_operation中用if判断如果为Modify operation则进行额外的操作,这样写的代码可读性很差,后来将操作封装成了load_data和store_data两个函数,在simulate_cache中,通过operation调用对应的接口,Modify则是调用一次load_data后再调用一次store_data。这三个问题下来,代码结构其实是有点乱了的,不过也是懒得再重构了(…
2024-05-25 09:23:59
361
原创 CSAPP AttackLab
Level 2中有栈随机化处理,并且禁止执行栈上代码,因此无法使用code injection的方法,而是利用其提供的一系列gadget中的指令字节来实现攻击,要求和。,由于栈随机化,不能直接指定存储在栈上的字符指针,指针值要由栈指针得到,则构造的栈应该有以下结构。需要传入cookie字符串的指针,因此得在栈上存放cookie字符串,先将cookie。有八字节需要存储返回地址,因此cooike字符串指针地址为。,因此得将该字符串放到上一个函数栈帧,即。,即注入的汇编代码起始地址为。函数的返回地址,执行。
2024-05-24 07:19:30
503
原创 如何写出好的代码注释
代码注释(以下简称注释)是嵌入在代码中的解释性文本,它们一般不会被编译或执行,但可以提供给开发者一些有用的信息。不同编程语言的注释格式可能不同,本文使用C语言来介绍。// 这是一段注释/* 这也是一段注释 */实际项目中的注释根据其形式和作用的不同,大体可以分为以下四类。
2024-05-23 11:01:33
5564
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人