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

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

教材学习内容总结

  • 十六进制表示法C表示法以0x或0X开头的数字常量为十六进制进制转换常用进制:二进制(B),十进制(D),八进制(O或者Q),十六进制(H)
  • 转换为二进制-十六进制相互转换,二进制的四位数字对应十六进制的一位数字。 同理,二进制与八进制的转化是三位对应一位。 但是通常情况下,进制转换都以二进制为桥梁进行转换。
  • 对于一个字长为w位的机器来说,虚拟地址的范围是0~2^w-1。程序最多访问2的w次方个字节。
  • 数据大小: 在不同字长的计算机中,相同的数据类型所占用的字节数并不相同,32位和64位的区别见书
  • 使用C99特性时 gcc -std=c99 xxx.c 实验楼环境为64位,编译为32位机器码: gcc -m32 xxx.c
  • 强制类型转换用来允许一种数据类型引用一个对象,而这种数据类型与创建这个对象的定义的数据类型不同。最好在定义的时候保持数据形式的统一
  • 表示字符串和代码: C语言中字符串被编码为一个null字符结尾的字符数组。每个字符串都由某个标准编码来表示,最常见的是ASCII字符码。
  • 位运算

1.布尔代数 常用运算符号:`与: &或: |非: ~异或:^`

2.位向量位向量:有固定长度为w、由0和1组成的串。位向量的应用表示有限集合。

3.位级运算位运算:位向量按位进行逻辑运算,结果仍是位向量。位级运算的一个常见用法就是实现掩码运算,这里掩码是一个位模式,表示从一个字中选出的为的集合。 4.C语言中的移位运算: C语言标准并没有明确定义应该使用那种两类型的右移。对于无符号数据,右移必须是逻辑的。而对于有符号数据,算术的或者逻辑的右移都可以。

  • c语言中的移位运算右移

右移分为逻辑右移和算术右移。算术左移和逻辑左移没有什么区别。逻辑右移: 在左端补k个0,多用于无符号数移位运算算术右移: 在左端补k个最高有效位的值,多用于有符号数移位运算。

  • 补码运算

1.补码用法 加法必须确定结果太大或者太小时,应该采取什么措施 两个数的w位补码之和与无符号数之和有完全相同的位级表示。大部分计算机使用同样的机器指令来执行无符号或者有符号加法。

思考书后问题

  • p20: 三种数字形式:无符号数、有符号数、浮点数,注意数据形式
  • p22: 进制转换,注意拿二进制运算中间结果
  • p25: gcc -m32 可以在64位机上生成32位的代码
  • p26: 字节顺序是网络编程的基础,记住小端是“高对高、低对低”,大端与之相反
  • p32: 区分逻辑运算和位运算,所有逻辑运算都可以用与、或、非表达,而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算
  • p33: 掩码是位运算的重要应用,对特定位可以置一,可以清零
  • p38: 要用long long类型,编译是要用 gcc -std=c99p39: 补码的利用寄存器的长度是固定的特性简化数学运算
  • p44: 注意C语言中有符号数和无符号数的转换规则,位向量不变
  • p48: 第二个是无符号运算的话,第一个也会被间接地转换为无符号数。
  • p49: 0扩展和符号扩展0扩展:多用于无符号数转换为一个更大的数据类型。只需在开头加上0补位即可。符号扩展:多用于补码数字转换。最高有效位是什么,就添加什么。
  • p52: 调用函数的方法不正确
  • p67: 用IEEE标准来区分float double int的区别
  • p68: 浮点数运算的不精确性与舍入
  • p70: IEEE浮点标准,float/double类型
  • p74: 整数与浮点数表示同一个数字的关系
  • p78: 整数与浮点数转换规则

学习中遇到的问题

一开始在编译中出现问题,main没有定义方法,导致后期gcc出现问题

写代码出现失误,忘记了相对应的符号,使gcc在编译的时候出现错误

vim编辑解决之后截图,得到了解决

git代码上传

https://git.oschina.net/sjy519/linux-program-C/tree/master

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 3000行 30篇 300小时  
第一周 0/0 1/2 25/40 学习了Linux基础知识和核心命令 
第二周 0/0 0/2 0/40  
第三周 300/300 3/5 40/80
学习了vim、gcc、gdb指令;

学习了信息表示和处理

时间: 2024-10-13 08:19:15

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

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

20145216史婧瑶<信息安全系统设计基础>第十一周学习总结 教材内容总结 第八章 异常控制流 平滑:指在存储器中指令都是相邻的. 突变:出现不相邻,通常由诸如跳转.调用.和返回等指令造成. 异常控制流ECF:即这些突变. 关于ECF: 1.ECF是操作系统用来实现I/O.进程和虚拟存器的基本机制 2.应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务 3.ECF是计算机系统中实现并发的基本机制 4.软件异常机制--C++和Java有try,catch,和throw,C

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

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有

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

20145216史婧瑶 <信息安全系统设计基础>第2周学习总结 教材学习内容总结 一.VIM 1.hjkl所表示的即为光标 ←↓↑→,前提是要在normal的状态下.方便记忆j像一个笔就像下箭头. ·i → Insert 模式,可插入文本.按 ESC 回到 Normal 模式. ·A → 输入欲添加文本(在一行后添加文本).按 ESC 回到 Normal 模式. ·x → 删当前光标所在的一个字符. ·:wq → 存盘 + 退出 (:w 存盘, :q 退出) 2.删除类命令: 该命令为操作符d

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

20145216史婧瑶<信息安全系统设计基础>第七周学习总结 教材内容总结 第六章 存储器层次结构 存储器系统是一个具有不同容量.成本和访问时间的存储设备的层次结构. CPU寄存器.高速缓存存储器.主存储器.磁盘. 第一节 存储技术 一.随机访问存储器(RAM) 1.RAM分类: 静态的SRAM-更快,更贵,作为高速缓存存储器,CPU片上或片下 动态的DARM-作为主存以及图形系统的帧缓冲区 2.非易失性存储器--ROM (1)分类 PROM-可编程ROM,只能被编程一次 EPROM-可擦写可

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

20145216史婧瑶<信息安全系统设计基础>第6周学习总结 教材内容总结 第四章 处理器体系结构 第一节 Y86指令集体系结构 一.程序员可见的状态 1.含义:每条指令都会读取或修改处理器状态的某些部分 2."程序员":可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器 3.具体的处理器状态:类似于IA32 有8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp,%ebp 处理器的每个程序寄存器存储一个字 寄存器%esp被入栈.出栈

20145216史婧瑶《网络对抗》Web安全基础实践

20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,程序通过执行SQL语句进而执行攻击者所要的操作.其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统. 防御方法: 对输入的数据进行过滤,将常见的sql语句的关键词:select or ' " 等字符进行过滤. 对在数据库中对密码进行加密,验证登陆的时

20145216史婧瑶《网络对抗》网络欺诈技术防范

20145216史婧瑶<网络对抗>网络欺诈技术防范 实验问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 攻击者能对在同一网段可以ping通的电脑发起DNS spoof攻击,所以一般在连接公用Wi-Fi的情况下电脑容易受到DNS spoof攻击. (2)在日常生活工作中如何防范以上两种攻击方法 1.尽量避免连接公用Wi-Fi2.在访问网站时注意观察它的IP地址 实验总结与体会 这次实验我遇到了许多问题,第一个是我做简单应用SET工具建立冒名网站这个实验的时候,第一次克隆的是腾讯页

20145216史婧瑶《网络对抗》逆向及Bof进阶实践

20145216史婧瑶<网络对抗>逆向及Bof进阶实践 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. Linux中两种基本构造攻击buf的方法:retaddr+nop+shellcode ,nop+shellcode+retaddr ,缓冲区小就就把shellcode放后边,不然就放前边. 实验步骤 1.准备一段shellcode代码 2.设置环境 Bof攻击防御

20145216史婧瑶 《网络对抗》 MSF基础应用

20145216史婧瑶 <网络对抗> MSF基础应用 实验回答问题 用自己的话解释什么是exploit,payload,encode. exploit:渗透攻击模块,测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果. payload:攻击载荷模块,由一些可动态运行在远程主机上的代码组成 encode:编码器模块,对指令重新进行编码,用以实现反检测功能.指令顺利执行等 实践过程 主动攻击(ms08_067漏洞) MS08_067远程漏洞攻击实践:Shell 1.在VMware