# 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod
20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod
因为在课上已经提交了四个实验,还欠缺最后一个实验,反省一下自己还是操作不熟练,平时在课下应该多多练习linux的命令训练。
实践一
- 每个* .c一个文件,每个*.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
截图

在课堂实践一中,我们应该把所有的文件放在一个新的自己创建的文件夹里,这样用gcc编译的时候才不会出错,头文件也不会出现找不到的情况,因为自己做的时候没有注意到这一点所以课堂实践一做的很慢。
实践二
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
截图

课堂实践二做起来就得心应手多了,按照老师的要求将命令输入就可以啦,但要注意编译的顺序
1.gcc -E .c -o .i 编译预处理
2.gcc -S .i -o .s 产生汇编代码
3.gcc -c .s -o .o 进行汇编
4.gcc * .o -o XXX 生成可执行文件
实践三
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置- 一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图

实验三是gdb调试代码,在调试代码中注意下面的命令
- run 简写为r,这个命令是用来运行程序的,在一开始需要现运行程序
- break 简写为不,这个命令是设置断点的命令,也是我们调试的时候需要用到的重要命令
- b X(整数) 设置断点,在源程序第X行
- b X(整数) if i==X 设置条件断电,在for循环后一行设置。
-next 简写为n,这个命令是跳过函数进行下一行代码的调试。
-step 简写为s,这个命令是调试进入函数并循环。
-quit 简写为q,这个命令是退出单步调试环节。
实践四
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图

静态库的这个实践是询问同学的前提下,按照课本上的代码一步一步写下来的,创建了静态库。
实践五
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图
和静态库一样,也是按照课本上一步一步写代码就实现了动态库。这里需要用到使用到的命令gcc -shared -fpic -o XX.so XX1.c 这条命令。
实践六
-写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
-提交Make过程截图,要全屏,包含自己的学号信息
截图
使用到的命令
- vi makefile写makefile文本
- 保存后退出输入make
- 输入./testmymath
myod
- 复习c文件处理内容
- 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
- main与其他分开,制作静态库和动态库
- 编写Makefile
- 提交测试代码和运行结果截图,要全屏,包含自己的学号信息
截图
# 20155337 2017-2018-1 《信息安全系统设计基础》第二周课堂实践+myod的更多相关文章
- 20135328信息安全系统设计基础第二周学习总结(vim、gcc、gdb)
第三周学习笔记 学习计时:共8小时 读书:1 代码:5 作业:1 博客:7 一.学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 ...
- LINUX信息安全系统设计基础第二周学习总结
1 Linux命令 2 man命令 1.Terminal(终端) Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal ...
- 20135328信息安全系统设计基础第一周学习总结(Linux应用)
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/ ...
- 20155217 《信息安全系统设计基础》week16课堂测试
20155217 <信息安全系统设计基础>week16课堂测试 在作业本上完成附图作业,要认真看题目要求并提交作业截图. 在set的过程中,我们需要将hour部分进行赋值,赋值我们采用&q ...
- 2017-2018-1 20155226 《信息安全系统设计基础》课下实践——实现mypwd
2017-2018-1 20155226 <信息安全系统设计基础>课下实践--实现mypwd 1 学习pwd命令 输入pwd命令 发现他是给出当前文件夹的绝对路径. 于是 man 1 pw ...
- # 第二周课堂实践以及MyOD
第二周课堂实践以及MyOD 之前使用的虚拟机出现问题被我删掉了,开始学着使用Mac系统自带的终端.在课堂上出现了问题,询问王雄老师也没有解决,课下先使用了实验楼环境进行实验,后来又在Mac重新进行了尝 ...
- 20155233刘高乐 第二周课堂实践以及MyOD
1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so? 2. 提交共 ...
- LINUX信息安全系统设计基础第一周学习总结
Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...
- 20135234mqy-——信息安全系统设计基础第二周学习总结
Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数 选项(options)或参数(argument ...
随机推荐
- 如何在windows下用IDA优雅调试ELF
在windows下如何用IDA优雅调试ELF brief: 构建一个IDA-linux_server-docker镜像,优雅地IDA远程调试 使用传统虚拟机来运行一个linux程序就得跑一个完整的li ...
- 洛谷 P4705 玩游戏
题目分析 题目要求的是: \[ \sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x(x\in [1,T]) \] 利用二项式定理化式子, \[ \begin{aligned} &a ...
- c++ 派生类的构造函数次序
#include <iostream> using namespace std; class CFatherSum //父类Sum { public: CFatherSum(int iRe ...
- Android如何自学----转自lavor从segmentfault
如何自学Android 1. Java知识储备 本知识点不做重点讲解: 对于有基础的同学推荐看<Java编程思想>,巩固基础,查漏补全,了解并熟悉更多细节知识点. 对于没有基础的同学推荐看 ...
- hook与链表操作
hook与链表的节点操作有相似之处: 链表的前后顺序相当于程序的执行流: 对链表节点的替换或插入相当于hook技术: 1.替换:用新的节点替换原来的节点: 2.前插入: 3.后插入: 修改原来的结构.
- cocos2d-x开发: 一切应该从配置文件读取开始
想要做一款完整的游戏,应该从配置文件读取开始.cocos2d-x本身提供了UserDefault来操作xml格式的配置文件,准确的说配置这模块引擎开发者已经考虑到了.但是xml格式包含大量无关的格式信 ...
- ./redis-trib.rb [ERR] Sorry, can't connect to node 192.168.*.*
原因在于在redis.conf中绑定了127.0.0.1 改为自己虚拟机地址.重新启动
- React Native封装Toast与加载Loading组件
React Native开发封装Toast与加载Loading组件 在App开发中,我们避免不了使用的两个组件,一个Toast,一个网络加载Loading,在RN开发中,也是一样,React Nati ...
- 混乱的 Java 日志体系
混乱的 Java 日志体系 2016/09/10 | 分类: 基础技术 | 0 条评论 | 标签: LOG 分享到: 原文出处: xirong 一.困扰的疑惑 目前的日志框架有 jdk 自带的 log ...
- MySQL 日常运维业务账号权限的控制
在MySQL数据库日常运维中,对业务子账号的权限的统一控制十分必要. 业务上基本分为读账号和写账号两种账号,所以可以整理为固定的存储过程,让数据库自动生成对应的库的账号,随机密码.以及统一的读权限,写 ...