×÷Ϊϵͳ¹ÜÀíÔ±¡¢¿ª·¢ÈËÔ±ºÍ°²È«×¨¼Ò£¬ÎÒÃDz»¶ÏѰÇó¸ü¸ßЧ¡¢¸üÁé»îµÄ·½·¨À´¹ÜÀíºÍÀ©Õ¹LinuxϵͳµÄ¹¦ÄÜ
ÆäÖУ¬¡°Linux Hook Connect¡±×÷ΪһÖÖÇ¿´óµÄ»úÖÆ£¬ÎªÊµÏÖÕâһĿ±êÌṩÁËÎÞÏÞ¿ÉÄÜ
±¾ÎĽ«ÉîÈë̽ÌÖLinux Hook ConnectµÄ¸ÅÄî¡¢ÔÀí¡¢Ó¦Óó¡¾°¼°ÆäÔÚÏÖ´ú¼ÆËã»·¾³ÖеÄÖØÒª×÷Óã¬Ö¼ÔÚ˵·þÄúÈÏʶµ½ÕâÒ»»úÖÆµÄ¾Þ´óDZÁ¦
Ò»¡¢Linux Hook Connect£º¸ÅÄî½âÎö ¡°Hook¡±£¨¹³×Ó£©ÔÚ¼ÆËã»ú¿ÆÑ§ÖÐͨ³£Ö¸Ò»ÖÖÔÊÐíÓû§´úÂëÔÚÌØ¶¨Ê¼þ·¢Éúʱ²åÈë²¢Ö´ÐеĻúÖÆ
ÔÚLinuxϵͳÖУ¬Hook»úÖÆÊ¹µÃ¿ª·¢ÕßÄܹ»ÔÚÄں˻òÓû§¿Õ¼äµÄ¹Ø¼üµã²åÈë×Ô¶¨Òå´úÂ룬´Ó¶øÊµÏÖ¹¦ÄÜÀ©Õ¹¡¢¼à¿Ø»òÐÞ¸ÄϵͳÐÐΪµÄÄ¿µÄ
¶ø¡°Linux Hook Connect¡±ÔòÌØÖ¸ÔÚLinux»·¾³Ï£¬Í¨¹ýHook»úÖÆÊµÏÖ²»Í¬×é¼þ»ò·þÎñÖ®¼äµÄÁ¬½ÓÓë½»»¥£¬´Ó¶ø´ïµ½ÔöǿϵͳÐÔÄÜ¡¢ÌáÉý°²È«ÐÔ»òʵÏÖÌØ¶¨¹¦ÄܵÄÄ¿µÄ
Linux Hook ConnectµÄºËÐÄÔÚÓÚÆäÁé»îÐԺͿÉÀ©Õ¹ÐÔ
ËüÔÊÐí¿ª·¢ÕßÔÚ²»ÐÞ¸ÄÔÓÐϵͳ´úÂëµÄ»ù´¡ÉÏ£¬Í¨¹ý×¢²á¹³×Óº¯ÊýÀ´ÏìӦϵͳʼþ£¬Èç½ø³Ì´´½¨¡¢ÍøÂçÊý¾Ý°ü½ÓÊÕ¡¢Îļþ·ÃÎʵÈ
ÕâÖÖ»úÖÆ¼«´óµØ½µµÍÁËϵͳ¼¯³ÉµÄ¸´ÔÓ¶È£¬Ìá¸ßÁË´úÂëµÄ¸´ÓÃÐԺͿÉά»¤ÐÔ
¶þ¡¢¼¼ÊõÔÀíÓëʵÏÖ·½Ê½ Linux Hook ConnectµÄʵÏÖÒÀÀµÓÚ¶àÖÖ¼¼Êõ£¬°üÀ¨µ«²»ÏÞÓÚÄÚºËÄ£¿é£¨Kernel Modules£©¡¢ÏµÍ³µ÷ÓÃÀ¹½Ø£¨System Call Interception£©¡¢Óû§¿Õ¼ä¼à¿Ø¹¤¾ß£¨Èçstrace¡¢ltrace£©¡¢ÒÔ¼°»ùÓÚʼþÇý¶¯µÄ±à³Ì¿ò¼Ü£¨Èçinotify¡¢systemdµÄsocket activation£©
1.ÄÚºËÄ£¿é£ºÍ¨¹ý±àдºÍ¼ÓÔØÄÚºËÄ£¿é£¬¿ª·¢Õß¿ÉÒÔÖ±½ÓÔÚLinuxÄÚºËÖÐ×¢²á¹³×Óº¯Êý
ÕâЩº¯ÊýÄܹ»ÔÚÄÚºËʼþ£¨ÈçÖжϴ¦Àí¡¢ÏµÍ³µ÷ÓÃÖ´ÐÐǰºó£©·¢Éúʱ±»µ÷Óã¬ÊµÏֵײ㹦Ä͍ܵÖƺÍÀ©Õ¹
2.ϵͳµ÷ÓÃÀ¹½Ø£ºLinuxÌṩÁËÖîÈç`LD_PRELOAD`»·¾³±äÁ¿ºÍ`ptrace`ϵͳµ÷ÓõȻúÖÆ£¬ÔÊÐíÓû§¿Õ¼ä³ÌÐòÀ¹½ØºÍÐÞ¸ÄÆäËû³ÌÐòµÄϵͳµ÷ÓÃ
ͨ¹ýÕâÖÖ·½·¨£¬¿ÉÒÔÔÚ²»¸Ä±äÄ¿±ê³ÌÐòÔ´ÂëµÄÇé¿öÏ£¬ÊµÏÖ¶Ô³ÌÐòÐÐΪµÄ¼à¿ØºÍÐÞ¸Ä
3.Óû§¿Õ¼ä¼à¿Ø¹¤¾ß£º¹¤¾ßÈçstraceºÍltrace¿ÉÒÔ¸ú×ٺͼǼ³ÌÐòÖ´Ðйý³ÌÖе÷ÓõÄϵͳµ÷ÓúͿ⺯Êý£¬ËäÈ»ËüÃÇÖ÷ÒªÓÃÓÚµ÷ÊÔ£¬µ«ÔÚijЩ³¡¾°Ï£¬Ò²¿ÉÒÔ×÷ΪʵÏÖÌØ¶¨Hook¹¦Äܵĸ¨ÖúÊÖ¶Î
4.ʼþÇý¶¯±à³Ì£ºLinuxÄں˺ÍÐí¶àÓû§¿Õ¼ä¿âÌṩÁË»ùÓÚʼþÇý¶¯µÄ±à³Ì½Ó¿Ú£¬ÈçinotifyÓÃÓÚÎļþϵͳʼþµÄ¼à¿Ø£¬systemdµÄsocket activation»úÖÆÔòÔÊÐí·þÎñÔÚÌØ¶¨Ìõ¼þÂú×ãʱ±»×Ô¶¯Æô¶¯
ÕâЩ»úÖÆËäÈ»²»ÊÇ´«Í³ÒâÒåÉϵÄHook£¬µ«ËüÃÇͨ¹ýÒ첽ʼþ´¦ÀíµÄ·½Ê½£¬ÊµÏÖÁËÀàËÆHookµÄÁé»îÐÔºÍÏìÓ¦ÐÔ
Èý¡¢Ó¦Óó¡¾°ÓëÓÅÊÆ Linux Hook ConnectµÄÓ¦Óó¡¾°¹ã·º£¬¸²¸ÇÁËϵͳ¼à¿Ø¡¢ÐÔÄÜÓÅ»¯¡¢°²È«É󼯡¢×Ô¶¯»¯¹ÜÀíµÈ¶à¸ö·½Ãæ
1.ϵͳ¼à¿ØÓëÐÔÄܵ÷ÓÅ£ºÍ¨¹ýHook»úÖÆ£¬¿ÉÒÔʵʱ¼à¿ØCPU¡¢ÄÚ´æÊ¹ÓÃÇé¿ö£¬ÒÔ¼°ÍøÂçÁ÷Á¿µÈ¹Ø¼üÐÔÄÜÖ¸±ê£¬¼°Ê±·¢ÏÖ²¢½â¾öÐÔÄÜÆ¿¾±
ͬʱ£¬»¹¿ÉÒÔ¶ÔÌØ¶¨Ó¦ÓóÌÐòµÄÐÐΪ½øÐÐϸÖ·ÖÎö£¬ÓÅ»¯Æä×ÊԴʹÓÃЧÂÊ
2.°²È«Éó¼ÆÓë·À»¤£ºLinux Hook ConnectÔÚ°²È«ÁìÓòµÄÓ¦ÓÃÓÈΪͻ³ö
ͨ¹ýÀ¹½ØºÍ·ÖÎöϵͳµ÷Ó㬿ÉÒÔ¼ì²âµ½Ç±ÔڵĶñÒâÐÐΪ£¬ÈçδÊÚȨµÄÎļþ·ÃÎÊ¡¢ÍøÂçÊý¾Ý´«ÊäµÈ£¬¼°Ê±²ÉÈ¡·ÀÓù´ëÊ©
´ËÍ⣬½áºÏÈÕÖ¾¼Ç¼ºÍ±¨¾¯Ïµ