
GNU/Linux
文章平均质量分 62
X-Wyatt
For free 邮箱whitezhangv5@gmail.com
展开
-
X86_64架构下的LINUX缓冲区溢出栈分析
缓冲区溢出基础:#include #include int main(int argc, char *argv[]) { char str[10]; strcpy(str, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); return 0;}这里strcpy的时候,字符长度超出了str所允许的长度,发生了溢出。当我们运行这个代码的时候,程序原创 2012-11-17 01:28:58 · 1882 阅读 · 0 评论 -
Linux 引导启动程序(boot)
主要描述 boot/目录中的三个汇编代码文件,见列表 3-1 所示。正如在前一章中提到的,这三个 文件虽然都是汇编程序,但却使用了两种语法格式。bootsect.s 和 setup.s 采用近似于 Intel 的汇编语言语法,需要使用 Intel 8086 汇编编译器和连接器 as86 和ld86,而 head.s 则使用 GNU 的汇编程序格式,并且运行在保护模式下,需要用 GNU 的 as转载 2013-01-02 19:55:57 · 636 阅读 · 0 评论 -
Linux 内核系统体系结构
Linux 内核主要由 5 个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。进程调度模块用来负责控制进程对 CPU 资源的使用。所采取的调度策略是各进程能够公平合理地访问 CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得 Linux 支转载 2012-12-31 16:24:00 · 493 阅读 · 0 评论 -
进程的用户栈和内核栈
进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,而进程则相当于剧本的一次演出,舞台、灯光则相当于进程的运行环境。进程的堆栈每个进程都有自己的堆栈,内核在创建一个新的进程时,在创建进程控制块task_struct的同时,也为进程创建自己堆栈。一个进程 有2个堆栈,用户堆栈和系统堆栈;用户堆栈的空间指向用户地址空间,内核堆栈的空间指向内核地址空间。当进程在用户态运行时,C转载 2013-01-02 21:41:14 · 519 阅读 · 0 评论 -
Linux0.11内核--内核态与用户态
内核态与用户态intel x86 架构的 CPU 分 Ring0-Ring3 三种级别的运行模式,Ring0级别最高,Ring3 最低。 针对不同的 级别,有很多的限制,比如说传统的 in ,out 指令,就是端口的输入输出指令,在 Ring0 级下是可以用的,但在 Ring3 级下就不能用,你用就产生陷井,告诉你出错了,当然限制还有很多了,不只是这一点。转载 2013-01-02 21:55:12 · 589 阅读 · 0 评论 -
Linux0.11内核--内存组织和进程结构
进程结构Linux0.11中的每个进程都有如下的结构:在gdt中占有两项,一项是tss段描述符,一项是ldt段描述符。在task数组中占有一项,指向一页物理内存,该物理内存低端是进程控制块task_struct(里面包括tss段和ldt段),其余部分是进程的内核态堆栈。在页目录表和页表中设置有相关项。Linux0.11中,最多只有64个进转载 2013-01-02 20:00:22 · 1555 阅读 · 0 评论 -
Linux内核栈结构浅析
kernel模块代码创建一个进程的时候,都会由系统分配一个PCB,当进程结束的时候系统又会去回收这个PCB。在Linux中,这个PCB在哪里呢?首先我们来看下内核栈的结构:X86 Linux内核栈定义如下在/include/linux/sched.h中定义了如下一个联合结构:union task_union { struct task_struct task;原创 2013-01-03 10:33:52 · 707 阅读 · 0 评论 -
Linux启动设置以及系统修复
Linux启动流程计算机启动时,首先进行固件操作firmware(CMOS/BIOS,CMOS是固化在硬件上的程序,BIOS是操作CMOS的管理控制程序),加电自检,即是检测硬件是否连接正常固件结束之后,将会读取硬盘上的数据,这里首先读取是MBR(Master boot record),其中MBR包括Bootloader(自举程序),Partition table(磁盘分区表),Magic原创 2013-01-04 23:26:44 · 984 阅读 · 0 评论 -
Linux ShellCode远程攻击原理
这里就以exit 系统调用为例首先编写C代码,在GDB中使用 disass _exit 反汇编exit 函数,之后迁移为汇编代码。section .textglobal _start_start:xor eax, eaxxor ebx, ebxmov al, 0x01int 0x80之后只用如下nasm 进行汇编, ld 进行连接,生成可执行文件nasm -f elf原创 2013-02-27 23:29:55 · 1998 阅读 · 0 评论 -
OpenSSH构建SSH服务器
SSH 文件配置有如下几个文件:[root@sample ~]# vi /etc/ssh/sshd_config ← 用vi打开SSH的配置文件#Protocol 2,1 ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许SSH2方式的连接 ↓Protocol 2 ← 修改后变为此状态,仅使用SSH2#ServerKeyBits 768 ← 找到这一行,将行原创 2013-02-26 20:16:43 · 549 阅读 · 0 评论 -
FTP服务器构建
这里只介绍用 vsfptd,如需看ProFTPD,请出门右转[root@localhost ~]# yum -y install vsftpd之后就可以用 service 启动了[root@localhost ~]# service vsftpd start配置文件 /etc/vsftpd/vsftpd.conf用户管理:adduser -d原创 2013-02-26 21:43:32 · 545 阅读 · 0 评论 -
Linux各种压缩包解压总结
压缩包类型很多,今天用的时候又忘记了一部分,所以在这里做个总结了tgz包:gzip -dv *.tgztar包:tar xvf *.tartar.gz包:tar -zxvf *tar.gzzip包:unzip *.ziprpm包:rpm2cpio *.rpm | cpio -div如果只要看内容的话:rpm -qp原创 2013-03-10 21:36:54 · 790 阅读 · 0 评论 -
CentOS部署Snort
操作系统:CentOS6.3 x86_64只需按照以下网址依次下载软件包,然后安装即可需要安装的组件:1.Libpcap:http://www.tcpdump.org/wget http://www.tcpdump.org/release/libpcap-1.2.1.tar.gztar xvf libpcap-1.2.1.tar.gz原创 2013-03-10 21:45:00 · 9847 阅读 · 0 评论 -
BackTrack 5 Wicd不能连接无线网络的解决办法
今天刚装上BT5 (Gnome 32),在使用wicd连接无线网络的时候总是连接失败(偶尔成功过)。 问题具体情况: 我的无线网络是WPA2的,首先在终端输入/ect/init.d/wicd start,然后在Application中打开wicd network manager,找到我要连接的SSID,点击Properties,在Use Encryption中选择WPA1/转载 2013-03-29 15:05:55 · 5998 阅读 · 2 评论 -
Snort配置rules问题
1.ERROR: parser.c(5047) Could not stat dynamic module path "/usr/local/lib/snort_dynamicengine/libsf_engine.so": No such file or directory.Fatal Error, Quitting.. 原因:没有找到/usr/local/lib/sno原创 2013-03-16 16:54:59 · 6139 阅读 · 0 评论 -
Linux一些重要的头文件
1.系统调用 ---文件的操作函数#inlclude int open(char *name,int how) 文件打开#include int close(int fd) 文件关闭size_t read(int fd,void *buf, size_t count) 读size_t write(int fd,c转载 2013-07-05 20:33:23 · 10573 阅读 · 0 评论 -
编写操作系统1(用户态进程)
(只放出部分代码)用户态进程:我在这里只创建了两个进程 tty1 和 tty2 ,并且tty1 相当于 grome界面(我没写,只是放出来以作为区别)。tty1登录的时候需要读取文件,由于我把 tty.c 文件放在了另一个文件夹,所以在用 fopen() 相对路径打开文件的时候出现了路径错误的问题,这里的路径起始位置是以入口 main 所存在的目录为相对路径的起始点,不然永远都打不原创 2012-10-30 18:53:47 · 917 阅读 · 0 评论 -
CentOS下mysql.tar.gz的安装及启动
由于利用 yum install mysql 下载安装发生错误,所以只能下载tar.gz包或者rpm包进行安装,这里我下载的是tar.gz包下载完成后先解压:tar zvxf mysql-5.5.10-linux2.6-x86_64.tar.gz然后移动到 /usr/local下mv mysql-5.5.10-linux2.6-x86_64 /usr/locl/mysq原创 2012-11-15 11:30:24 · 17212 阅读 · 1 评论 -
Ubuntu Rhythmbox 乱码问题
首先,需要有软件包mid3iconv。如果你的系统中没有安装它,可以通过如下代码自动安装:sudo apt-get install python-mutagen 然后转到你的MP3目录,执行以全命令进行转换:mid3iconv -e GBK *.mp3 如果需要包含子目录,可以将后缀改成如下格式:打命令的时候文件名字给 "*/*.mp3" 就行了。比如mid3iconv -e GBK转载 2012-09-29 20:06:31 · 417 阅读 · 0 评论 -
CentOS 无法识别NTFS问题
首先下载 ntfs-3g http://www.tuxera.com/community/ntfs-3g-download/解压tar xzfv ntfs-3g_ntfsprogs-2012.1.15.tgz安装cd ntfs-3g_ntfsprogs-2012.1.15 ; ./configure && make && make install &&make clean原创 2012-10-24 00:29:35 · 3890 阅读 · 0 评论 -
BT5无法启动图形界面问题
通过U盘已经可以正常引导BT5,但是执行startx启动桌面环境时发生黑屏死机的错误。我的电脑是Ideapad y460a,显卡是Intel的集成显卡,启动X环境导致黑屏死机的原因不明,强行关机后查看/var/log/Xorg.0.log得到的只有空文件。经过反复试验,得出了如下解决方法:首先,执行下面的命令,可以得到xorg.conf.newXorg -configure将x转载 2012-11-12 19:11:50 · 8970 阅读 · 8 评论 -
OJ_Judge端判题
这仅仅只是单个进程的代码,比较简单(离真正的开发还有着很大的差距),代码如下:#include #include #define ERROR -1#define OJ_WA -2#define OJ_RE -3#define OJ_AC -4#define OJ_CE -5#define BUFFER_SIZE 30int execute_cmd(char*原创 2012-11-12 00:30:22 · 2161 阅读 · 0 评论 -
Linux网络设置问题
ifconfig是传统的GNU/Linux下的网络配置工具。只需执行ifconfig就可以看到当前系统已经启动的网卡。其中lo是回环设备,指代本机,eth开头的是有线以太网设备,wlan开头的是无线网络设备,usb是android usb猫,ppp是PPP协议的猫(比如pppoe设备)。 ifconfig配置网络环境可以执行如下指令:ifconfig eth0 192.168.1.1原创 2012-11-12 23:56:44 · 1218 阅读 · 0 评论 -
Snort文本处理源代码
attack.conf 配置文件:sqlinfo.conf 配置文件:MYSQL_LOCALHOST = 127.0.0.1MYSQL_NAME = rootMYSQL_PWD = ******MYSQL_DBNAME = snortMYSQL_TABLE = securityevent st.sh 启动脚本:#!/bin/shkill -9 `ps -ef原创 2013-07-23 21:37:19 · 968 阅读 · 0 评论