# 20155336 2017-2018 1 《信息安全系统设计基础》2017-9-27课堂实践

20155336 2017-2018 1 《信息安全系统设计基础》2017-9-27课堂实践

第一题:vi

  1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  2. 用Vi输入图中代码,并用gcc编译通过
  3. 在Vi中使用K查找printf的帮助文档
  4. 提交vi编辑过程截图,要全屏,包含自己的学号信息
    说起来很惭愧,第一次接触虚拟机,对很多地方都陌生,正好趁学习这门课程掌握一下虚拟机的基本操作。
    首先创建一个文件夹,命名为text1。然后将第一道题的要求都录入进去。录入完毕后,输入`gcc *.c`,
    发现了错误,然后`vi`进入到.c的文件中,修改了错误再次编译一遍,没有错误,然后就输出`./a.out`
    

代码链接

第二题:gcc测试

  1. 用gcc 进行预处理,编译,汇编,链接vi输入的代码
  2. 生成的可执行文件中要有自己的学号
  3. 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
    第二题,按照第一节课课上记得笔记,在课下自己实践。虽然中间粗心代码出现错误,但是问题不大
    

代码链接

第三题:gdb测试

  1. 用gcc -g编译vi输入的代码
  2. 在main函数中设置一个行断点
  3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
  4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    这道题出现了很多问题,首先下载GDB,然后在设置了条件断点之后,程序调试的时候没有在断点处停下。在空循环中加个打印空行再设置条件断点然后运行就可以了。(中间由于很多次自己都忘记了编译~~~~~导致每次都会显示自己定义的n没有定义。)

代码链接

第四题:静态库测试

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
  2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
    这道题将自己的代码编译为以下形式:
    gcc -c add.c -o add.o
    gcc -c sub.c -o sub.o
    gcc -c mul.c -o mul.o
    gcc -c div.c -o div.o
    然后使用ar创建一个存档文件:ar rcs mymath.a add.o sub.o mul.o div.o
    编译的时候再将程序和mymath.a链接起来:gcc -static -o link1 main.o mymath.a
    接着运行就可以了!
    

第五题:共享库

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
  2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
    创建一个共享文件
    gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c
    创建一个可执行的目标文件
    gcc -o link2 main.c ./mymath.so
    运行即可
    

代码链接

Myod:

1 复习c文件处理内容

2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

  1. main与其他分开,制作静态库和动态库
  2. 编写Makefile

5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己

时间: 2024-12-10 15:59:56

# 20155336 2017-2018 1 《信息安全系统设计基础》2017-9-27课堂实践的相关文章

# 20155336 2017-2018 1 《信息安全系统设计基础》第1周学习总结

20155336 2017-2018 1 <信息安全系统设计基础>第1周学习总结 第一第七章教材内容总结 第一章: 计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序: 信息就是位+上下文: hello.c--->hello.i--->hello.s--->hello.o; 了解编译系统的益处: 优化程序性能: 理解链接是出现的错误: 避免安全漏洞: 硬件: 总线:贯穿整个系统的一组电子管道. I/O设备:输入/输出设备. 内存:临时存储设备,用来存放程序和程序处

#20155331 2017-2018 1 《信息安全系统设计基础》第11周学习总结

20155336 2017-2018 1 <信息安全系统设计基础>第1周学习总结 第一第七章教材内容总结 第一章: 计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序: 信息就是位+上下文: hello.c--->hello.i--->hello.s--->hello.o; 了解编译系统的益处: 优化程序性能: 理解链接是出现的错误: 避免安全漏洞: 硬件: 总线:贯穿整个系统的一组电子管道. I/O设备:输入/输出设备. 内存:临时存储设备,用来存放程序和程序处

20155236 《信息安全系统设计基础》课程总结

20155236 <信息安全系统设计基础>课程总结 每周作业链接汇总 20155236 <信息安全系统设计基础>第1周学习总结 简要内容:GCC编译器,库的链接 二维码: 20155236 <信息安全系统设计基础>第2周实践博客 简要内容:vim学习,gcc.gdb的使用 二维码: 20155236 <信息安全系统设计基础>第3周学习总结 简要内容:信息的表示和处理,对信息在计算机中的存储进行介绍 二维码: 20155236 <信息安全系统设计基础&g

20155235 《信息安全系统设计基础》课程总结

20155235 <信息安全系统设计基础>课程总结 每周作业链接汇总 2017-2018-1 20155235 <信息安全系统设计基础>第一周学习总结: 简要内容:第一章与第七章知识点总结 二维码 2017-2018-1 20155235 <信息安全系统设计基础>第二周课堂测试: 简要内容:课堂测试和补充 二维码 2017-2018-1 20155235 <信息安全系统设计基础>第三周学习总结: 简要内容:第二章知识点总结 二维码 2017-2018-1 2

2017-2018-1 20155336 《信息安全系统设计基础》第八周课堂测试

2017-2018-1 20155336 <信息安全系统设计基础>第八周课堂测试 1.求命令行传入整数参数的和 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成"求命令行传入整数参数的和" 测试代码传入自己的8位学号 上方提交代码 附件提交运行测试截图 解答: 编写代码 #include <stdio.h> void main(int argc,char** argv) { int

20145336张子扬 《信息安全系统设计基础》第7周学习总结

20145336张子扬 <信息安全系统设计基础>第1周学习总结 教材学习内容总结 学习目标: 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 理解局部性原理 理解缓存思想 理解局部性原理和缓存思想在存储层次结构中的应用 高速缓存的原理和应用 三种常见存储技术:RAM.ROM和磁盘 随机访问存储器RAM分为静态RAM(SRAM)和动态RAM(DRAM) SRAM 用来作为高速缓存储存器,SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的.它可以无限制地保

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件

20145239 《信息安全系统设计基础》第5周学习总结

20145239<信息安全系统设计基础>第5周学习总结 教材学习内容 x86寻址方式 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全 8086的分段模式 IA32的带保护模式的平坦模式 机器级编程的两种抽象 -ISA(Instruction set architecture).ISA简单来说就是指令集体系结构.定义了处理机状态,指令格式以及指令对状态的影响.-机器级使用的存储器地址是虚拟地址. 机器代码中的处理机状态 程序计数器(PC)表示将要执行的下一条指令在存储器中的地址. 整数

20145216史婧瑶《信息安全系统设计基础》第3周学习总结

20145216史婧瑶<信息安全系统设计基础>第3周学习总结 教材学习内容总结 十六进制表示法C表示法以0x或0X开头的数字常量为十六进制进制转换常用进制:二进制(B),十进制(D),八进制(O或者Q),十六进制(H) 转换为二进制-十六进制相互转换,二进制的四位数字对应十六进制的一位数字. 同理,二进制与八进制的转化是三位对应一位. 但是通常情况下,进制转换都以二进制为桥梁进行转换. 对于一个字长为w位的机器来说,虚拟地址的范围是0~2^w-1.程序最多访问2的w次方个字节. 数据大小: 在