2018-2019-1 20165324《信息安全系统设计基础》第八周课上测试
实验要求
- 任务一:
- 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA
- 在Linux下完成“求命令行传入整数参数的和”,测试代码传入自己的8位学号,运行代码
#include <stdio.h>
void main(int argc,char** argv)
{
int i,a,sum=0;
for(i=1;i<argc;i++)
{
a=atoi(argv[i]);
sum = sum +a;
}
printf("%d
",sum);
}
- 运行截图:
- 任务二:
- 把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图
- 把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)
- 在Ubuntu中编译汇编代码
- 运行截图:图一为机器码,图二为汇编。
Y86-64模拟器
-
使用Y86-64模拟器,将Y86-64模拟器下载到虚拟机后,使用
unzip Y86-64模拟器.zip
解压
使用tar -xf sim.tar
解压sim
参考Y86模拟器按照步骤安装好Y86模拟器
进入sim目录开始编译
cd sim
make clean;make
-
运行图形界面
cd pipe
./psim -t -g ../y86-code/asum.yo
- 将测试一中的X86-64汇编代码翻译成Y86-64汇编代码如图:
-
测试三
- 基于socket使用教材的csapp.h、csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端,服务器响应消息格式是:客户端IP:XXXX 服务器实现者学号:XXXXXXXX 当前时间: XX:XX:XX
- 关于daytime,daytime服务是基于TCP的应用,服务器在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间(接收到的任何数据被忽略),在传送完后关闭连接。
- daytime服务也可以使用UDP协议,它的端口也是13,不过UDP是用数据报传送当前时间的。接收到的数据被忽略格式对于daytime没有特定的格式,建议使用ASCII可打印字符,空格和回车换行符,daytime应该在一行上。
-
运行截图: