计算机术语白皮书
硬件:
MAC 这里直接涉及计算机系统的硬件(或mac)地址
内存 计算机系统上被分配用语快速存储的磁盘空间量
寄存器 寄存器是处理器用于存储信息的地方。
x86 x86是一组通常与Intel相关的计算机架构。X86架构是一个little-endian系统
软件:
API 应用程序接口是包含特殊函数功能的程序组件,这些函数功能可以被程序员在自己的程序中使用
汇编代码 汇编是含有一些简单操作的低级程序语言。对汇编代码就悉尼港汇编将得到机器代码。在C/C++代码中使用内敛汇编程序通常会产生一个更有效、更快的应用程序。但是这种代码很难维护,缺少可读性且可能很长
Big Endian 在big-endian系统上,最重要的字节首先被存储。SPARC使用了big-endian架构
缓冲区 缓冲区是已分配的一段大小确定的内存空间。当数据在两个运行速度或作业量不同的设备间传递时,通常使用缓冲区作为数据的临时存储区。使用malloc函数可以在堆上分配动态的缓冲区,而定义静态变量时,缓冲区被分配到堆栈上
字节码 字节码是介于人能理解的高级语言代码和计算机能理解的机器代码之间的程序代码,对于java等独立于平台语言来说,字节码是很有用的中间代码。每个系统的字节码解释程序解释字节码的速度可能比完全解释高级语言更快
编译器 编译器可以使程序员从高级程序语言中获益。这些高级语言包含了封装和继承等现代特性
数据隐藏 数据隐藏是面向对象程序语言的一种特性
数据类型 数据类型是在变量初始化前用来定义变量的,它规定变量在内存中的存储方式和变量保存数据的类型
调试器 调试器是一种作为调试应用程序时的运行环境或是类似于运行程序的虚拟机的软件工具。该软件允许在调试应用程序时修改问题。调试器运行终端用户修改环境,比如应用程序依赖和存在的内存。最著名的两种调试器:GDB和softice
反汇编程序 一种将机器码编译后的程序转变为汇编代码的软件工具。最流行的反汇编程序包括objdump和IDA
DLL 动态链接库文件都有一个为.dll的扩展名。DLL是一个运行在win32系统上的程序组件,它含有很多可被其他程序使用的功能。DLL程序可把代码分解成较小的部分,这样利于被其他程序维护、修改和再利用
封装性 是面向对象程序的一个特性,
函数 是一个小型的程序
功能性语言 用功能性语言所写的程序被组织为数学函数。真正的功能性程序没有变量分配,列表和函数对得到所期望的输出都十分有用
GDB GNU调试器
堆 堆是应用程序使用的一块内存区域,它在运行应用程序时动态分配。静态变量和使用malloc的函数接口分配的数据一起存储在堆栈上
继承 面向对象特性
整数包装 在无符号值中,当将过大的无符号值送到一个将整数“包装”为零或较小的应用程序中时,会发生整数包装(integer wrapping)。有符号整数中也存在类似的问题
解释器 解释器阅读并执行程序代码。独立在平台之上
java 面向对象程序语言。平台独立性和自动垃圾回收性
Little Endian 先存储最不重要的字节。X86都是Little-endian
机器语言 可被处理器理解和执行的代码。
Malloc 动态空间分配函数
Memset/Memcpy 内存赋值,拷贝函数
方法 类中函数的一个称法
多线程 线程是可并行执行的那部分程序代码。多线程程序利用了多处理器系统的优势,通过将独立的线程发送给不同的处理器以得到更快的执行。当不同的程序函数需要不同优先权时,线程是有用的。当每个线程被分配内存与CPU时间时,优先级高的线程比优先级低的线程先执行。多线程可产生更快更多响应的程序
NULL NULL是用于描述没有设定值的程序变量的术语
平台独立性 代码和平台无关系
pritnf 这是常见的LIBC函数
sandox sandbox是一种用来控制代码执行的结构。在sandbox中执行的代码不会影响外部系统。用户需要运行可变代码时,这种结构对安全是很有用的
shellcode 是执行shell的字节码。现在有了更广泛意思,可以定义一个成功exploit所执行的代码。
signed 有符号的
软件缺陷 。。。
SPI Service Provider Interface
SQL 结构化查询语言
堆栈 临时内存空间
Telnet 一种在端口23上工作的网络服务
虚拟机:虚拟机是一个可执行代码的平台的模拟软件。虚拟机允许代码执行,而不需要针对特定的硬件处理器对代码修改。这就使代码具有可移植性对平台具有独立性
安全:
0day 也被称为zero day,day zero。“O” day 和私人expoits。0day意味着一个漏洞在被公开发布前或当时,关于它的exploit已经被发布或使用
缓冲区溢出 当向一个已经分配的存储空间的缓冲区内复制多于该缓冲区处理能力的数据时,将发生
exploit 典型的exploit是一个小程序,通过使用该程序可以触发一个软件漏洞并未攻击者所利用
可利用的软件缺陷 所有漏洞都是可利用的,但不是所有的软件缺陷都是可利用的。
格式化字符串缺陷: 格式化字符通常在参数数量可变的函数中使用,例如printf,fprint和syslog函数。输出数据时,这些格式化字符串用于对数据进行适当的格式化。在一些情况下,如果格式化字符串没有被明确的定义,而用户有可以给函数输入数据,就可能使一个缓冲区被处理而得到对程序的控制
堆腐烂 堆溢出同城被更准确称为堆腐烂缺陷。
off-by-one 一个缓冲区大小被设置为n个字节,而一个应用程序却试图向缓冲区写入n+1字节,这是就会发生off-by-one缺陷
堆栈溢出 临时内存空间溢出
漏洞 漏洞是一个潜在的可被利用的缺陷。大部分有真实意义的漏洞只是特定的软件缺陷。但是逻辑错误也是漏洞。例如,缺少口令或允许空口令都是漏洞,而逻辑错误和设计错误并不是软件缺陷
邮件清单: