- 博客(124)
- 资源 (4)
- 收藏
- 关注
原创 【区块链】Solidity学习
开发工具:Remix我们将使用Remix运行Solidity合约。Remix是以太坊官方推荐的智能合约集成开发环境(IDE),适合新手,可以在浏览器中快速开发和部署合约,无需在本地安装任何程序。在Remix中,左侧菜单有按钮,对应文件(编写代码)、编译(运行代码)和部署(将合约部署到链上)。点击“创建新文件”()按钮,即可创建一个空白的Solidity合约。将文件命名为HelloWeb3.sol第 1 行是注释,说明代码所使用的软件许可(license),这里使用的是 MIT 许可。
2025-03-30 13:16:52
1127
原创 Hadoop批量计算实验
BOOTPROTO=static // 这里改一下,默认的是dhcp,改成static表示静态的意思。(看到这里就是第4步中自己设置的IP和主机名,加到hosts文件之后。//IP地址自己写,只要和网关处于同一网段就行,如192.168.157.xxx。②将 ssh-keygen 生成的密钥,分别复制到其他三台机器,以下以 c0 为例。ONBOOT=yes // 这里改成yes,表示网卡设备开机启动。⑩选择CD/DVD ,使用ISO映像文件,选择ISO文件位置。⑧选择创建好的虚拟机,点击编辑虚拟机。
2024-12-01 23:48:03
995
原创 【计算机网络体系结构】计算机网络体系结构实验-数据包协议分析实现实验
(1)如何开展实验,学习了哪些相关课程和知识。本次实验是在Winpcap库的基础上对网络数据进行捕获,不需要编写复杂的设备驱动程序和代码就可以实现抓包,使得其编写过程比较简便、有效率。从查阅资料,到统和整理知识,思考所遇到问题的解决方案,再到程序的实现,是一个集中学习、灵活运用所学知识的过程。我这次的实验是在Dev-C++上开展的,在不断的遇到问题与解决的过程中,对Dev-C++的机制的掌握逐步加深,对其报错行为也能较快找到问题点。
2024-09-08 11:30:34
1140
原创 【python】学习笔记05-数据容器
思考一个问题:如果我想要在程序中,记录5名学生的信息,如姓名。如何做呢?每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。数据容器根据特点的不同,如:•是否支持重复元素•是否可以修改•是否有序,等分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)它们各有特点,但都满足可容纳多个元素的特性。
2024-08-11 11:57:37
326
原创 【Spring】Sping笔记01
官网:https://spring.io/projects/spring-framework#learnSpring 是一个轻量级的 **IoC / DI和 AOP 容器**的开源框架,致力于构建轻量级的 JavaEE 应用,**简化应用开发**,本身涵盖了传统应用开发,还拓展到移动端,大数据等领域。什么是容器(Container):从程序设计角度看就是**装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期**。
2024-08-10 17:11:39
885
原创 【论文】NCScope: Hardware-Assisted Analyzer for Native Code in Android Apps
我们利用ARM平台的硬件特性ETM和Android系统的内核组件eBPF收集目标应用程序的真实执行轨迹和相关内存数据,并根据收集到的数据设计新的方法来审查本机代码。,是指为特定类型的处理器(如x86、ARM等)直接编写的,可以直接被该处理器的硬件执行的机器语言代码或接近机器语言的汇编代码。然而,在实际应用中,同时实现高保真和低开销往往是一个挑战。尽管已经设计了各种方法来分析应用程序使用的本机代码,但由于它们在 获取和分析 高保真执行跟踪和低开销内存数据 方面的局限性,它们通常会生成不完整和有偏差的结果。
2024-08-07 22:16:58
1014
原创 【深度学习】PyTorch深度学习笔记03-梯度下降算法
由上节课的结果可以得出,假设一个参数 w 搜索100个结果,那么两个参数 w1,w2 的搜索空间就变成100的平方了,10个参数就变成100的十次方了。因此穷举法,找到最优点,很不合理。
2024-07-11 11:08:45
1183
原创 【深度学习】PyTorch深度学习笔记01-Overview
深度学习与传统学习的区别:传统学习中特征学习(Features)和学习器(Mapping from features)是分开训练的;但是在深度学习中,所有的训练都是统一的,所以深度学习也叫End2End。解决方法:希望通过降维的方法减少对数据量的要求,同时在降维的过程中还需要保持在高维空间里的一些度量信息,这样的过程就是“表示学习”。起因:“维数诅咒”——维度越高,训练一个性能较好的模型对数据量的要求就越高。2. 经典的机器学习——手动提取一些简单的特征。4. 深度学习——利用一些简单的特征。
2024-07-09 16:17:58
493
原创 【计算机网络体系结构】计算机网络体系结构实验-www服务器配置管理实验
1.遇到的问题:打开wireshark抓包却没有抓到,忘记连接的是无线网而不是网线,应该选择WLAN。2.温习了关于http协议的相关知识,了解了WWW服务的体系结构与工作原理,掌握了利用Microsoft的IIS实现WWW服务的基本配置,掌握了WEB站点的管理。3.经过上网查阅资料,学习了关于wireshark抓包分析的更深一层知识,如各种类型的过滤条件等,并详细分析了捕获到的数据包类型及各层的详细内容,收获颇丰。
2024-06-21 11:55:38
1229
原创 【操作系统】操作系统实验04-文件系统扩展
实现方法:利用递归的思想,处理完当前节点后,判断此节点是否为目录节点(以此判断是否有子节点);若是,则先递归处理该节点,实现深度优先遍历;若不是,则不做处理。利用队列存储当前目录下的子目录,当当前层遍历完后,从队列中取出头结点,对下一层文件进行遍历,以此规律实现广度优先遍历。实验中遇到的问题与解决方法:(深度优先遍历程序)运行程序,结果出现了无限循环的问题。最终发现是因为每个目录下默认有”.”与”..”的隐藏目录文件,因此递归时会无限递归本身以及上级目录。
2024-06-19 13:05:09
477
原创 【操作系统】操作系统实验03-页面置换算法
在FIFO 算法的请求页式管理中,当发生缺页中断且主存没有空闲页面时,总是淘汰最先进入主存的页面,即选择在主存中驻留时间最久的页面被淘汰。假设进程访问页有m个,在内存中分配给该进程n个页面,开辟一个大小为m*n的数组空间,存储每次访问页的内存情况。遍历进程访问页序列,若当前页不在内存中且内存中有空闲页面(前n个进入的页),则记为缺页中断一次,并将内存中后(n-1)个页面前移一位,并将最新的页放入其中;若当前页不在内存中且内存中无空闲页面,则额外将移出的一位存至队列中;
2024-06-19 12:59:24
986
原创 【操作系统】操作系统实验02-生产者消费者程序改进
想要改进程序执行语句,使程序运行时能反映出具体是哪一位生产者/消费者 生产/消费 了哪一个商品。一开始我尝试在pthread_create()函数中给生产者/消费者函数传递生产者/消费者id变量,但是由于线程共享变量,无法在生产者-生产者、消费者-消费者之间作出区分。
2024-06-19 12:08:30
624
原创 【操作系统】操作系统实验01-消息的一发一收
实现方法:1.首先创建一个子进程。2.在子进程中,利用消息队列的通信机制,循环发送十个消息。在每次循环末尾利用软中断等待接收信号16,进而进入下一次循环。3.在父进程中,利用消息队列的通信机制,循环接收十个消息。每次接收完消息后,等待子进程进入等待接收信号16的状态后(sleep(1)),再给子进程发送16信号,通知子进程自己已接收完消息,使子进程进入下一轮循环,发送下一条消息。4.发送完全部10个消息后,父进程等待子进程结束,而后自身结束并退出。
2024-06-19 11:53:25
410
原创 【操作系统】操作系统课后作业-聊天程序
它是半双工的,具有固定的读端和写端。只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。不是普通的文件,不属于其他任何文件系统,并且只存在于内存中。FIFO可以在无关的进程之间交换数据。FIFO有路径名与之相关联,它以一种特殊设备文件形式存在于文件系统中。
2024-06-19 11:46:40
273
原创 【微机原理与汇编语言】并行接口8255实验
通过此次实验,我对8253,8255,8259的理解更加深刻了:8255提供了三个端口A,B,C,我们可以利用简单的方式0工作方式实现对端口输入输出的控制,在本次实验中,我利用8255来读取开关状态,并反映到对应的灯的状态上,8255还起到了对8253的计时器1的门控信号的控制作用。1.一开始对于8253计数器的工作方式确定不下来,有考虑到方式0的使用,但是对于两个计数器:计数器0要不断地产生脉冲,进而产生中断,不能只产生一次中断就结束了,否定。根据实验室现有条件,针对实验任务,设计实验方案并进行实现。
2024-06-05 22:21:05
2040
原创 【微机原理与汇编语言】循环程序设计
本次实验中,我对循环结构程序又有了更新一层认识,对汇编指令的使用规则及方法掌握的更熟练了。在最后的几次调试时,发现小数位是不对的,且只有一位数。经过调试发现是我直接将余数打印了出来,并没有处理成小数。要想将余数转化成小数,将余数乘以10的倍数再除以除数即可。在写宏定义时,也想运用循环结构,不知是否可行。在老师的帮助下,发觉需要在头部声明:local x,x,x。原因是当宏在主程序中被二次展开时,标号会重名,所以要提前声明一下防止出错。
2024-06-05 22:18:18
536
原创 【静态分析】在springboot使用太阿(Tai-e)03
MyBatis 是一款优秀的持久层框架/半自动的对象关系映射,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过XML或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。可以看下边的两种形式的例子.
2024-05-21 18:13:02
1393
原创 【静态分析】在springboot使用太阿(Tai-e)01
由于spring-boot实现了控制反转与面向切面编程的设计思想,使得程序并非顺序执行,因此很难通过程序入口来顺序分析所有代码。本篇文章旨在从0开始,利用Tai-e来分析spring-boot程序,解决控制反转的问题。
2024-05-20 23:42:40
1306
原创 【静态分析】软件分析课程实验A4-类层次结构分析与过程间常量传播
此外,为了使得你的过程间常量传播能够正常运行,你还需要实现一个 worklist 求解器来支持过程间数据流分析(虽然在软件分析课程中,我们并没有教过你实现过程间分析的具体方法,但是不必担心,通过本次作业,你会掌握相关的知识和实现方法)。的 entry 节点的 IN fact,我们需要对 2→4 这条边应用 edge transfer,这样使得第 2 条语句的 OUT fact(a=6)转换为 x=6,并最终 meet 结果 x=6 到第四条语句的 IN fact中。该类代表的是程序的过程间控制流图。
2024-05-10 22:21:36
959
原创 【静态分析】软件分析课程实验A3-死代码检测
死代码指的是程序中不可达的(unreachable)代码(即不会被执行的代码),或者是执行结果永远不会被其他计算过程用到的代码。去除死代码可以在不影响程序输出的前提下简化程序、提高效率。不可达代码(unreachable code)和无用赋值。
2024-05-10 16:57:13
1369
原创 【静态分析】软件分析课程实验A2-常量传播和Worklist求解器
在本作业中,Tai-e 对输入类的每个方法进行常量传播分析,并输出分析的结果,也就是每个语句的 OUT fact 所包含的数据流信息(变量的格上对应值)。这是 Tai-e 的 IR 中的一个关键接口,用于表示程序中的所有表达式。这个类的各个子类对应了不同种类的二元表达式,并且每个子类中都有一个内部枚举类型用于表示该类支持的运算符。它的实现是不完整的,在本此作业中你需要完成它。的时候,你要小心地处理每个会被分析的方法的参数。的操作数时,你只需要考虑它是变量的这一种可能,而不用担心它是常量或其它可能了。
2024-05-09 23:11:14
1143
原创 【静态分析】静态分析笔记08 - 指针分析 - 上下文敏感
Select(c,l,c':oi,m),c——调用者上下文,l——调用行,c':oi——接收对象(含堆的上下文信息),m——调用函数。:上下文不敏感时,分析常量传播这个问题,由于没有明确调用id()的上下文,会把不同的调用混合在一起,对id函数内的变量n只有一种表示(调用的堆抽象的上下文,导致只有1个o8,把两个上下文调用产生的o8.f指向集合都合并了,得出了o8.f的多余指向的结果。对比1层的调用点敏感和对象敏感,时间和准确性上对象敏感显然更优,这是由面向对象语言的特点所确定的。:牺牲精度,提高速度。
2024-04-26 18:20:45
1023
原创 【静态分析】静态分析笔记07 - 指针分析基础
因为mthis只和oi的类型对象相关,而可能有pt(x)={new A, new B, new C},使得pt(x)中的所有对象都流向了mthis。因为x可能指向多个对象,就会多次处理ProcessCall(x, oi),可能x中别的对象oj也指向这个目标函数m,已经将这条边加入进去了。WL:Work list,待合并的指针信息,二元组的集合,<指针n,指向的对象集合pts>。:由于指针分析和CG构造互相影响,所以每次迭代只分析可达的函数和语句。:当一个指针的指向集发生变化,必须更新与它相关的其他指针。
2024-04-24 11:56:17
1047
原创 【静态分析】静态分析笔记06 - 指针分析介绍
所以为保证指针分析可以终止,我们采用堆抽象技术,将无穷的具体对象抽象成有限的抽象对象。也即,将有共性的对象抽象成1个静态对象,从而限制静态分析对象的个数。:指针分析属于may analysis,分析的结果是某指针所有可能指向哪些对象,是个over-approximation集合。:目前流敏感对Java提升不大,不过在C中很有效,本课程分析的是Java,所以重点讨论流不敏感技术。:基本信息(别名分析/调用图),编译优化(嵌入虚拟调用),漏洞(空指针),安全分析(信息流)。),来表示在该点创建的所有动态对象。
2024-04-22 12:08:45
791
原创 【静态分析】静态分析笔记05 - 过程间分析
本质是调用边的集合,从调用点(call-sites)到目标函数(target methods / callees)的边。
2024-04-20 21:57:57
933
原创 【静态分析】软件分析课程实验A1-活跃变量分析和迭代求解器
Live Variable Analysis 详见。我们已经在 Tai-e 的框架代码中提供了你需要的一切基础设施,包括但不限于:程序分析接口、常用数据结构(如数据流信息的表示)、必要的程序信息(如控制流图)等内容。由此,你就可以便利地在 Tai-e 上实现各类数据流分析了。例如在本次作业中,你要在框架代码中补全一些关键部分,从而实现要求的活跃变量分析与迭代求解器。需要特别注意的是,所有作业文档都只会简要地介绍本次作业中必要的一些 API。
2024-04-16 16:43:21
1363
原创 【静态分析】软件分析课程实验-前置准备
Tai-e 是一个分析 Java 程序的静态程序分析框架,相比于已有的知名静态程序分析框架(如 Soot、Wala 等),Tai-e 要易学易用很多。Tai-e 提供精炼的 IR,明晰且易拓展的接口,丰富的程序分析算法,直观易懂的框架结构,以及指导性强的文档等。需要注意的是,Tai-e 分为教学版和科研版两个版本,两个版本虽都易学易用,但侧重有所不同。该套实验作业的设计是基于教学版。
2024-04-16 16:32:06
1569
原创 【静态分析】静态分析笔记04 - 数据流分析(理论)
定义:给定偏序集(P,∀x∈Sx⊑u, 其中u∈P,则 u 是子集 S 的上界 (注意,u并不一定属于S集∀x∈Sl⊑x, 其中l∈P,则 l 是 S 的下界最小上界:least upper bound(lub 或者称为 join),用 ⊔S 表示。定义:对于子集 S 的任何一个上界 u,均有 ⊔S⊑u。最大下界:greatest lower bound(glb 或者称为 meet),用 ⊓S 表示。定义:对于子集 S 的任何一个下界 l,均有 l⊑⊓S。
2024-04-14 11:05:55
1541
2
原创 【静态分析】静态分析笔记03 - 数据流分析(应用)
给变量 v 一个定义 d(赋值),存在一条路径使得程序点 p 能够到达 q,且在这个过程中不能改变 v 的定义 d。
2024-04-11 16:54:22
1231
原创 【静态分析】静态分析笔记02 - Intermediate Representation
因为首先要确保这是一份合格的代码,词法正确,语法正确,语义正确,而后再进行分析 non-trivial 的一些属性,而不是在可能编译不通过,运行不起来的程序中去分析这些 trivial 属性。PS:这里可能还是需要看应用场景,应用场景不同,其需求不同,source code 有时确实会比 IR 或者 machine code 表达出更丰富的语义。重用,代码相似性的 field 中,确实存在若干 paper 基于 source code 构建代码相似性。条件跳转和非条件跳转从 A 的结尾到 B 的开头。
2024-04-09 22:57:46
1087
数据报协议分析实验源码
2024-09-08
网络安全实验-snort实现高级IDS-software
2024-02-01
【网络规划设计】网络工程实验教程2016
2023-12-12
验证码识别(代码+数据集+文档)
2023-11-15
【工程项目管理】工程项目管理大作业
2023-06-22
【C语言】初学者基础练习程序
2022-07-05
【C语言】数据结构实验_一元多项式相加_串模式匹配算法_二叉树遍历与路径查找
2022-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人