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

linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔؼ°½âÎö¹ý³Ì

http://hi.baidu.com/hust_chen/blog/item/54a8c516231d0c0ec93d6d3e.html
linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔؼ°½âÎö¹ý³Ì£¨ZZ£©
2008-12-18 15:19
±íÃæÉÏ¿´£¬¶¯Ì¬Á´½Ó¿â£¨dll£©µÄ¼ÓÔؼ°½âÎöÊÇÒ»¸öÊ®·Ö·±¸´µÄ¹ý³Ì£¬ÆäÖÐÇ£Éæµ½µÄÊý¾Ý½á¹¹¼°ÆäÖ®¼äµÄ¹ØϵҲÈÃÈËÍû¶øÉúη¡£Whatever£¬Ñ§Ï°Õâ ÊÂÇ飬˵µ½µ×ÊÇûÓнݾ¶¿É×ߵģ¬³ýÁËËÀ¿Ð½öÓеÄһЩ×ÊÁÏ£¬ÈçELF format¡¢Loaders and Linkers£¬½èÓÃobjdump¼°gdbÀ´¸ú×Ù³ÌÐòµÄÖ´ÐÐÁ÷³Ì£¬¶ÔÓÚÀí½â¹ý³ÌÒ²ÊÇÆÄÓаïÖúµÄ£¬anyway£¬²»ÏÓ·³¾ÍºÃÁË¡£
ÔÚ²»Í¬µÄÌåϵÏ£¬dllµÄ¼ÓÔؼ°½âÎö¹ý³ÌÊÇÓвî±ðµÄ£¬ÕâÊÇÒòΪ²»Í¬ÌåϵÏÂÉú³ÉµÄELFÎļþ²»¾¡Ïàͬ£¬Æ©Èç˵£¬ÔÚIA32Ï£¬»áÉú³É.pltÕâ¸ödynamic section£¬µ«µ½ÁËMIPSÏ£¬±ã³ÉÁË.MIPS.stubs¡£
¾¡¹ÜÈç´Ë£¬Åųý±íÃæÉϵIJîÒ죬Æä±¾ÖÊÈ´ÊÇÒ»Öµġ£ÏÈ˵˵ELFÎļþµÄformat£¬ELFʵÖÊÊÇ¿ÉÖ´ÐÐÎļþµÄÒ»ÖÖ¸ñʽ£¬¶ÔÓÚ»úÆ÷¶øÑÔ£¬ËùÓеĿÉÖ´ÐÐÎļþ²» ¹ýÊǶþ½øÖÆ´úÂëµÄÁ÷Ë®°ÕÁË£¬µ«ÎªÁË·½±ã¹ÜÀíÕâЩ¶þ½øÖÆ´úÂ룬±àÒëÆ÷±ã½«ÕâЩ»úÆ÷Âë·ÖΪ¼¸¸ö¶Î£¬²¢Í³¼Æ³öÏà¹ØµÄÐÅÏ¢£¬Í¨Ë×µØ˵£¬Ò²¾ÍÊǶԻúÆ÷Âë°ü×°°ü×°¶ø ÒÑ¡£Technically speaking, ÿ¸öELFÎļþ¶¼ÓÐÒ»¸öELF header£¬±£´æµÄÊÇprogram headerÓësection headerµÄÆ«ÒÆÁ¿¡£¹ØÓÚprogram headerÓësection header£¬ÒÔºóÔÙ˵ß¡£
Èç¹ûij¸öÎļþÊǶ¯Ì¬±àÒëµÄ£¬ÄÇôÆä¶ÔÓ¦µÄELFÎļþÖп϶¨»áÓÐÒ»¸ö.dynamic section£¬Õâ¸ösection°üº¬ÁËdllµÄ¼ÓÔØÓë½âÎöËùÐèÒªµÄÐÅÏ¢¡£.dynamicÖеÄentryÒòÀàÐͲ»Í¬¶ø±»¸³Ó費ͬµÄº¬Ò壬×îΪ³£ÓõÄÊÇÏÂÃ漸ÖÖÀàÐ͵Äentry£º
·DT_NEEDED£ºd_tag=1£¬d_valÖеÄֵΪneeded libraryµÄnameÔÚstring tableÖÐÆ«ÒÆÁ¿¡£Èç¹ûËùÐèÒª¶¯Ì¬¿âµÄÊýÁ¿Îªn¸ö£¬ÔòÏàÓ¦ÀàÐÍΪDT_NEEDEDµÄentryÒ²Ó¦¸ÃÓÐnÌõ£»
·DT_PLTGOT£ºd_tag=3£¬d_ptrÖеÄֵΪ.plt£¨procedure linkage table£©»ò.got£¨global offset table£©µÄÆðʼµØÖ·£¬ÔÚMIPSÌåϵÏ£¬Õâ¸öÖµÊÇÖ¸Ïò.gotµÄÆðʼµØÖ·£»
·DT_HASH£ºd_tab=4£¬d_ptrÖеÄֵΪhash tableµÄÆðʼµØÖ·£»
·DT_STRTAB£ºd_tab=5£¬d_ptrÖеÄֵΪstring tableµÄÆðʼµØÖ·£»
·DT_SYMTAB£ºd_tab=6£¬d_ptrÖеÄֵΪsymbol tableµÄÆðʼµØÖ·£»
·DT_RPATH£ºd_tab=15£¬d_valÖеÄֵΪneeded libraryËùÔڵķ¾¶Ãû³Æ£¨×¢£ºneeded library²»Ò»¶¨¾Í»áÔÚÕâ¸ö·¾¶Ï£¬detail²Î¼ûdllµÄ¼ÓÔعý³Ì£©ÔÚstring tableÖеÄÆðʼµØÖ·¡£
ÕâÀïÃæÇ£Éæµ½ÁËһЩÖØÒªµÄÊý¾Ý½á¹¹£º
(1) hash table£ºÆä×÷ÓÃÊǸù¾Ýsymbol nameÕ


Ïà¹ØÎĵµ£º

LinuxÉ豸Çý¶¯±à³ÌÖ®×èÈûÓë·Ç×èÈû

×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þÔÙ½øÐвÙ×÷¡£·Ç×èÈû²Ù×÷µÄ½ø³ÌÔÚ²»ÄܽøÐÐÉ豸²Ù×÷ʱ£¬²¢²»¹ÒÆð¡£±»¹ÒÆðµÄ½ø³Ì½øÈësleep״̬£¬±»´Óµ÷¶ÈÆ÷µÄÔËÐжÓÁÐÒÆ×ߣ¬Ö±µ½µÈ´ýµÄÌõ¼þ±»Âú×ã¡£
¡¡¡¡ÔÚLinux
¡¡¡¡¹ØÓÚÉÏÊöÀý³Ì£¬ÎÒÃDz¹³ä˵һµã£¬Èç¹û½«Çý¶¯³ÌÐòÖеÄreadº¯Êý¸ÄΪ£º
stat ......

linux½ø³Ì¿ØÖÆ£­execϵÁÐ

˵ÊÇexecϵͳµ÷Óã¬Êµ¼ÊÉÏÔÚLinuxÖУ¬²¢²»´æÔÚÒ»¸öexec()µÄº¯ÊýÐÎʽ£¬execÖ¸µÄÊÇÒ»×麯Êý£¬Ò»¹²ÓÐ6¸ö£¬·Ö±ðÊÇ£º




#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const c ......

Å̵ã2009£ºLinux·þÎñÆ÷Èí¼þ·¢Õ¹ÁÁµã¶à

Ó²¼þ¼¼ÊõÒ»Ö±ºÍÈí¼þ¼¼ÊõÏàÒÀÏàË棬Ëæ×Å·þÎñÆ÷Ó²¼þºÍоƬ¼¼ÊõµÄ½ø²½£¬Íƶ¯×Å·þÎñÆ÷²Ù×÷ϵͳ¼¼ÊõµÄ±ä¸ï¡£
¡¡¡¡Ð¾Æ¬¼¼ÊõµÄ·¢Õ¹£º´Óx86µ½Áúо
¡¡¡¡2009Ä꣬¸÷´óоƬ³§É̶¼ÍƳöÁ˶à¿îоƬ²úÆ·£ºÈçIntel¹«Ë¾»ùÓÚNehalem¼Ü¹¹·¢²¼µÄ×ÀÃæ¶ËоƬ²úÆ·¿áî£i7;AMD¹«Ë¾Ò²ÍƳöÁË»ù
ÓÚÐÂFioranoƽ̨µÄ´úºÅΪ“ÒÁ˹̹²¼¶û”µÄÁù ......

linux netstat ÃüÁî³£ÓÃÑ¡ÏîÏê½â

ת×Ô£ºhttp://hi.baidu.com/zhangdaoxie/blog/item/d9f49f4a991f412b08f7efff.html
NetstatÓÃÓÚÏÔʾÓëIP¡¢TCP¡¢UDPºÍICMPЭÒéÏà¹ØµÄͳ¼ÆÊý¾Ý£¬Ò»°ãÓÃÓÚ¼ìÑé±¾»ú¸÷¶Ë¿ÚµÄÍøÂçÁ¬½ÓÇé¿ö¡£
Èç¹ûÎÒÃǵļÆËã»úÓÐʱºò½ÓÊܵ½µÄÊý¾Ý±¨»áµ¼Ö³ö´íÊý¾Ýɾ³ý»ò¹ÊÕÏ£¬ÎÒÃDz»±Ø¸Ðµ½Ææ¹Ö£¬TCP/IP¿ÉÒÔÈÝÐíÕâЩÀàÐ͵ĴíÎ󣬲¢Äܹ»×Ô¶¯ÖØ·¢Êý ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ