更新下本实验室的两款开源工具箱的进展: 1 - AR lab 效果演示 ? 我一直有关注AR领域的创新,尤其是多屏联动、实时互动、图像分割算法等技术。
CSAPP学习过程 这篇文章主要记录CSAPP书和lab的学习过程,具体某个lab的踩坑过程会分别附单独链接,本文主要是记录漫长的学习过程以及方便想学但是尚未开始学习的同学参考,以下是github的lab...image.png Todo Bilibili翻译课程 lecture 1-4 搭建实验环境 Data lab Bilibili翻译课程 lecture 5-9 Bomb lab Attack...lab 前置材料 一本CSAPP CSAPP的bilibili翻译课程 实验材料 参考经验贴1 参考经验贴2 我想做些什么 开设这个仓库是想记录我做CSAPP的lab的过程,也顺便将踩坑过程分享,帮助后人少走弯路...学习过程(以Lab为单位总结) 简单查阅别的学习经验后,大多数人的分享都说看书再多遍也不如做lab学到的多,lab是课程的精髓,我已经粗略的学过编译原理,计算机组成原理和操作系统,所以我会比较快速的过一遍网课然后开始...lab,目标3个月完成大多数的lab(也许有一些实在不感兴趣的lab会跳过) Timeline 2022-03-30 完成Datalab 2022-03-28 完成实验环境搭建 2022-03-27 完成
自行填写,懒得找了,可以参考kiprey 练习一 理解内核级信号量的实现和基于内核级信号量的哲学家就餐问题(不需要编码) 完成练习0后,建议大家比较一下(可用meld等文件diff比较软件)个人完成的lab6...和练习0完成后的刚修改的lab7之间的区别,分析了解lab7采用信号量的执行过程。...如果所显示的应用程序检测都输出ok,则基本正确。如果只是某程序过不去,比如matrix.c,则可执行 1make run-matrix 命令来单独调试它。大致执行结果可看附录。...//看注释知道要做什么 void cond_signal (condvar_t *cvp) { //LAB7 EXERCISE1: YOUR CODE cprintf("cond_signal...Notice: mp is mutex semaphore for monitor's procedures void cond_wait (condvar_t *cvp) { //LAB7 EXERCISE1
实验整体分析 实验是基于Linux x86-64的,其中bomb文件是一个64位的可执行程序,bomb.c文件是一个C语言程序,其中包含了main函数以及其他许多函数。...(不会用gdb的请看我的实验指南文件,里面有gdb命令文档) Phase_1分析 我们使用gdb bomb命令进入程序,进入后在phase_1的函数入口处打上断点 命令为:b phase_1,进入后输入...r是程序运行会出现如下语句:Welcome to my fiendish little bomb....0x0 输入的值会被递归判断,最后要能够等于(edx+esi)/2 edx与esi的值已知分别为:0xe、0x0,均值为0x7 得到这些信息后,我们回到对Phase_4的分析,当func4函数结束后,程序回到了...对密码的分析 请看我们前面对于+41处的分析,我们会发现,我们输入的值并没有直接与正确答案比较,而是转换得到了一个新的字符串,也就是说,当我们输入了flyers后,程序得到的并不是这个字符串,而是转换后的字符串
首先先介绍一款工具,个人觉得老牛逼——Netdiscover,之前我询问一哥们arp扫描工具时他推荐的。
LAB_3 NAT 一.NAT概述... 1 二.NAT综合实验... 3 三.TCP/UDP端口NAT映射... 5 四.利用地址转换实现负载均衡... 6 一.NAT概述 ·NAT核心思想:将私网地址转换成公网地址....节省了公网IP地址 2.能够处理编址方案重叠的情况 3.网络发生改变时不需要重新编址 4.隐藏了真正的IP地址 ·缺点: 1.NAT引起数据交互的延迟 2.导致无法进行端到端的IP跟踪 3.某些应用程序不支持
在这里我使用的Linux环境是Windows SubSystem for Linux(WSL)的Ubuntu16,由于WSL只支持64位程序,所以需要一些骚操作才能成功运行这个DataLab的检查,这里给一个...由于左移右移各自是给小数乘二或除二,我们直接把小数看作是转换好的整数,那么左移右移的次数自然就是程序里那么写了。 移位部分可能比较难理解,多看几次,自己多画几个情况会比较好想。
key chain ccna key 1 key-string cisco call rsvp-sync !
其他内容建议看Kiprey ucore_lab2 练习0 合并代码,直接meld然后copy to right就行,lab1修改的文件有: kern/debug/kdebug.c kern/trap/trap.c...kern/init/init.c 可以看到lab2与lab1有很多文件不同,记得只能修改上述三个文件。...仔细看一下他的实现,不难发现,程序在分配完空间后仍旧按照原先的顺序排列链表中分配剩余的内存元素,因此我们要更改代码为: if (page !...然后lab2提了一个问题,如何使虚拟地址与物理地址相等? 显然,由于我们现在的ucore是通过虚拟地址到物理地址的映射实现的内存管理,如果要取消该映射,我们应该反向查找lab2中的映射方式。...程序认为这种读写形式是dangerous的,禁止了我们的读写。而这个raw实际上是原始的一种磁盘镜像格式,是一种稀疏文件。
,读取加载程序,用加载程序识别文件系统,识别文件系统之后就可以读取os的内核代码,在把控制权转给os: bios和uefi的区别: 中断(来自硬件)、异常(非法指令等)、系统调用(应用程序主动向os...这是在程序中使用请求系统服务的系统调用而引发的事件。...在os_kernel_lab-master/labcodes/lab1/Makefile中,可以找到要分析的makefile。 makefile的结构如下: target....../labcodes/lab1/bin/ucore.img -s -S -d in_asm -D q.log 打开ucore,打开gdb,输入target remote localhost:1234 ,...*((uint32_t *)tf - 1) = (uint32_t)&switchk2u; } //实质只是通过改变段来改变权级 break; 以及: static void lab1
攻击者通过精心构造的恶意程序,利用处理器的分支预测错误来访问其本应该受限的内存区域。攻击程序会在正常情况下无法执行的分支路径上放置一些恶意代码,然后通过观察处理器的缓存访问时间来推断出受限内存的内容。...为了在程序中保持一致,我们使用array[k*4096 + DELTA],其中DELTA被定义为常数1024。...这样可以最大程度地利用处理器的执行资源,提高指令的并行度,加快程序的执行速度。 需要注意的是,乱序执行并不改变程序的语义,即程序的执行结果与顺序执行相同。...请分别运行带有和不带有这行代码的程序,并描述你的观察结果。...3、代码中的第➁行使程序休眠了10微秒。程序休眠的时间长短会影响攻击的成功率。请尝试几个其他的值,并描述你的观察结果。
strings_not_equal 函数后进行判断,接着进行反汇编: disassemble strings_not_equal 查看代码后,发现这个函数是判断两个字符串是否相同,在这个函数的位置打上断点,并运行程序
环境准备 从官方git仓库拉取分支 git clone git://g.csail.mit.edu/6.824-golabs-2020 6.824lab 笔者码云仓库 https://gitee.com...实验要求 MapReduce Lab 要求我们实现一个和MapReduce论文类似的机制,也就是数单词个数Word Count。在正式开始写分布式代码之前,我们先理解一下任务和已有的代码。...在进入Go程序之后,动态库由代码主动加载进来。在src/main目录下命名为mr*.go的几个代码文件中,都有loadPlugin函数。如果你使用Goland作为主要IDE,编辑器会提示重复函数声明。.../mrapps/wc.go mrworker.go 启动配置 mrcoordinator.go 启动配置 代码实现 代码实现部分只会介绍核心代码,其余代码大家可拉取笔者仓库,切换到lab1分支自行阅读
这东西不能直接拿lab4做过的用,实在是败笔。...不嫌麻烦的可以参考kiprey 练习1:加载应用程序并执行(需要编码) do_execv函数调用load_icode(位于kern/process/proc.c中)来加载并解析一个处于内存中的ELF执行文件格式的应用程序...,建立相应的用户内存空间来放置应用程序的代码段、数据段等,且要设置好proc_struct结构中的成员变量trapframe中的内容,确保在执行此进程后,能够从应用程序设定的起始执行地址开始执行。...请在实验报告中描述当创建一个用户态进程并加载了应用程序后,CPU是如何让这个应用程序最终在用户态执行起来的。...如果所显示的应用程序检测都输出ok,则基本正确。(使用的是qemu-1.0.1) 注意,前面如果完全正确,参考我上周写的lab4练习二最后一部分更改一下语句就可以拿到136分。
使用实例:http://www.au92.com/archives/labjs.html 解释说明:http://miyuki.42code.com/2012/...
= NULL) { //LAB4:EXERCISE1 YOUR CODE /* * below fields in proc_struct need to be initialized
C 实现 SYN Flood 使用原始套接字来实现伪造IP报文实现一个SYN-Flood攻击的程序。 定义TCP报头结构和伪报头结构。...当IP_HDRINCL选项的值为非零时,表示应用程序将负责手动构建完整的IP头部,并将其附加到发送的数据中。这对于某些特定的网络编程需求非常有用,例如实现自定义的网络协议或与特定网络设备进行直接通信。...这样,应用程序就可以自行构建并添加完整的IP头部。
Dependency Injection Lab: Shows how to register and consume services in a decoupled way....Bootstrapper Lab: Shows how to customize the bootstrapping of your application....UIComposition Lab: Shows how to compose the UI of you application from several decoupled views....Communication Lab: Shows how to communicate between modules in a decoupled way....Navigation Lab: Explains the view-based navigation approach supported by the Prism API.
和练习0完成后的刚修改的lab6之间的区别,分析了解lab6采用RR调度算法后的执行过程。...如果所显示的应用程序检测都输出ok,则基本正确。如果只是priority.c过不去,可执行 make run-priority 命令来单独调试它。大致执行结果可看附录。..._run_pool); struct proc_struct *q = le2proc(b, lab6_run_pool); int32_t c = p->lab6_stride - q...* min_proc = le2proc(rq->lab6_run_pool, lab6_run_pool); if (min_proc->lab6_priority == 0) { min_proc...->lab6_stride += NICE_0_LOAD; } else if (min_proc->lab6_priority > NICE_0_LOAD) { min_proc->lab6_stride
image.png
领取专属 10元无门槛券
手把手带您无忧上云