62 ÎØÈÁÊÈ ÌÎËÎÄÎÑÒÈ ÑÏÅÖ 02-07áåçûãîëüíûåèíúåêòîðûÈíñòðóìåíòàðèé êîäåðà ýêñïëîéòîâ ïîä PerlÈÍÎÃÄÀ ÒÐÅÁÓÅÒÑß ÀÂÒÎÌÀÒÈÇÈÐÎÂÀÒÜ ÏÐÎÖÅÑÑ ÏÎÈÑÊÀ ÓßÇÂÈÌÎÑÒÈ ÈËÈ ÁÛÑÒÐÎÏÐÎÂÅÐÈÒÜ ÂÀÐÈÀÍÒÛ ÈÑÏÎËÜÇÎÂÀÍÈß ÊÀÊÎÃÎ-ËÈÁÎ ÍÅÄÎ×ÅÒÀ  ÊÎÄÅ. ÊÎÄÈÒÜÄËß ÊÀÆÄÎÃÎ ÒÀÊÎÃÎ ÑËÓ×Àß ÍÀ «ÑÈ» ÑËÈØÊÎÌ ÓÒÎÌÈÒÅËÜÍÎ È ÍÅÐÀÖÈÎÍÀËÜÍÎ. ÝÒÎÌ ÑËÓ×ÀÅ ÍÀÌ ÍÀ ÏÎÌÎÙÜ ÏÐÈÄÅÒ PERL, ÊÎÒÎÐÛÉ ÏÎÇÂÎËßÅÒ ÁÛÑÒÐÎ ÏÈÑÀÒÜÊÎÐÎÒÊÈÅ È ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÝÊÑÏËÎÉÒÛ.Insiderbrain_insider@mail.ruÝòà ñòàòüÿ íå ÿâëÿåòñÿ ðóêîâîäñòâîì ïî ïðîãðàììèðîâàíèþíà Perl, ðàâíî êàê è íå ÿâëÿåòñÿ ðóêîâîäñòâîìïî íàïèñàíèþ ýêñïëîéòîâ: â íåé ìû êîðîòêîðàññìîòðèì îñíîâíûå èíñòðóìåíòû, êîòîðûå ìîãóòäëÿ ýòîãî ïîòðåáîâàòüñÿ.Åñëè òû îïûòíûé ñåêüþðèòè-ñïåöèàëèñò è çíàåøü«÷òî ïî÷åì» â ìèðå ñåòåâîé áåçîïàñíîñòè, òîñëåäóþùèé àáçàö ìîæåøü ñìåëî ïðîïóñòèòü.  ñëó-÷àå æå, åñëè òû òîëüêî ïëàíèðóåøü ïðèñòóïèòü ê íàïèñàíèþñîáñòâåííûõ ýêñïëîéòîâ è ïîäûñêèâàåøüèíñòðóìåíòû, ÿ ïðåäñòàâëþ òâîåìó âíèìàíèþ îäèíòàêîé è îáîñíóþ, ÷åì è êàê îí ìîæåò áûòü ïîëåçåí.Äëÿ ÷òåíèÿ ýòîé ñòàòüè íåîáõîäèìû ëèøü áàçîâûåçíàíèÿ Perl, òàê ÷òî íå ñòîèò ïóãàòüñÿ, åñëè ýòîò ÿçûêòåáå íå çíàêîì. Ïðèìåðû ïðîñòû íàñòîëüêî, ÷òî,ïðè íàëè÷èè îïûòà ïðîãðàììèðîâàíèÿ íà ëþáîìäðóãîì ÿçûêå, òû ëåãêî ñìîæåøü â íèõ ðàçîáðàòüñÿ.À äëÿ íà÷àëà äàâàé âñïîìíèì, ÷òî æå òàêîåýêñïëîéò, êàê åãî ïèñàòü, è, ãëàâíîå, ÷åì íàì â ýòîìíåëåãêîì äåëå ìîæåò ïîìî÷ü Perl.Èòàê, ýêñïëîéò (exploit, àíãë.) â ïåðåâîäåc âðàæåñêîãî îçíà÷àåò «èñïîëüçîâàòü, ïîëüçîâàòüñÿ,ýêñïëóàòèðîâàòü».  íàøåì ñëó÷àå ìû ýêñïëóàòèðóåìóÿçâèìîñòè, íàéäåííûå â àòàêóåìîì ñîôòå.Òàêèì îáðàçîì, ýêñïëîéò — ýòî êîä, êîòîðûé ñîçäàåòóñëîâèÿ äëÿ èñïîëüçîâàíèÿ è èñïîëüçóåò íåêîòîðóþóÿçâèìîñòü â àòàêóåìîì ïðèëîæåíèè ñ íåêèìè,íåñîìíåííî çëîâåùèìè, öåëÿìè. ×òî æå ýòî ìîãóòáûòü çà öåëè? Äà êàêèå óãîäíî, íà÷èíàÿDoS-àòàêîé íà êëèåíòñêèé êîìïüþòåð è çàêàí÷èâàÿâûïîëíåíèåì çëîâðåäíîãî øåëë-êîäà íà ñåðâåðå.Ïîíÿòíî, ÷òî òèï ýêñïëîéòà çàâèñèò îò òèïà óÿçâèìîñòèè öåëåé, êîòîðûå ïðåñëåäóåò âçëîìùèê. Îäíàêîåñòü íàèáîëåå îáùèé êëàññ çàäà÷, â êîíòåêñòåêîòîðûõ ìû è ïðèãëÿäèìñÿ ê Perl.Íàèáîëåå ÷àñòî ïðèõîäèòñÿ ïèñàòü óäàëåííûåýêñïëîéòû, êîòîðûå íå ïîäðàçóìåâàþò íàëè÷èÿ ïðÿìîãîäîñòóïà ê öåëåâîé ìàøèíå, à èñïîëüçóþò ïðåäîñòàâëÿåìûéýòîé ìàøèíîé óäàëåííûé ñåðâèñ. ×òîíàì ìîæåò ïîòðåáîâàòüñÿ äëÿ íàïèñàíèÿ óäàëåííîãîýêñïëîéòà? Î÷åâèäíî, ìîäóëè, ïîçâîëÿþùèå ôîðìèðîâàòüñîåäèíåíèÿ íà âñåõ óðîâíÿõ ñòåêà ïðîòîêîëîâTCP/IP. Ïî÷åìó ÿ ðåêîìåíäóþ èñïîëüçîâàòü äëÿýòèõ öåëåé Perl? Perl, íà ìîé âçãëÿä, ÷ðåçâû÷àéíîïðîñò â îñâîåíèè. Äëÿ ÷åëîâåêà, çíàêîìîãî ñ Ñ/Ñ++,îñâîåíèå ñèíòàêñèñà Perl çàéìåò ìàêñèìóì äåíüäâà.Äëÿ ïðèìåðà, îäèí ìîé çíàêîìûé ;), êîãäà òîãîïîòðåáîâàëà ñèòóàöèÿ, îñâîèë îñíîâíûå èíñòðóìåíòûPerl è íàïèñàë ïåðâûé ñêðèïò íà 200-300 ñòðîêâ òå÷åíèå 10 ÷àñîâ. Íàäî çàìåòèòü, ÷òî îí îòíþäüíå ïîëèãëîò. Perl ÷ðåçâû÷àéíî ãèáîê è íå íàâÿçûâàåòêàêîé-òî êîíêðåòíûé ñòèëü ïðîãðàììèðîâàíèÿ.Åñòü Perl-ñêðèïòû, êîòîðûå ïðè ïîâåðõíîñòíîì ïðîñìîòðåñëîæíî îòëè÷èòü îò C, åñòü íàïèñàííûå â«ðîäíîì» äëÿ Perl ñêðèïòîâîì ñòèëå. Ñóùåñòâóåòìíîãî ñïîñîáîâ ñäåëàòü îäíî è òî æå, è äëÿ êàæäîéêîíêðåòíîé çàäà÷è òû âîëåí âûáèðàòü òîò èíñòðóìåíò,êîòîðûé òåáå ïðåäñòàâëÿåòñÿ ñàìûì ïîäõîäÿùèì— ýòî îñíîâíàÿ èäåîëîãèÿ Perl. Ìàëî òîãî, ïîêîëè÷åñòâó âîçìîæíîñòåé ýòî îäèí èç ñàìûõ áîãàòûõÿçûêîâ — îäíè ðåãóëÿðíûå âûðàæåíèÿ ÷åãî ñòîÿò.Ñëåäóåò îòìåòèòü, ÷òî íà Perl ìîæíî ïèñàòü î÷åíü êîðîòêèåè ïðè ýòîì ÷ðåçâû÷àéíî ôóíêöèîíàëüíûåñêðèïòû. Ïîìèìî ýòîãî, ÿçûê ïîçâîëÿåò ðàçâèâàòüíåõèëóþ ñêîðîñòü ðàçðàáîòêè, â ñðàâíåíèè ñ òåìæå C, îáëàäàÿ, êàê óæå áûëî ñêàçàíî, âïîëíå äîñòàòî÷íîéôóíêöèîíàëüíîñòüþ. Íàïðèìåð, ÿ, äà è íå ÿîäèí, ÷àñòî èñïîëüçóþ Perl äëÿ íàïèñàíèÿ ïðèêèäî÷íîãîìàêåòà áóäóùåé óòèëèòû. È êàê òîëüêî ñòàíîâèòñÿÿñíî, êàê ñëåäóåò îðãàíèçîâàòü êîä è êàêèåâîçìîæíû óçêèå ìåñòà, ìîæíî ïðèñòóïàòü ê ïåðåïèñûâàíèþêîäà íà êîìïèëèðóåìîì ÿçûêå (íàïðèìåð,Ñ), åñëè, êîíå÷íî, ñêîðîñòü âûïîëíåíèÿ ÿâëÿåòñÿêðèòè÷íîé. Àõ äà, ñîâñåì çàáûë: îñíîâíîé è ñàìûéæèðíûé áîíóñ Perl — ýòî ñêëàä ãîòîâûõ ðåøåíèé íàâñå ñëó÷àè æèçíè — CPAN (ïîäðîáíåé ÷èòàé íà âðåçêå).Åñëè âîçíèêàåò æåëàíèå íàïèñàòü «êàêóþ-íèáóäüïîëåçíóþ áèáëèîòå÷êó», òî ñ áîëüøîé âåðîÿòíîñòüþ÷òî-òî ïîäîáíîå óæå åñòü íà CPAN. Åùå Perlïîçâîëÿåò îñóùåñòâëÿòü ðàáîòó ñ ñèñòåìîé íà íèçêîìóðîâíå (ê ïðèìåðó, ðåàëèçîâàíà ðàáîòà ñ ñèñòåìíûìèâûçîâàìè è ñèãíàëàìè Unix, ÷òî ìîæåòáûòü êðàéíå ïîëåçíî ïðè íàïèñàíèè ýêñïëîéòîâ).
63Íó è, íàêîíåö, Perl îáëàäàåò íåèëëþçîðíîé ïåðåíîñèìîñòüþ,÷òî òàêæå ÷ðåçâû÷àéíî âàæíî. Åñëè âîçíèêíåòíåîáõîäèìîñòü çàïóñòèòü óäàëåííûéýêñïëîéò íà êàêîì-ëèáî øåëëå, ýòî ïîëó÷èòñÿ ïî÷òèíàâåðíÿêà, íåâçèðàÿ íà óñòàíîâëåííóþ íà øåëëåîïåðàöèîííóþ ñèñòåìó. Êîíå÷íî, åñëè êîä íå áóäåòîïèðàòüñÿ íà îñîáåííîñòè êîíêðåòíîé îïåðàöèîíêè,è íà íóæíîé íàì ìàøèíå áóäåò óñòàíîâëåí Perl-èíòåðïðåòàòîð.Îá îñîáåííîñòÿõ Perl ìîæíî ãîâîðèòüî÷åíü äîëãî, íî äàííàÿ ñòàòüÿ íåìíîãî íå îá ýòîì :). îáùåì, ÿ óâåðåí, ÷òî âñåì, êòî òîëüêî íà÷èíàåò ïèñàòüñâîè ýêñïëîéòû, ñòîèò ïîïðîáîâàòü äåëàòü ýòîíà Perl, êàê íà ñàìîì âûèãðûøíîì ïî ñîîòíîøåíèþ«çàòðàòû/ðåçóëüòàò» èíñòðóìåíòå.ïðîñòàÿ ðàáîòà ñ www. ×òî ìîæåò íàì â ïåðâóþî÷åðåäü ïîíàäîáèòüñÿ ïðè íàïèñàíèè óäàëåííîãîýêñïëîéòà íà web-èíòåðôåéñ? Êîíå÷íî æå, âîçìîæíîñòüôîðìèðîâàòü HTTP-çàïðîñû è îáðàáàòûâàòüîòâåòû. Íàïðèìåð, ïðè ðåàëèçàöèè ýêñïëîéòà,èñïîëüçóþùåãî SQL-èíúåêöèþ èëè ïåðåïîëíåíèåáóôåðà (äà è âîîáùå, ëþáóþ óÿçâèìîñòü, îñíîâàííóþíà íåäîñòàòî÷íîé ôèëüòðàöèè ïàðàìåòðîâ webñêðèïòîâ),ýòî, ôàêòè÷åñêè, åäèíñòâåííîå, ÷òî íàìïîíàäîáèòñÿ.Ïåðâàÿ áèáëèîòåêà, êîòîðàÿ íàì ïðèãîäèòñÿ —LWP (LWP — The World-Wide Web library for Perl).Ïî íàçâàíèþ óæå ïðèìåðíî ïîíÿòíî, ÷òî ñ ïîìîùüþýòîé áèáëèîòåêè ìîæíî ðàáîòàòü ñ www, è ñåé÷àñ ìûâûÿñíèì, êàê èìåííî ýòî äåëàåòñÿ. Èòàê, ýòà áèáëèîòåêàïðåäñòàâëÿåò ñîáîé íàáîð ìîäóëåé äëÿ ïðîñòîéðàáîòû ñ www: ñ åå ïîìîùüþ ìû ìîæåì ôîðìèðîâàòüçàïðîñû ê êàêèì óãîäíî ñòàíäàðòíûì ñåðâèñàì(ftp, http, file, smtp, etc.) è äàæå ïîñûëàòü e-mail'û.Îäíàêî íàäî ïîìíèòü, ÷òî ïðîâåðêà ïðàâèëüíîñòèçàïðîñîâ öåëèêîì ëîæèòñÿ íà íàñ, òàê êàê ñàì LWPìîäóëüíå ãàðàíòèðóåò, ÷òî, ïîñëàâ êðèâîé çàïðîñ íàêàêîé-ëèáî ñåðâåð, òû ïîëó÷èøü õîòü êàêîé-òî îòâåò.Ðàáîòà ýòîãî ìîäóëÿ îñíîâàíà íà HTTP-style ñîåäèíåíèè,òî åñòü ñîåäèíåíèè ïî òèïó «çàïðîñ-îòâåò».Ðàáîòàåò âñå ýòî î÷åíü ïðîñòî.  íà÷àëå ìû ôîðìèðóåìîáúåêò çàïðîñà HTTP::Request (íå ñòîèò ïóãàòüñÿóïîìèíàíèÿ ïðîòîêîëà HTTP â íàçâàíèè êëàññà —îí óêàçûâàåò íà èñïîëüçóåìóþ èäåîëîãèþ ñîåäèíåíèÿè íèêàê íå îãðàíè÷èâàåò èõ âîçìîæíûé òèï), ïîñëå÷åãî ïåðåäàåì åãî â ìåòîä request êëàññàLWP::UserAgent, êîòîðûé ïðåäñòàâëÿåò ñîáîé èíòåðôåéñ,ñêðûâàþùèé âñþ íèçêîóðîâíåâóþ ðàáîòóñ ñåòüþ è âîçâðàùàþùèé îòâåò â âèäå îáúåêòàHTTP::Response. Ñàì ïî ñåáå îáúåêò LWP::UserAgentñîäåðæèò ìíîãî àòðèáóòîâ, êîòîðûå êîíôèãóðèðóþòåãî âçàèìîäåéñòâèå ñ ñåòüþ.  ÷àñòíîñòè, ïðè ðàáîòåñ HTTP íåêîòîðûå àòðèáóòû âñòðàèâàþòñÿâ HTTP-çàãîëîâîê. Ðàññìîòðèì îñíîâíûå àòðèáóòûîáúåêòà HTTP::Request:— METHOD — ÑÒÐÎÊÀ,ÈÄÅÍÒÈÔÈÖÈÐÓÞÙÀß ÒÈÏ ÇÀÏÐÎÑÀ(ÍÀÈÁÎËÅÅ ×ÀÑÒÎ ÈÑÏÎËÜÇÓÞÒÑßPOST, GET, PUT È Ò.Ä.).— URI (UNIFORM RESOURCE IDENTIFIER) —ÑÒÐÎÊÀ, ÑÎÄÅÐÆÀÙÀß ÏÐÎÒÎÊÎË,ÑÅÐÂÅÐ È ÈÌß ÇÀÏÐÀØÈÂÀÅÌÎÃΫÄÎÊÓÌÅÍÒÀ», ÊÎÒÎÐÀß ÌÎÆÅÒÑÎÄÅÐÆÀÒÜ È ÄÐÓÃÈÅ ÏÀÐÀÌÅÒÐÛ,ÎÁÐÀÁÀÒÛÂÀÅÌÛÅ ÑÅÐÂÅÐÎÌ,ÍÀÏÐÈÌÅÐ, «HTTP:://MEGASITING.EE:-8080/SCRIPT.CGI?PARAM=PAM&PAM=PAM».— HEADERS —  ÎÁÙÅÌ ÑËÓ×ÀÅ —ÄÎÏÎËÍÈÒÅËÜÍÀß ÈÍÔÎÐÌÀÖÈßÎ ÇÀÏÐÎÑÅ Â ÂÈÄÅ ÏÀЫÊËÞ×-ÇÍÀ×ÅÍÈÅ».  ÑËÓ×ÀÅHTTP-ÑÎÅÄÈÅÍÈß — ÏÀÐÀÌÅÒÐÛÇÀÃÎËÎÂÊÀ.— CONTENT — ÄÀÍÍÛÅ, ÅÑËÈ ÎÍÈÍÅÎÁÕÎÄÈÌÛ.ÎÒÂÅÒ ÑÅÐÂÅÐÀ, ÊÀÊ ÓÆÅ ÁÛËÎÓÏÎÌßÍÓÒÎ — ÝÒÎ ÎÁÚÅÊÒHTTP::RESPONSE, ÑÎÄÅÐÆÀÙÈÉÑËÅÄÓÞÙÈÅ ÏÀÐÀÌÅÒÐÛ, ÄÎÑÒÓÏÍÛÅÑ ÏÎÌÎÙÜÞ ÎÄÍÎÈÌÅÍÍÛÕ ÌÅÒÎÄÎÂ:1 CODE — ÊÎÄ ÎÒÂÅÒÀ ÑÅÐÂÅÐÀ (200 —ÂÑÅ ÍÎÐÌÀËÜÍÎ, 404 — FILENOT FOUND, 500 — ÎØÈÁÊÀÏÐÈ ÎÁÐÀÁÎÒÊÅ ÑÊÐÈÏÒÀ…);2 MESSAGE — ÊÐÀÒÊÎÅ ÏÎßÑÍÅÍÈÅ ÊÎÄÀÂÎÇÂÐÀÒÀ ( ÓÄÎÁÎ×ÈÒÀÅÌÎÉ ÔÎÐÌÅ);3 HEADERS — ÏÀÐÀÌÅÒÐÛ ÇÀÃÎËÎÂÊÀÎÒÂÅÒÀ.  ÎÁÙÅÌ ÑËÓ×ÀÅ — ÎÏÈÑÀÍÈÅÊÎÍÒÅÍÒÀ;4 CONTENT — ÑÎÁÑÒÂÅÍÍÎ, ÄÀÍÍÛÅ.Ïðîäåìîíñòðèðóåì, êàê âñå ýòî ðàáîòàåò íà ïðèìåðåäîñòóïà ê HTTP-ñåðâåðó (ëèñòèíã 1).Êàê ìû âèäèì, âñå î÷åíü ïðîñòî.  ïåðâîé ñòðî÷êåìû ïîäêëþ÷àåì ìîäóëü LWP::UserAgent, ïîñëå ÷åãîñîçäàåì íîâûé îáúåêò. Íàäî çàìåòèòü, ÷òî êîíñòðóêòîðûâ Perl îáû÷íî ïîíèìàþò ãèáêèé íàáîð ïàðàìåòðîâ.Ýòî ñâÿçàíî ñ îñîáåííîñòÿìè ðåàëèçàöèè ÎÎ-ïîäõîäàè ñïîñîáîì ïåðåäà÷è ïàðàìåòðîâ â ìåòîäû êëàññà (ìûíå áóäåì óãëóáëÿòüñÿ â ýòó òåìó â ðàìêàõ äàííîéñòàòüè, òàê êàê îíà òÿíåò íà îòäåëüíûé ñïåö-âûïóñê).Íàïðèìåð, LWP::UserAgent ìîæåò ïðèíèìàòü â êà÷åñòâåïàðàìåòðîâ ïóñòîé ñïèñîê èëè íàáîð èç ïàð «êëþ÷çíà÷åíèå»:LWP::UserAgent->new(from!'pupkin@gov.no',agent->'MyMegaMailSender/2.5.7', …) # ïðè ôîðìèðîâàíèèSMTP-çàïðîñà. òðåòüåé ñòðîêå ïðèâåäåííîãî ëèñòèíãàìû ìåíÿåì îäèí èç àòðèáóòîâ çàïðîñà — agent, êîòîðûéñëóæèò äëÿ èäåíòèôèêàöèè íàøåãî ïðèëîæåíèÿ. ñëó÷àå HTTP-çàïðîñà, ýòîò àòðèáóò âñòðà-CPAN (ComprehensivePerl Archive Network)CPAN (COMPREHENSIVE PERL ARCHIVENETWORK) — ÝÒÎ ÎÃÐÎÌÍÛÉ ÀÐÕÈÂÂÑÅÂÎÇÌÎÆÍÎÃÎ ÑÎÔÒÀ ÍÀ PERL È ÄÎ-ÊÓÌÅÍÒÀÖÈÈ Ê ÍÅÌÓ, ÊÎÒÎÐÛÉ ÐÀÑÏÎ-ËÀÃÀÅÒÑß ÏÎ ÀÄÐÅÑÓ CPAN.ORG. ÑÒÐÀ-ÍÈÖÀ SEARCH.CPAN.ORG — ÑÀÌÀß ÏÎ-ÑÅÙÀÅÌÀß ÑÒÐÀÍÈÖÀ WEB-ÐÀÇÐÀÁÎÒ-×ÈÊÀ, ÈÑÏÎËÜÇÓÞÙÅÃÎ Â ÑÂÎÅÉ ÐÀÁÎ-ÒÅ PERL. ÎÍÀ ÑÎÄÅÐÆÈÒ ÂÑÞ ÍÅÎÁÕÎ-ÄÈÌÓÞ ÄÎÊÓÌÅÍÒÀÖÈÞ ÏÎ ÑÒÀÍÄÀÐÒ-ÍÛÌ ÂÎÇÌÎÆÍÎÑÒßÌ PERL È ÍÅÂÅÐÎßÒÍÓÞÊÓ×Ó ÂÑÅÂÎÇÌÎÆÍÛÕ ÃÎÒÎÂÛÕÐÅØÅÍÈÉ, ÊÎÒÎÐÛÅ ÎÁÛ×ÍÎ ÕÎÐÎØÎÄÎÊÓÌÅÍÒÈÐÎÂÀÍÛ. ËÈ×ÍÎ Ó ÌÅÍß ÎÁ-ÄÓÌÛÂÀÍÈÅ ÊÀÊÎÉ-ËÈÁÎ ÇÀÄÀ×È ÍÀ-×ÈÍÀÅÒÑß Ñ ÏÎÕÎÄÀ ÍÀ CPAN.ORGÈ ÏÎÈÑÊÀ ÑÎÎÒÂÅÒÑÒÂÓÞÙÈÕ ÌÎÄÓ-ËÅÉ. ×ÀÙÅ ÂÑÅÃÎ ÍÓÆÍÛÅ ÌÍÅ ÌÎÄÓ-ËÈ ÍÀÕÎÄßÒÑß, ×ÒÎ Î×ÅÍÜ, Î×ÅÍÜÑÈËÜÍÎ ÝÊÎÍÎÌÈÒ ÂÐÅÌß, ÊÎÒÎÐÎÅ,ÊÀÊ ÈÇÂÅÑÒÍÎ — ÄÅÍÜÃÈ. ÏÎ ØÈÐÎÊÎÐÀÑÏÐÎÑÒÐÀÍÅÍÍÎÌÓ ÌÍÅÍÈÞ,CPAN — ÝÒÎ ÅÄÈÍÑÒÂÅÍÍÀß ÑÒÐÀÍÈÖÀ,ÊÎÒÎÐÀß ÍÓÆÍÀ ÄËß ÏÎËÍÎÖÅÍÍÎÉÐÀÁÎÒÛ Ñ PERL. ÄÎÁÀÂÈÒÜ ÑÂÎÉ ÌÎ-ÄÓËÜ Â ÝÒÎÒ ÀÐÕÈ ÌÎÆÅÒ ÊÒÎ ÓÃÎÄ-ÍÎ, ×ÒÎ ÏÎÌÈÌÎ ÍÅÑÎÌÍÅÍÍÛÕ ÁËÀÃÏÎÐÎÆÄÀÅÒ È ÐßÄ ÏÐÎÁËÅÌ. ÈÑÏÎËÜ-ÇÓß ÌÎÄÓËÈ, ÑÊÀ×ÀÍÍÛÅ Ñ CPAN,ÒÛ ÄÅÉÑÒÂÓÅØÜ ÍÀ ÑÂÎÉ ÑÒÐÀÕÈ ÐÈÑÊ, ÈÁÎ ÎÍÈ ÏÎÑÒÀÂËßÞÒÑß ÁÅÇÊÀÊÈÕ ËÈÁÎ ÃÀÐÀÍÒÈÉ. ×ÀÑÒÎ ÁÛÂÀÅÒÒÀÊ, ×ÒÎ ÝÒÈ ÌÎÄÓËÈ ÏÐÎÑÒÎ-ÍÀÏÐÎ-ÑÒÎ ÍÅ ÐÀÁÎÒÀÞÒ. ÍÎ ÂÑÅ-ÒÀÊÈ ÇÍÀ×È-ÒÅËÜÍÎ ÁÎËÜØÅ ÒÅÕ, ÊÎÒÎÐÛÅ ÐÀÁÎ-ÒÀÞÒ ÍÎÐÌÀËÜÍÎ. ×ÒÎÁÛ ÎÖÅÍÈÒÜÌÎÙÜ ÝÒÎÃÎ ÀÐÕÈÂÀ, ÏÐÅÄËÀÃÀÞ ÒÅÁÅÇÀÉÒÈ ÍÀ SEARCH.CPAN.ORG È ÏÎÏÐÎ-ÁÎÂÀÒÜ ÒÀÊÈÅ ÇÀÏÐÎÑÛ, ÊÀÊ «WWW»,«NET», «RSS» È ÒÀÊ ÄÀËÅÅ. ÄÓÌÀÞ,ÒÛ ÁÓÄÅØÜ ÓÄÈÂËÅÍ ÎÁÈËÈÅÌ ÏÐÅÄ-ËÀÃÀÅÌÛÕ ÐÅØÅÍÈÉ. ÁÅÇÓÑËÎÂÍÎ,CPAN — ÝÒÎ ÎÄÈÍ ÈÇ ÑÀÌÛÕ ÂÅÑÎÌÛÕÏËÞÑΠPERL, ÊÎÒÎÐÛÉ ÏÎÄÎÃÐÅÂÀÅÒËÞÁÎÂÜ ÅÃÎ ÏÎÊËÎÍÍÈÊÎÂ.