网络安全原理实验3——RSA签名实现
网络安全原理实验 3——RSA 签名实现
【原理】
RSA 加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。
RSA 签名的过程如下:
(1)A 生成一对密钥(公钥和私钥),私钥不公开,A 自己保留。公钥为公开的,任何人可以获取。
(2)A 用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给 B。
(3)B 收到消息后,在获取 A 的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是 A 回复的。
在这个过程中,只有 2 次传递过程,第一次是 A 传递加签的消息和消息本身给 B,第二次是 B 获取 A 的公钥,即使都被敌方截获,也没有危险性,因为只有 A 的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给 B,防止了消息内容的篡改。
代码
12345678910111213141 ...
汇编语言与逆向工程实验报告7
汇编语言与逆向工程实验报告 7
文件信息
首先看一下文件信息
可以看到是 32 位程序
静态分析
定位到关键函数
123456789101112131415161718192021int __cdecl check(char *Str){ char Buffer; // [esp+1Bh] [ebp-Dh] BYREF size_t i; // [esp+1Ch] [ebp-Ch] int v4; // [esp+20h] [ebp-8h] int v5; // [esp+24h] [ebp-4h] BYREF v4 = 0; for ( i = 0; i < strlen(Str); ++i ) { Buffer = Str[i]; sscanf(&Buffer, "%d", &v5); v4 += v5; if ( v4 == 15 ) { printf("Password OK!\n"); exit(0); } ...
回忆我的Github
回忆我的 Github
今天晚上突然想整顿一下自己的 Github pages,把以前的博客清算一下,不知怎么的就开始回忆了,给 Github 写了一大段小作文。
用 Github Pages 搭建博客已经有一段时间了,一共写了 120 多篇文章,其中有些是技术文章,有些是生活感悟,也有些是随笔。
也记录了选课指北和速通指南,起初这些只是一个普通的 README,后来开发了 2.0 版本,并且改名为 Easy-QFNU,已经成为一个正式的文档站。
从最开始的看教程搭建博客,搞了三整天,还跟我妈咪炫耀,说我做了一个网站(实际上也是 搬运工 吧),到现在写过无数脚本(什么你写的,实际上都是 ChatGPT 写的吧)来提高工作效率,也实现了源码+静态页面同时备份,实现多端同步,也有了很多收获,也有很多想法。还帮我的同学,教同学搭建了自己的 Hexo 博客
在这期间,我对 Github 也有了更深的了解
2022/2023 年 Github 生涯
为什么我要把 22 年和 23 年放在一起说呢,因为我这两年时间还不如 24 年三天的活动多。没啥好回忆的。
回望过去,2022 年 7 月 1 ...
HW
HW
HW
linux 系统
首先查看一下基础信息
netstat -ano/-a #查看端口情况
uname -a #系统信息
ps -aux ps -ef #进程信息
cat /etc/passwd #用户情况
ls /home/ #用户情况
查看日志文件
/var/log/nginx/ #默认 Nginx 日志目录
/var/log/apache/ #默认 Apache 日志目录
/var/log/apache2/ #默认 Apache 日志目录
/usr/local/tomcat/logs #Tomcat 日志目录
tail -f xxx.log #实时刷新滚动日志文件
通过命令查看可疑文件
find /var/www/html -name .php -mmin -20 #查看最近 20 分钟修改文件
find ./ -name '.php’ | xargs wc -l | sort -u #寻找行数最短文件
grep -r --include=.php ‘[^a-z]eval($_POST’ /var/www/html #查包含关键字的 php 文件
find /v ...
汇编语言与逆向工程实验报告6
汇编语言与逆向工程实验报告 6
环境安装
crackme02 逆向
1234567891011121314151617undefined4 main(void){ int local_8; printf("IOLI Crackme Level 0x02\n"); printf("Password: "); scanf("%d", &local_8); if (local_8 == 0x52b24) { printf("Password OK :)\n"); } else { printf("Invalid Password!\n"); } return 0;}
通过分析伪代码得
首先输出两句话,输入密码
然后 if 判断,如果输入的内容与十六进制数 0x52b24 相等,则输出Password OK,否则输出 Invalid ...
网络安全原理实验2——RSA算法实现与测试
网络安全原理实验 2——RSA 算法实现与测试
【目的】
让学员通过该实验的练习主要掌握:
实现 RSA 密码算法
【环境】
操作机:Ubuntu18.04
【工具】
编辑软件:gedit - Version 3.36.2
编译器:gcc (Ubuntu 9.3.0-17ubuntu1~18.04) 9.3.0
我用 Python 写的,开虚拟机,开 C 语言环境太慢了
【源码】
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115def f(r, x, n): """ 计算 x 的 r 次方模 n "&q ...
【福音】我推荐你通过Poe来使用各大AI产品
【福音】我推荐你通过 Poe 来使用各大 AI 产品
今天下午在群里看到师哥(感谢林哥嘿嘿 )推荐的一个 AI 平台,我尝试了一下,我的评价:很好。
前期碎碎念
首先我开篇点题推荐他的理由
好处:
注册简单,对新手很友好
基础功能免费
支持墙内邮箱,对注册邮箱无限制
集成各大 AI 产品,目前本区域可用的不可用的都可以使用,比如 ChatGPT、Gemini-Pro、Claude-3、Qwen(通义千问)、Solar-Mini、RekaFlash、Mixtral 等等。
缺点:
free 版有日限制次数,每个账户 3k 点询问数值,大约可以问几百次
其他注意事项:
高级版 AI 需要订阅,价格大约 20 刀/月,其实 free 版对于一般用户来说足够了
虽然日限制 3k 次,3k 次也不是小数目,如果实在不够的话,可以换账号继续用
说了这么多了,开始正事,下面给出注册教程
准备工作
首先你需要准备:
一个能浏览墙外学习资源的工具(这个我之前提到过了,可以看这个帖子注册)
一个能收信发信的邮箱
开始注册
登陆官网
首先挂上魔法,进入Poe 官网
这里有很自由的注册方 ...
破解PC端iwrite禁用复制
破解 PC 端 iwrite 禁用复制
AI 生成的作文不能粘贴????
我来救救你
打开 iwrite
进入作文页面
电脑按下 F12
然后按下 F1
找到 禁用JavaScript 勾选
一般是禁用 JavaScript 或者是停用 JavaScript,不同浏览器描述可能不同,但基本意思都一样,一眼就能看出来,之后就能粘贴了
网络安全实验报告1——Wireshark抓包分析三次握手
网络安全原理实验 1——Wireshark 抓包分析三次握手
抓包
我抓的是 QFNU 官网:https://www.qfnu.edu.cn/
找到 IPv6 地址
过滤包
过滤器输入以下内容过滤出 IP 地址的 tcp 协议包
1ipv6.addr == 2001:250:581c:608:202:194:186:19 && tcp
分析 tcp 包
第一次握手包
报文数据
123456789101112131415161718192021222324252627282930313233343536Frame 152: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) on interface \Device\NPF_{2C528628-BD70-46E8-A2DC-6A91B43D20AE}, id 0Ethernet II, Src: fe:d8:8f:31:3a:50 (fe:d8:8f:31:3a:50), Dst: Intel_1b:a7:9c (84:7b:57:1b ...
Wireshark使用教程
Wireshark 使用教程
W1ndys
Wireshark 开始抓包示例
先介绍一个使用 Wireshark 工具抓取 ping 命令操作的示例
打开 Wireshark ,主界面如下:
选择对应的网卡,右键,会出现 Start Capture(开始捕获),点击即可进行捕获该网络信息,开始抓取网络包
执行需要抓包的操作,如 ping www.baidu.com。
操作完成后相关数据包就抓取到了。为避免其他无用的数据包影响分析,可以通过在过滤栏设置过滤条件进行数据包列表过滤,获取结果如下。
说明:ip.addr == 180.101.49.11 and icmp 表示只显示 ICPM 协议且源主机 IP 或者目的主机 IP 为 119.75.217.26 的数据包。
Wireshark 抓包完成。
Wireshark 抓包界面
菜单栏:用于调试、配置
工具栏:常用功能的快捷方式
过滤栏:指定过滤条件,过滤数据包
数据包列表:核心区域,每一行就是一个数据包
数据包详情:数据包的详细数据
数据包字节:数据包对应的字节流,二进制
基础操作
调整界面大小
...
3月25日汇编语言与逆向工程
3 月 25 日汇编语言与逆向工程
主函数
汇编指令
push rbp:将当前函数的栈帧基址寄存器的值压入栈中,用于保存前一个函数的栈帧基址。
mov rbp, rsp:将栈顶指针的值赋给栈帧基址寄存器,这样 rbp 指向了当前函数的栈帧。
sub rsp, 10h:在栈上为局部变量分配 10h(16 字节)的空间,即在栈上分配了 16 字节的空间用于存储局部变量或临时数据。
mov esi, 4:将立即数 4 赋给 esi 寄存器,该寄存器通常用于作为函数参数传递整型参数。
mov edi, 3:将立即数 3 赋给 edi 寄存器,通常用于作为函数参数传递整型参数。
call fun:调用名为 fun 的函数,传递了两个参数,分别是 4 和 3,它们存储在 esi 和 edi 寄存器中。
mov [rbp+m], eax:将 eax 寄存器的值(即函数 fun 的返回值)存储到位于当前栈帧的偏移量 m 处的内存地址中。这里的 m 是一个未知的值,需要根据具体的代码上下文来确定。
mov eax, 0:将 0 赋给 eax 寄存器,通常用于函数返回值。 ...
汇编语言与逆向工程实验报告4
汇编语言与逆向工程实验报告 4
实验目的:call,ret 堆栈,栈帧图
hello_64.exe
汇编
fun 函数栈帧
函数栈帧详解https://blog.csdn.net/qq_41412237/article/details/119489211#/
endbr64: 可能是一个保留指令,用于指示 64 位代码段的开头。
push rbp: 将当前栈底指针 rbp 的值压入栈中,准备建立栈帧。
mov rbp, rsp: 设置栈底指针 rbp 的值为当前栈顶指针 rsp 的值,建立栈帧。
sub rsp, 0x10: 分配 16 字节的空间给局部变量。
mov esi, 4: 将立即数 4 移入寄存器 esi 中。
mov edi, 3: 将立即数 3 移入寄存器 edi 中。
call hello_fun: 调用名为 hello_fun 的函数。
mov [rbp-4], eax: 将函数返回值保存到栈帧中的位置。
mov eax, [rbp-4]: 将之前保存在栈帧中的函数返回值移入 eax 寄存器。
mov esi, ea ...
汇编语言与逆向工程实验报告3
汇编语言与逆向工程实验报告 3
汇编指令
解释
push rbp
将 rbp 寄存器的值压入栈中
mov rbp, rsp
将 rsp 寄存器的值复制到 rbp 寄存器中
mov DWORD PTR [rbp-0x14], edi
将 edi 寄存器的值移动到相对于 rbp 的地址偏移 -0x14 的内存位置
mov DWORD PTR [rbp-0x18], esi
将 esi 寄存器的值移动到相对于 rbp 的地址偏移 -0x18 的内存位置
mov eax, DWORD PTR [rbp-0x14]
将相对于 rbp 的地址偏移 -0x14 的内存位置的值复制到 eax 寄存器中
mov DWORD PTR [rbp-0x8], eax
将 eax 寄存器的值移动到相对于 rbp 的地址偏移 -0x8 的内存位置
mov DWORD PTR [rbp-0x4], 0x0
将值 0x0 移动到相对于 rbp 的地址偏移 -0x4 的内存位置
jmp 0x555555555150 <fun+39>
无条件跳转到地址 0x55 ...
汇编语言与逆向工程实验报告2
汇编语言与逆向工程实验报告2
查看编译后的 32bit 代码,比较与 64bit 的不同
信息
hello_32.o: 文件格式 elf32-i386
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657hello_32.o: 文件格式 elf32-i386Disassembly of section .text:00000000 <fun>: 0: 55 push ebp 1: 89 e5 mov ebp,esp 3: e8 fc ff ff ff call 4 <fun+0x4> 8: 05 01 00 00 00 add eax,0x1 d: 8b 55 08 mov edx,DWORD PTR [ebp+0x8] ...