- 博客(199)
- 收藏
- 关注
原创 牙科诊所接诊与治疗管理系统(代码界面跳转、登录界面)
该系统采Python+PyQt5技术进行开发,使用MySQL数据库,具备直接通过cmd终端对数据库进行构建、编写,并且允许管理员对数据库用户进行授权操作,同时与其他编程语言具有很强的可集成性。本文先对需求进行分析,详细介绍了数据库实现所进行的系统规划,系统分析流程,需求分析流程,系统概要设计,并介绍了系统的设计与实现。最后对系统进行总结。
2024-07-13 20:52:55
201
原创 计算机网络复习
隐藏终端问题:在通信领域,基站A向基站B发送信息,基站C未侦测A也向B发送信息,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号丢失了两种方法:一种是接受节点在接收的同时发送忙音来通知邻居节点,即BTMA系列;第二种则是发送节点在数据发送前与接收节点进行一次短控制消息握手交换,以短消息的方式通知邻居节点它即将进行接收,即RTS/CTS方式三次握手(2分)第一次:发送方seq=1000 接收方:ack=1100第二次:发送方seq=1100接收方:ack=1200。
2024-06-19 17:40:35
1052
1
原创 指令的操作尺寸
位7和位6的值是01,表示使用了基地址变址的寻址方式,而且带有8位偏移量;位5和位3是010,指示目的操作数为寄存器DX,位2~位0的值是000,表示寻址方式为“BX+SI+8位位移”,该字节之后,是1字节的位移0x02。位5~位3的值是010,指示目的操作数为寄存器EDX,位2 ~位0的值是000,表示寻址方式位EAX+8位位移,在该字节的位移0x02。16位操作尺寸意味着指令的操作数长度是8位或者16位的,有效地址长度是16位的。但是如果默认当前操作尺寸是16位,而我们又想执行32位的。
2024-06-18 12:48:34
855
原创 一个示例学习C语言到汇编层面
当然了,在实际中,逆向分析的难度是很大的,这里只是方便大家理解学习,所以给了一个十六。我们把这个程序编写成32位程序,然后我们放入IDA中进行分析。下图部分这一部分,属于编译器包装的,对程序的初始化。以上是大概的分析,接下来,我们进行细致的分析。以下这一段可以很明显看出对x,y,z。x和y在循环里的赋值如图。
2024-06-17 13:24:59
353
原创 安装存储器的段描述符并加载GDTR
现在还处在实模式下,因此GDT中安装描述符,必须将GDT的线性地址,这里线性地址就是物理地址以下线性地址都称为物理地址,转换成逻辑逻辑段地址和偏移地址。在32位保护模式下使用32位的有效地址m访问内存。与访问gdt base 处的数据一样,标号gdt size 处的这个字节,有效地址为gdt size+0x7c00。一个未初始化的选择子也是0,使用这样的描述符默认选择GDT中的0号描述符,但并不是我们的本意。在6字节的内存区域中,要求前(低)16位是GDT的界限值,后(高)32位是GDT的基地址。
2024-06-03 21:18:26
529
原创 32位处理的寻址方式
32位处理器兼容16位处理器的寻址方式,可以运行传统的16位代码。值得说明的是,16处理器的内存寻址方式不允许在指令中使用栈指针寄存器SP。但是在32位处理器上,允许内存操作数中使用栈指针寄存器ESP。
2024-05-16 11:19:59
236
原创 C++学习一(主要对cin的理解)
在理解 cin 功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符(\n),这个换行符也会被存储在 cin 的缓冲区中并且被当成一个字符来计算!比如我们在键盘上敲下了 123456 这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是 7 ,而不是 6。初学,好好理解一下这段代码。
2024-05-15 23:00:07
261
原创 LLVM-GUET
如何创建带 -mllvm 选项的 llvm pass-mllvm 是 LLVM 编译器的一个选项,它允许你传递参数给 LLVM 的底层代码生成器。这个选项通常用于调试或者优化 LLVM 的代码生成 。添加头文件选择在某个地方创建你的头文件,添加必要的c/c++库,并在命名空间中声明 -mllvm 启动时激活的函数以 obfuscator/include/llvm/Transforms/Obfuscation/Substitution.h 为例 :#ifndef _SUBSTITUTIONS_
2024-05-15 21:15:15
918
原创 LQ杯当时的WP
看到是给192.168.11.128发送了cat flag的命令。在sub_401005函数中找到输出的变量,并且立下断点。AES加密,找一个AES解密就行,密钥也标注了。根据提示搜索robots.txt就行。访问一下最后b4207……32位程序用IDA打开看看。RC4提示,就是一个加密。
2024-05-14 21:43:03
177
原创 LLVM中期报告
基本块分割不是纯正的代码混淆技术,但是在以基本块为基本单位的代码混淆技术中,基本块的数量越多,进行代码混淆后的复杂度越大,通过人为增加基本块的数量,可以达到提高代码混淆效果的目的。从LLVM代码混淆的角度出发,函数之间的正常调用构成了待混淆程序的原始控制流,不同的基础代码块构成了一个个的函数,每个基础代码块又是由一条一条程序语句构成的,每条程序语句可以看做是一条指令。在对运算指令的替换中,首先遍历需要混淆的函数或基本块中的指令,当检测到指定的指令后,在对应的位置创建混淆的指令,并取代原来的指令。
2024-05-13 22:20:56
1018
原创 archive
就拿时间这个变量来说,我们一般认为时间是连续的,它确实是连续的,但是,我们用科学的测量,是没法把时间测成连续的,也就是说,我们哪怕用微秒纳秒也不能严格满足连续的定义,然而,这并不妨碍我们进行计算。哪怕我们肉眼见到的物质,不也是有原子组成,原子不仅仅不是最小的,而且还存在间隔。RNN 跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。RNN,会将之前的结果带入下一次,这个符合连续型的数据,所以这个用来处理视频。对于图片,可以把像素看成每一个点,所以选择CNN无疑的。
2024-05-06 11:03:27
880
1
原创 数据库复习1
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。① 关系:一个关系对应通常说的一张表。② 属性:表中的一列即为一个属性。③ 域:属性的取值范围。④ 元组:表中的一行即为一个元组。⑤ 码:表中的某个属性组,它可以唯一确定一个元组。⑥ 分量:元组中的一个属性值。⑦关系模式:对关系的描述,一般表示为关系名(属性1,属性2,…,属性n)
2024-05-05 21:47:16
792
原创 安装包逆向(总结)
就是内部结构的基址寻找和资源的解析,(自定义的加密或者编码的手段),软件系统的环境变量注册,保护内部数据不被轻易的识别,实现自动化的软件安装部署这么一个过程,部署软件资源代码之后的自启动,自启动特性:一是启动主程序(Exec + Path,ShellExcuteEx + Path),二是启动某些必须要执行的第三方库或者命令(CreateProcess + cmd /c + arg)。存在于资源当中,课程内容的安装包的基址是从资源中获取解析代码的偏移,然后在进行后续的一系列解包操作。
2024-04-22 12:20:35
1008
原创 pytorch学习
我们自己定义网络的时候,需要继承nn.Module类重新实现构造函数__init__ 构造函数和forward这两个方法一般把网络中具有可学习参数的层(如全连接层、卷积层等)放在构造函数__init__()中,当然我也可以把不具有参数的层也放在里面;一般把不具有可学习参数的层(如ReLU、dropout、BatchNormanation层)可放在构造函数中,也可不放在构造函数中,如果不放在构造函数__init__里面,则在forward方法里面可以使用nn.functional来代替。
2024-04-15 17:55:57
721
原创 python实验4
初始状态是”未付款“,中间状态有”已付款5毛“,”已付款1块“,”已付款1.5块“,”已足额付款“,四个状态。在下图中,可以看到系统有 S1, S2, S3, S4 四个状态, 0 和 1 是状态机可以从一个状态到另一个状态的值,例如,只有当只为1的时候,S0可以转换到S1,当只为0的时候, S0可以转换到S2。这个转换的过程就是根据条件来切换状态,题目中,我们会输入一组数字作为事件,根据这一组数字,完成状态转换并输出相应的动作,从 S0 开始,叫做 初始状态,最后到 S4,叫做结束状态。
2024-04-15 15:42:31
847
原创 安装包分析3
如果出现异常情况,如文件操作失败或没有写权限等,则根据情况返回不同的错误码,并进行相应的处理,如显示错误消息、退出程序等。总的来说,这个函数负责执行安装过程中的一系列操作,包括读取文件数据、提取文件、执行脚本等,并根据执行结果返回相应的结果码。打开当前模块的文件流,并将文件流的指针移动到资源偏移量处,然后从文件流中读取数据,填充安装程序的数据区。接上文,在主函数我们看到下载的函数InstallFunc,在这个下载的函数中,根据指引我们可以看见。如果读取到的文件数据不为空,则更新文件指针位置,并通过。
2024-04-09 20:05:45
969
原创 ch6 文件操作和异常处理
A、math:该模块提供了一些数学函数,例如三角函数、指数函数、对数函数等。:该模块用于生成词云图片。:该模块定义了 Python 中所有内置异常类型,例如ValueErrorTypeErrorIndexError等。D、logging:该模块提供了一个通用的日志记录框架,允许程序员记录应用程序运行时的消息、警告和错误。:该模块提供了一些函数,用于获取和格式化堆栈跟踪信息。math模块提供了一些数学函数。wordcloud模块用于生成词云图片。exceptions。
2024-03-25 13:47:34
679
原创 python实验一
首先,python,我们得了解他得语法就,还有输入的结构还有方式,在这一定的基础上,我们需要会数学的知识就最大公约数,最小公倍数是属于数学的知识,只有先知道数学的知识,再懂的编程语言,才可以完成同时语法和函数,例如切片,就可以解决回文素数的判断,这跟C语言相比,要快了不少,这就是懂得语法的重要性,至于函数,测试中保留15位小数,进行四舍五入,用round函数,还有pow内置函数,解决平方的公式计算,可以说是非常方便。
2024-03-24 11:29:53
752
原创 ch6文件操作和异常处理
函数是 Python 中一个常用的函数,用于创建双端队列。双端队列是一种特殊的队列,允许从两端插入和删除元素,具有较高的效率和灵活性,可以用于实现队列、缓存、滑动窗口等数据结构。是一个功能强大的函数,可以帮助您高效地遍历目录树并访问文件和文件夹。函数是 Python 中常用的读取文件内容的函数。双端队列是一种特殊的队列,允许从两端插入和删除元素。函数是 Python 中一个常用的函数,用于列出指定目录下的所有文件和文件夹。函数用于返回指定目录下的所有文件和文件夹的名字列表,但不包括。一个新的双端队列对象。
2024-03-20 22:37:38
752
原创 数据可信流通,从运维信任到技术信任
共同观点:信任是涉及交易或交换关系的基础外循环遭受到破坏基于硬件芯片可信根(TPM/TCM)与可信计算体系已经是等级保护标准的关键组成部分验证网路上某节点运行的是指定的软件和硬件甚至不需知道它在哪里,是谁能够远程验证 数字应用的身份,并对执行环境做度量,是技术信任的根基数据对持有者在数据离开其运维安全域后,依然能够对数据如何加工使用进行决策,防泄露防滥用,对齐上下游利益诉求
2024-03-18 20:51:40
400
1
原创 文件操作和异常处理1-读写文件
Python 之 lambda 函数完整详解 & 巧妙运用:https://blog.csdn.net/PY0312/article/details/88956795
2024-03-18 17:34:03
246
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人