2017-2018-1 20155327 《信息安全系统设计基础》第八周课下作业
课上实践
测试一
参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”
测试代码传入自己的8位学号
上方提交代码
附件提交运行测试截图
参考代码
public class CLSum {
public static void main(String [] args) {
int sum = 0;
// 参考Integer类中的方法把字符串转为整数
// 补充代码求命令行参数的args中整数数据的和
for(String arg: args)
sum += Interger.parseInt(arg);
// 打印
System.out.println(sum);
}
}
题目分析
以int main(int argc, char **argv)
定义主函数
这样命令行参数会存在argv中
再用atoi函数,把字符串转为整型
代码如下
#include <stdio.h>
#include <stdlib.h>
int main(int argv, char *argc[])
{
int i, sum = 0;
if(argv > 1)
{
for(i = 1; i < argv; i++)
sum += atoi(argc[i]);
}
printf("%d", sum);
return 0;
}
实践二
把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图
把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)
解答过程
反汇编过程:
.先用gcc CLS.c -o CLS.o将.c文件变成.o文件,然后输入objdump -d CLS.o 查看X86-64中的反汇编代码
实践三
基于socket 使用教材的csapp.h csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
服务器响应消息格式是
“
客户端IP:XXXX
服务器实现者学号:XXXXXXXX
当前时间: XX:XX:XX
”
上方提交代码
提交一个客户端至少查询三次时间的截图测试截图
提交至少两个客户端查询时间的截图测试截图