Linux Kernel Stack Overflow/Linux 内核栈溢出(续)
前面曾提到Linux 2.6.x内核在X86 32位架构上可以配置内核栈大小(在进行内核编译时,Kernel... [阅读更多]
前面曾提到Linux 2.6.x内核在X86 32位架构上可以配置内核栈大小(在进行内核编译时,Kernel... [阅读更多]
大体上看,ext4文件系统的磁盘布局与前面介绍的xfs有些类似,它同样是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块逻辑上合成多个group组,每个group组内的布局基本一致,除了第一个group组(即group... [阅读更多]
ext4提供有很多特性,当然有一些是前一代文件系统ext3本身就具有的,比如日志功能,但有时候我们却并不需要这些特性,则我们可以禁用它们。ext4文件系统的日志功能就是在牺牲一定性能的情况下增强稳定性的一种手段,但在一些情况,比如Web... [阅读更多]
reiserfs文件系统的磁盘布局比较简单,它把整块分区分成相同大小的block块,一个block块的大小默认是4K,而最大块数未2^32次方,即一个分区最大大小为16TB。 reiserfs文件系统分区的前64KB总是为分区标签(partition... [阅读更多]
关于Linux Slab的简单介绍就是一种对相同大小内存对象的分配与释放的优化管理机制。下面主要介绍如何查看Linux系统上Slab... [阅读更多]
不同于Linux应用程序的栈能够动态增长,Linux内核栈是固定的,并且比较小,比如Linux 2.6.x内核,在X86 32位架构上一般是4K或8K(在进行内核编译时,Kernel hacking下进行配置,默认8K),而在X86... [阅读更多]
关于ELF(Executable and Linking Format)文件格式的基本介绍无需多说,这里直接进入正题。ELF格式文件有好几种类型: 1,可重定位文件(Relocatable... [阅读更多]
Windows下有很多逆向工具,Linux下也有,当然,和Windows平台有所不同的是,Linux下的逆向工具主要是用来定位和分析程序的问题,比如当应用程序崩溃之后,如何从core文件里给出的信息查出原因所在。 曾经用过的一些命令如下(只列出主要功能): addr2line:根据一个代码地址,定位到对应的源文件与代码行。 nm:列出程序里的符号。 objdump:反汇编。 readelf:显示任何ELF格式目标文件里的相关符号信息。 等等。 #... [阅读更多]
关于Xfs文件系统磁盘布局结构的分析到此就算结束,经过一段时间的分析,Xfs在这方面主要设计基本已经了解,后面还有的磁盘布局,包括软链接、扩展属性等与前面的这些内容存放方式与布局并无多大差别,所以不准备继续写下去了,自己看一下即可。所有的文章内容主要依靠官方文档与实验简单验证而没有分析到具体的代码,所以很多细节可能被漏过,甚至还包含有错误,后续若看到后再进行文章修订。 后续仍会继续关注Xfs文件系统,当然,不再是磁盘布局这么基础的内容,而是会从它的一些特性上去去分析它是怎么设计的、代码怎么实现的、是否存在问题和是否可有改进等。 ... [阅读更多]