最详细的黑客教程--第七部
第二十四章------关于UNIX/Linux
简略阐明:
UNIX/Linux无疑是比windows更汗青久长更精彩的OS。惋惜短少了一些“夷易近人”,让很多人望而却步。这里也不计划讲些什么,想学它的人不如从学习怎么找相关材料开端吧,呵呵。不外照旧建议初学者从WINDOWS动手比力好一些,而且按市占有率看,也应该多接触WINDOWS系统。固然抽空熟习一下U系统也是不错的选择,这里简略介绍大家一点材料。
相关材料:
rootkit综述 http://www.sixthroom.com/ailan/f ;... 3&RootID=332&ID=332
Linux 使用本领33条 http://www.sixthroom.com/ailan/f ;... 3&RootID=335&ID=335
Linux配置与优化履历谈 http://www.sixthroom.com/ailan/f ;... 3&RootID=337&ID=337
Unix**初学者引导 http://www.sixthroom.com/ailan/f ;... 3&RootID=336&ID=336
入侵UNIX http://www.sixthroom.com/ailan/f ;... 3&RootID=339&ID=339
相关网址:
蓝丛林 http://lslnet.com/linux/
Linux大本营 http://lydr.myrice.com/ ;
LINUX-AID技术支持中间 http://www.linuxaid.com.cn/
LINUX-NOW http://new.linuxnow.com/
台湾LINUX协会 http://www.linux.org.tw/
GNU的官方网站 http://www.gnu.org/
中国迷信技术大学Linux使用者协会
http://lug.ustc.edu.cn/
第二十五章------溢出
简略阐明:
溢出对我们这些小鸟们属于比力高级的玩意了。以是在这里也不准备多提,不然就违背了这篇文章写给初学者的初志了。
缓冲区溢出
缓冲区是内存中寄存数据的地方。在程序试图将数据放到计算机内存中的某一位置,但没有充足空间时会发生缓冲区溢出。
缓冲区是程序运转时计算机内存中的一个一连的块,它保存了给定范例的数据。问题随着静态分配变量而呈现。为了不消太多的内存,一个有静态分配变量的程序在程序运转时才决定给他们分配几多内存。要是程序在静态分配缓冲区放入太多的数据会有什么征象?它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方。单单的缓冲区溢出,并不会产生宁静问题。只有将溢出送到能够以root权限运转命令的区域才行。如许,一个缓冲区利用程序将能运转的指令放在了有root权限的内存中,从而一旦运转这些指令,就因而root权限控制了计算机。总结一下上面的描述。缓冲区溢出指的是一种系统攻击的本领,经过往程序的缓冲区写凌驾其长度的内容,形成缓冲区的溢出,从而破坏程序的货仓,使程序转而执行别的指令,以达到攻击的目的。据统计,经过缓冲区溢出举行的攻击占所有系统攻击总数的80%以上。形成缓冲区溢出的缘故原由是程序中没有仔细检查用户输入的参数。例如上面程序:?/P>
example0.c
-----------------------------------------------------------
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
-----------------------------------------------------------
上面的strcpy()将直接把str中的内容copy到buffer中。如许只要str的长度大于16,就会形成buffer的溢出,使程序运转出错。存在象strcpy如许的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf(),以及在循环内的getc(),fgetc(),getchar()等。在C语言中,静态变量是分配在数据段中的,静态变量是分配在货仓段的。缓冲区溢出是利用货仓段的溢出的。一个程序在内存中通常分为程序段,数据端和货仓三部门。程序段里放着程序的机器码和只读数据,这个段通常是只读,对它的写操纵是合法的。数据段放的是程序中的静态数据。静态数据则经过货仓来寄存。在内存中,它们的位置如下:
/――――――――\ 内存低端
|程序段|
|―――――――――|
|数据段|
|―――――――――|
|货仓|
\―――――――――/内存高端
货仓是内存中的一个一连的块。一个叫货仓指针的寄存器(SP)指向货仓的栈顶。货仓的底部是一个牢固地址。货仓有一个特点就是,后进先出。也就是说,后放入的数据第一个取出。它支持两个操纵,PUSH和POP。PUSH是将数据放到栈的顶端,POP是将栈顶的数据取出。在高级语言中,程序函数调用和函数中的临时变量都用到货仓。参数的传递和返回值是也用到了货仓。通常对部分变量的援用是经过给出它们对SP的偏移量来实现的。别的还有一个基址指针(FP,在Intel芯片中是BP),很多编译器实际上是用它来援用本地变量和参数的。通常,参数的相对FP的偏移是正的,部分变量是负的。当程序中发生函数调用时,计算机做如下操纵:首先把参数压入货仓;然后保存指令寄存器(IP)中的内容,做为返回地址(RET);第三个放入货仓的是基址寄存器(FP);然后把以后的栈指针(SP)拷贝到FP,做为新的基地址;末了为本地变量留出肯定空间,把SP减去得当的数值。
上面举个例子:
example1.c:
------------------------------------------------------------
void function(int a, int b, int c) {
char buffer1[5];
char buffer2[10];
}
void main() {
function(1,2,3);
}
-----------------------------------------------------------
为了明白程序是怎样调用函数function()的,使用-S选项,在Linux下,用gcc举行编译,产生汇编代码输入:
$ gcc -S -o example1.s example1.c
看看输入文件中调用函数的那部门:
pushl $3
pushl $2
pushl $1
call function
这就将3个参数压到货仓里了,并调用function()。指令call会将指令指针IP压入货仓。在返回时,RET要用到这个保存的IP。在函数中,第一要做的事是举行一些必要的处理。每个函数都必须有这些过程:
pushl %ebp
movl %esp,%ebp
subl $20,%esp
这几条指令将EBP,基址指针放入货仓。然后将以后SP拷贝到EBP。然后,为本地变量分配空间,并将它们的大小从SP里减失。由于内存分配因而字为单位的,因而,这里的buffer1用了8字节(2个字,一个字4字节)。Buffer2用了12字节(3个字)。以是这里将ESP减了20。如许,如今,货仓看起来应该是如许的。
低端内存高端内存
buffer2 buffer1 sfp ret a b c
< ------ [ ][ ][ ][ ][ ][ ][ ]
栈顶栈底
缓冲区溢出就是在一个缓冲区里写入过多的数据。那怎样利用呢,看
一下上面程序:
example2.c
-----------------------------------------------------------
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
void main() {
char large_string[256];
int i;
for( i = 0; i < 255; i++)
large_string = A;
function(large_string);
}
------------------------------------------------------------
这个程序是一个经典的缓冲区溢出编码错误。函数将一个字符串不经过界限检查,拷贝到另一内存区域。当调用函数function()时,货仓如下:
低内存端buffer sfp ret *str高内存端
< ------ [ ][ ][ ][ ]
栈顶栈底
很明显,程序执行的结果是"Segmentation fault (core dumped)"或类似的出错信息。由于从buffer开端的256个字节都将被*str的内容A覆盖,包括sfp, ret,乃至*str。A的十六进值为0x41,以是函数的返回地址酿成了0x41414141, 这凌驾了程序的地址空间,以是呈现段错误。可见,缓冲区溢出容许我们转变一个函数的返回地址。经过这种方式,可以转变程序的执行顺序。
由于是简略介绍给大家熟习一下,以是在这里不给出软件了,要是大家有必要的话,可以在附录中找到。
相关材料:
缓冲区溢出及其攻击 http://www.sixthroom.com/ailan/f ;... 3&RootID=312&ID=312
缓冲区溢出原理阐发 http://www.sixthroom.com/ailan/f ;... 3&RootID=313&ID=313
更多材料请到 www.sixthroom.com
----------------------------------------------
编号 0003
幸福和快乐是无限的由于神赐予是无限的。
痛苦是无限的,由于人本身承受的能力是无限的!
2003-10-30 17:33:10 手机短信
雪为何落
头衔:只身一辈子
品级:管理员
文章:218
积分:402
注册:2003-10-24
第6楼
第二十六章------OICQ
简略介绍
关于QQ我不想说什么了,一种既时通讯软件,上彀的人都知道。如今常见的问题,无非就是谁能给我个QQ?谁能帮我偷个QQ?我的QQ了,谁能帮我偷返来?怎样偷QQ?小我私家以为偷QQ这种事,是对**精神的一种凌辱,请不要在问这种问题,更不要问我这种问题,由于我对偷QQ的事特别讨厌。要是你的号码真的被偷了,哪也只能阐明你没宁静意识,你可以试试上面给出的地址,时间大概会慢一点,不外也只有等了,要是实在找不返来,哪也只能当做一个教导了。下次细致吧。必竟黑过来黑归去的没什么意思,好了,上面的地址是腾讯的办事区,有事就到哪里去吧:
相关网站
被盗号码申说 http://service.tencent.com/service/request.shtml
QQ密码掩护请求 http://service.tencent.com/reg/register.shtml
附录
关于常用工具的使用
- 文章作者: 福州军威计算机技术有限公司
军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。
TAG:
评论加载中...
|