Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux systemº¯ÊýʹÓÃÏê½â £¨zz from nodeadbird520£©


Ïà¹Øº¯Êý
fork£¬execve£¬waitpid£¬popen
±íÍ·Îļþ
££i nclude<stdlib.h>
¶¨Ò庯Êý
int system(const char * string);
º¯Êý˵Ã÷
system()
»áµ÷ÓÃfork()²úÉú×Ó½ø³Ì£¬ÓÉ×Ó½ø³ÌÀ´µ÷ÓÃ/bin/sh-c
stringÀ´Ö´ÐвÎÊýstring×Ö·û´®Ëù´ú±íµÄÃüÁ´ËÃü>ÁîÖ´ÐÐÍêºóËæ¼´·µ»ØÔ­µ÷ÓõĽø³Ì¡£ÔÚµ÷ÓÃsystem()ÆÚ¼äSIGCHLD
ÐźŻᱻÔÝʱ¸éÖã¬SIGINTºÍSIGQUIT ÐźÅÔò»á±»ºöÂÔ¡£
·µ»ØÖµ
=-1:³öÏÖ´íÎó  
=0:µ÷Óóɹ¦µ«ÊÇûÓгöÏÖ×Ó½ø³Ì  
>0:³É¹¦Í˳öµÄ×Ó½ø³ÌµÄid
Èç
¹ûsystem()ÔÚµ÷ÓÃ/bin/shʱʧ°ÜÔò·µ»Ø127£¬ÆäËûʧ°ÜÔ­Òò·µ»Ø-1¡£Èô²ÎÊýstringΪ¿ÕÖ¸Õë(NULL)£¬Ôò·µ»Ø·ÇÁãÖµ>¡£
Èç¹ûsystem()µ÷Óóɹ¦Ôò×îºó»á·µ»ØÖ´ÐÐshellÃüÁîºóµÄ·µ»ØÖµ£¬µ«ÊÇ´Ë·µ»ØÖµÒ²ÓпÉÄÜΪ
system()µ÷ÓÃ/bin/shʧ°ÜËù·µ»ØµÄ127£¬Òò´Ë×îºÃÄÜÔÙ¼ì²éerrno À´È·ÈÏÖ´Ðгɹ¦¡£
¸½¼Ó˵Ã÷
ÔÚ±àд¾ßÓÐSUID/SGIDȨÏ޵ijÌÐòʱÇëÎðʹÓÃsystem()£¬system()»á¼Ì³Ð»·¾³±äÁ¿£¬Í¨¹ý»·¾³±äÁ¿¿ÉÄÜ»áÔì³Éϵͳ°²È«µÄÎÊÌâ¡£
·¶Àý
££i nclude<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
Ö´Ðнá¹û£º
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado
Àý2£º
char tmp[];
sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev);
system(tmp);
ÆäÖÐdevÊÇ/dev/sda1¡£
 
systemÔ´Âë
#include
#include
#include
#include
int system(const char * cmdstring)
{
    pid_t pid;
    int status;
    if(cmdstring == NULL){
         
         return (1);
    }
    if((pid = fork())<0){
            status = -1;
    }
    else if(pid == 0){
        execl("/bin/sh", "sh", "-c", cmdstring, (char *)0);
        -exit(127); //×Ó½ø³ÌÕý³£Ö´ÐÐÔò²»»áÖ´ÐдËÓï¾ä
        }
    else{
            while(waitpid(pid, &sta


Ïà¹ØÎĵµ£º

linuxÏÂvim+ctagsÓ÷¨


[/home/brimmer/src]$ ctags -R
"
-R"±íʾµÝ¹é´´½¨£¬Ò²¾Í°üÀ¨Ô´´úÂë¸ùĿ¼ÏµÄËùÓÐ×ÓĿ¼ÏµÄÔ´³ÌÐò¡£"
tags"ÎļþÖаüÀ¨ÕâЩ¶ÔÏóµÄÁÐ±í£º
l        
ÓÃ
#define¶¨ÒåµÄºê
l        
ö¾ÙÐͱäÁ¿µÄÖµ
l  ......

linux²Ù×÷ϵͳ°²×°ÃüÁî

1 ºìñ
rpm  -ivh °²×°
         -e   ɾ³ý
         -u  Éý¼¶
         -q  ²éѯ
2 ubuntu
deb dpkg -i °²×°
       &n ......

Ïê½âUnix/Linux ShellµÄÊäÈëÊä³ö

      ShellµÄI/OÓï·¨ÄÑÒÔÀí½â£¬¸üÄÑÒÔÕýȷʹÓá£ShellµÄÊäÈëÊä³öÓï·¨ÓÐÁ½¸öÄÑµã£ºÖØ¶¨ÏòºÍÎļþÃèÊö·û¡£ÎÒÒÔǰ¶ÔShell I/OµÄÀí½âÒ²ÓдíÎó¡£×î½üÖØÐÂÕûÀí˼·£¬¾ö¶¨Ð´Ò»ÆªÎÄÕÂÀ´×ܽáI/OÖØ¶¨Ïò¡£
      ÏȽéÉܼ¸¸ö»ù±¾¸ÅÄî:
1£©Îļþ(File)£ºÔÚUnix/LinuxÖУ¬ÎļþÀàÐÍÓÐÆ ......

linuxÄÚºËcryto½Ó¿ÚµÄʵÏÖÒÔ¼°ÓëopensslµÄ±È½Ï

linuxÄÚºËʵÏÖÁËcrypto½Ó¿Ú£¬ÓÃÓÚÀàËÆIPSecÖ®ÀàÒªÔÚÄÚºËÖÐʵÏÖµÄÓë²Ù×÷ϵͳ°ó¶¨µÄ°²È«»úÖÆ£¬Èç¹û²»ÊÇÓÃÓÚÕâÑùµÄ»úÖÆ£¬²»ÒªÊ¹ÓÃÄÚºËÖеÄcrypto½Ó¿Ú£¬×ܵÄÀ´Ëµ£¬linuxµÄcryptoÖÐ×îÖØÒªµÄ½á¹¹ÌåÓÐÁ½¸ö£ºcrypto_tfmºÍcrypto_alg
struct crypto_tfm {
    u32 crt_flags;
    union {
 & ......

linux ÏÂc ³ÌÐò ¶Î´íÎó ·ÖÎö

fopen("/var/spool/cron/tmp","w+");
/////////////////////////////////////////
££i nclude <sys/types.h>
££i nclude <sys/stat.h>
££i nclude <fcntl.h>
££i nclude <unistd.h>
££i nclude <stdio.h>
££i nclude <string.h>
££i nclude <stdlib.h>
int main(){
in ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ