摘要: 实验目的本次实验的目的是让学生获得关于缓冲区溢出漏洞实际动手的能力,把所学到的关于此类漏洞的知识转化为行动。缓冲区溢出是指在一个程序试图超出预分配的固定长度的缓冲区写入数据的条件。恶意用户可以利用此漏洞的程序改变执行流程,甚至执行任意的代码。此漏洞由存储的数据(例如,缓冲区)和存储的控制(例如,返回... 阅读全文
posted @ 2014-08-30 13:56 20082663 阅读(1889) 评论(0) 推荐(0) 编辑
摘要: import os,shutiltotal = 0def HandleDir(root, dir): passdef DoFilter(file): focus = [".lua"] ext = os.path.splitext(file)[-1] if ext in focus: return True return Falsedef HandleFile(root, file): global total if not DoFilter(file): return full_path = os.path.join(... 阅读全文
posted @ 2013-07-25 18:02 20082663 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 代码如下:import os,shutildef RemoveDir(dir): shutil.rmtree(dir, True)def HandleDir(root, dir): if dir == ".svn": print os.path.join(root, dir) RemoveDir(os.path.join(root, dir))def HandleFile(root, file): passdef WalkThroughPath(dst_path): try: for root, dirs, files in o... 阅读全文
posted @ 2013-07-25 17:13 20082663 阅读(343) 评论(0) 推荐(0) 编辑
摘要: SA12226242 施健一、操作系统的基础 (500字总结放在最下面)1.存储程序计算机 由美籍匈牙利数学家冯·诺依曼于1946年提出的,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。冯·诺依曼和同事们依据此原理设计出了一个完整的现代计算机雏形,并确定了存储程序计算机的五大组成部分和基本工作方法。冯·诺依曼的这一设计思想被誉为计算机发展史上的里程碑,标志着计算机时代的真正开始。 虽然计算机技术发展很快,但“存储程序原理”至今仍然是计算机内在的基本工作原理。自计算机诞生的那一天起,这一原理就决定了人们使用计算机的主要方式——编写程序和运行程序。 阅读全文
posted @ 2013-06-27 15:47 20082663 阅读(508) 评论(1) 推荐(0) 编辑
摘要: SA12226242 施健一.进程的创建 Linux创建进程是通过子进程复制父进程所拥有的资源来实现的。现代Linux通过写时复制、共享数据等方法优化这一过程,提高创建子进程的效率。 在Linux中,进程创建实际上是通过do_fork函数处理的。do_fork函数的功能相对简单:代码在:kernel/fork.c1.检查是否或者哪个事件应该汇报给ptracer。2.通过copy_process创建进程描述符和子进程执行所需要的其它数据结构。3.执行wake_up_new_task函数,唤醒新进程。4.结束并返回子进程的ID copy_process则负责对进程创建的相关资源的申请:代码在... 阅读全文
posted @ 2013-05-30 21:25 20082663 阅读(3040) 评论(0) 推荐(0) 编辑
摘要: 一. 关于fork调用 fork()调用创建一个新的进程,该进程几乎是当前进程的一个完全拷贝。由fork()创建的新进程被称为子进程。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值,而父进程中返回子进程ID。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。Linux将复制父进程的地址空间内容给子进程,因此,子进程拥有独立的地址空间。 我们来看一个DEMO:// fork_example.c#include <memory.h>#include <stdi 阅读全文
posted @ 2013-05-30 17:08 20082663 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: SA12226242 施健 信息安全导读 在深入理解Linux之前,我们需要了解计算机是如何工作的。使用Example的c代码分别生成.cpp,.s,.o和ELF可执行文件,并加载运行,分析.s汇编代码在CPU上的执行过程。一、C语言的编译过程1.1 C语言的编译过程 由于是单文件的程序,因此链接的过程省略。详细参考《程序员的自我修养》第2.1节 被隐藏了的过程[1]1.2 源文件example.c 1 // example.c 2 3 int g(int x) 4 { 5 return x + 3; 6 } 7 8 int f(int x) 9 {10 return... 阅读全文
posted @ 2013-05-14 22:20 20082663 阅读(589) 评论(2) 推荐(0) 编辑
摘要: 1. 网上一些现有的资料。 http://blog.csdn.net/lyl0625/article/details/7350045 http://atzishi.blog.163.com/blog/static/210838180201301910533629/ 有很多中答案,但是都说不准到底是多少字节。 2. 《C程序设计语言》第2.2节 数据类型及其长度 C... 阅读全文
posted @ 2013-04-27 13:36 20082663 阅读(2877) 评论(0) 推荐(0) 编辑
摘要: 1.C内存分布 BSS段: 用来存放程序中未初始化的全局变量。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段:用来存放程序中已初始化的全局变量。数据段属于静态内存分配。 代码段:用来存放程序执行代码。这 堆:堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc/free等... 阅读全文
posted @ 2013-04-23 10:39 20082663 阅读(704) 评论(1) 推荐(1) 编辑
摘要: 这是中科大软件学院信息安全课程实验,课上只做了5个。该套实验共有17个,是信息安全入门的不错选择。SEED Project英文主页: http://www.cis.syr.edu/~wedu/seed/index.html可以在上面的链接中下载实验虚拟机环境和实验手册。上面的实验手册只有英文版的。中... 阅读全文
posted @ 2013-04-15 12:51 20082663 阅读(827) 评论(0) 推荐(0) 编辑