À´Ô´£ºSolidot
°²È«Ñо¿ÈËÔ±Hector Marco·¢²¼¹«²¼ÁËÕë¶Ô64λLinuxÄں˵ÄASLR·À»¤µÄÈÆ¹ý£¬slideºÍÂÛÎÄÌá ¹©ÏÂÔØ£¬ÕâÖÖ¹¥»÷±»³ÆÎªoffset2lib£¬ASLRµÄʵÏÖÊÇÔÚLinuxÄÚºËÀ¶øÔÚGNU/Linux·¢ÐаæÉϼÓÔØÒ»¸öÓ¦ÓóÌÐòµ½ÄÚ´æÖлáÏÈÕÒÒ»¸ö Ëæ»úµÄµØÖ·¼ÓÔØµÚÒ»¸ö¹²Ïí¿â£¬Ö®ºó¼ÓÔØµÄ¹²Ïí¿â½ô¸ú֮ǰ¼ÓÔØ¶ÔÏóµÄµØÖ·£¬Ò»¸öÄÚ´æµØÖ·µÄй©¾Í×ã¹»ÈõØÖ·Ëæ»ú»¯±äµÃÎÞÓã¬ÉõÖÁGOT(Global Offset Table)µÄµØÖ·Ð¹Â©¶¼²»ÊDZØÐëµÄ£¬ÓÉÓڴ󲿷ֵÄGNU/Linux·¢Ðа棨³ýÁËÏñGentooÕâÖÖÿ¸öÔ´Âë°ü¶¼ÐèÒª×Ô¼º±àÒ룩µÄ°ü¶¼ÊÇÔ¤±àÒëµÄ¶þ½øÖÆ Îļþ£¬ËùÒÔÕâЩ·¢ÐаæµÄoffset¶¼ÊÇÒ»ÑùµÄ¡£×÷ÕßµÄPOCÖÐÊÇÇáËɵÄÈÆ¹ýÁËNX(stackÉϲ»ÔÊÐíÖ´ÐÐ)£¬ASLR£¨µØÖ·Ëæ»ú»¯£©+PIE(Õë¶Ô´ú Âë¶ÎµÄËæ»ú»¯)£¬SSP£¨Ñ¹Õ»³öÕ»¼ì²âÊÇ·ñ±»Ð޸ĵÄcanary£©µÄ×éºÏ·ÀÓù£¬offset2lib¹¥»÷ÎªÈÆ¹ýÆÕͨµÄGNU/LinuxÕë¶Ô©¶´µÄÕûÌå·ÀÓù¸øÒÔÁËÖÂÃüµÄÒ»»÷¡£
Õâ´Îoffset2libµÄÆØ¹âÒýÆðÁË0ld sch00lºÚ¿ÍÉçÇøµÄ¹ã·ºÌÖÂÛ£¬¶àÄêÀ´LinuxÄں˿ª·¢ÕßÉçÇøµÄ×Ô´óÊǵ¼ÖÂÕâÖ̶ֳȹ¥»÷µÄÖ÷ÒªÔÒò£¬¶àÄêÀ´µÄ¡°ÐÞÐÞ²¹²¹¡±Ê½µÄ·ÀÓùÉè¼ÆÔÚÒ»Ò¹Ö®¼ä¾ÓÈ» ±ÀÀ£µôÁË£¬ÉõÖÁÓÐÈË»³ÒÉÕâЩÀ´×Ô¡°ÉϹš±Ê±´úµÄ·ÀÓù´úÂë½ñÌìÊÇ·ñ»¹ÓÐÈ˼ǵÃ...ËäÈ»offset2lib¹¥»÷ÔÚĿǰµÄÄں˴úÂëÀï±È½ÏÈÝÒ×ÐÞ¸´£¬µ«Äã¸ù±¾ ²»ÖªµÀÏñNSAÖ®ÀàµÄÇ鱨²¿ÃÅÊÇ·ñÒѾ©¶´ÀûÓùý£¿ ÓÐȤµÄÊÇÕâÖÖ¹¥»÷·½Ê½¶ÔÓÚGrsecurity/PaXÎÞЧ£¬Grsecurity/PaXÔçÔÚ13ÄêǰµÄʵÏÖ¾ÍÒѾ¶Å¾øÁËÕâÖÖ¹¥»÷µÄ¿ÉÄÜÐÔ£¬²»ÐÒµÄÊÇÖ»ÓÐGentooºÍDebian MempoÌṩÁËÖ±½ÓʹÓÃGrsecurity/PaXµÄ;¾¶¡£µ±È»£¬ÎªÊ²Ã´LinuxÄÚºËÉçÇøÒ»Ö±³Ï®Grsecurity/PaX¶ø²»ÈÃËü½øÈëÖ÷¸É»òÐíÊǸöÉçÇøÕþÖÎÎÊÌ⣬µ«³µÄÀÃÒ²Êǵ¼ÖÂÕâ´Î¹¥»÷µÄÖ÷ÒªÔÒò¡£
btw£ºËµÆÕͨµÄGNU/Linux°²È«ÊÇÏà¶ÔÓÚWindows¶øÑÔ¡£ "