12.04.2014 Views

БОЕВЫЕ РОБОТЫ:

БОЕВЫЕ РОБОТЫ:

БОЕВЫЕ РОБОТЫ:

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Ñ/C++<br />

Ïèøåì ñâîåãî òðîÿíà<br />

«Â ÷åì ñåêðåò íàñòîÿùåãî òðîÿíà íà C++?» – ñïðîñèøü òû Îòíþäü íå â<br />

ôóíêöèîíàëüíîñòè, êàê ìîãëè áû ïîäóìàòü ìíîãèå, à â åãî ðàçìåðå!<br />

Ïî÷åìó òðîÿí ëó÷øå ïèñàòü íà Ñ++, à, ñêàæåì, íå íà Delphi èëè Visual<br />

Basic? Äà ïîòîìó, ÷òî, ñêîëüêî áû íå áûëî ñïîðîâ ìåæäó ñè è äåëüôè<br />

êîäåðàìè, âñå ðàâíî íà äåëüôÿõ òðîÿí ðàçìåðîì â 2êá íå íàïèøåøü À<br />

êàê íàïèñàòü íà ñÿõ, ÿ ñåé÷àñ ïîêàæó<br />

GorluM (gorlum@xakepru)<br />

Ïî ñóòè, òðîÿí - ýòî î÷åíü ïðîñòàÿ êëèåíò-ñåðâåðíàÿ ïðîãðàììà Ñåðâåð,<br />

çàïóùåííûé íà ìàøèíå æåðòâû, êîïèðóåò ñåáÿ â äèðåêòîðèþ %SYSTEM%,<br />

äîáàâëÿåò çàïèñü â ðååñòð, ÷òîáû òðîÿí âûïîëíÿëñÿ ïðè ñòàðòå ôîðòî÷åê<br />

Ïîòîì òðîÿí îòêðûâàåò ëþáîé ïîðò è æäåò, ïîêà õàêåð ïðèêîííåêòèòñÿ ê íåìó<br />

êëèåíòîì Êëèåíò ïîñûëàåò êàêîé-òî ïàêåò, ïðè ïðèåìå êîòîðîãî ñåðâåð<br />

âûïîëíÿåò îïðåäåëåííóþ ôóíêöèþ Ó íàñ ýòèõ ôóíêöèé â òðîÿíå áóäåò òðè:<br />

âûâîä ñîîáùåíèÿ, çàïóñê ïðîãðàììû è, íàïðèìåð, download ôàéëà ñ ìàøèíû<br />

æåðòâû Ëþáûå äîïîëíèòåëüíûå ôóíêöèè òû ñìîæåøü áåç îñîáîãî òðóäà<br />

äîáàâèòü ñàì ïîñëå ïðî÷òåíèÿ ñòàòüè Ñîáñòâåííî, íàø ïðîãà - ýòî ñàìûé<br />

ïðèìèòèâíûé òðîÿí, êîòîðûé òû ñìîæåøü àïãðåéäèòü äî òåõ ïîð, ïîêà îí íå<br />

wsock32lib Áåç íåå íàøà ïðîãðàììà íå áóäåò ðàáîòàòü Çàìåòü, ýòè äåéñòâèÿ<br />

íóæíî ïðîâåñòè ñ îáîèìè ïðîåêòàìè - è ñ ñåðâåðîì, è ñ êëèåíòîì, òàê êàê îíè îáà<br />

áóäóò èñïîëüçîâàòü ñåòåâûå ôóíêöèè è ñîîòâåòñòâåííî íóæäàòüñÿ â ñåòåâîé<br />

áèáëèîòåêå Òåïåðü äîáàâëÿé â ïðîåêò-ñåðâåð íîâûé cpp ôàéë, è íà÷íåì<br />

Íà÷èíàåì êîäèòü<br />

 ñàìîì íà÷àëå ïðîãðàììû ìû äîëæíû âêëþ÷èòü çàãîëîâî÷íûå ôàéëû (õèäåðû),<br />

â êîòîðûõ îïèñàíû ôóíêöèè èñïîëüçóåìûå íàìè Áåç õèäåðîâ ïðîãðàììà âûäàñò<br />

òåáå òó÷ó îøèáîê è íèêîãäà íå çàðàáîòàåò  äàííîì ñëó÷àå ó íàñ òîëüêî îäèí<br />

õèäåð - îïèñûâàþùèé ñåòåâûå ôóíêöèè, èç áèáëèîòåêè, êîòîðóþ ìû äîáàâèëè<br />

÷óòü ðàíüøå<br />

#include <br />

Ñ ïîìîùüþ ñëåäóþùèõ, êðàéíå âàæíûõ äëÿ ðàçìåðà ïðîãðàììû ñòðîê, ìû<br />

âûðåæåì âñå ëèøíåå èç PE-çàãîëîâêà íàøåãî exeøíèêà, à òàêæå ñîîáùèì<br />

êîìïèëÿòîðó, ÷òî ó íàñ óæå åñòü EntryPoint, òî÷êà âõîäà Åñëè ýòîãî íå ñäåëàòü, òî<br />

êîìïèëÿòîð âìåñòî òîãî, ÷òîáû âïèñàòü íàøó ôóíêöèþ â òî÷êó âõîäà, íàïèøåò<br />

ñâîþ, îãðîìíóþ, è ðàçìåð ïðîãðàììû âûðàñòåò èç 2 äî 28 êèëî Çàìåòíàÿ<br />

ðàçíèöà? =) Íî åñëè òû òåïåðü ïîïûòàåøüñÿ çàïóñòèòü ïðîãó â ðåæèìå îòëàäêè,<br />

îíà, ñêîðåå âñåãî, íå çàðàáîòàåò<br />

#pragma comment(linker,»/MERGE:rdata=text»)<br />

#pragma comment(linker,»/FILEALIGN:512 /SECTION:text,EWRX<br />

/IGNORE:4078»)<br />

#pragma comment(linker,»/ENTRY:WinMain»)<br />

À âîò ÷òî áûâàåò, åñëè íå äîáàâèòü âèíñîê<br />

Âîò ìû è ïîäîøëè ê ñàìîìó ãëàâíîìó â ïðîãðàììå - òî÷êå âõîäà, ôóíêöèè<br />

êîòîðîé ïåðåäàåòñÿ óïðàâëåíèå ïîñëå çàïóñêà Ó íåå ñóùåñòâóåò ÷åòûðå<br />

ñòàíåò êàðäèíàëüíî îòëè÷àòüñÿ îò îïèñàííîãî íèæå Íî ðàçìåð âñå ðàâíî<br />

îñòàíåòñÿ î÷åíü íåáîëüøèì 2ÊÁ Âñåãî 2êá áóäåò âåñèòü ñåðâåð íàøåãî<br />

òðîÿíà Ýòîãî ìû äîáüåìñÿ çà ñ÷åò òîãî, ÷òî ïèñàòü åãî áóäåì íà ÷èñòîì àïè,<br />

íå èñïîëüçóÿ íèêàêèõ âñòðîåííûõ â C++ áèáëèîòåê (mfc, vcl, etc), à<br />

êîìïèëÿòîðó ñêàæåì, ÷òîáû îí ñòåð âñå ëèøíåå èç PE-çàãîëîâêà ôàéëà<br />

Îáû÷íî ýòî âûïîëíÿþò âñÿêèå óòèëèòû òèïà PECompact, íî íå òàê<br />

êà÷åñòâåííî, êàê ñàì ñè<br />

Ïðîåêò - òðîÿí<br />

Äëÿ ïðîãè íàì ïîíàäîáèòñÿ Visual C++ âåðñèè âûøå ïÿòîé, à ëó÷øå Ñ++,<br />

âõîäÿùèé â êîìïëåêò Visual Studio NET, êîòîðóþ áåç ïðîáëåì ìîæíî êóïèòü ó<br />

ëþáîãî ïèðàòà Ñîçäàåì blank workspace èëè solution (â VS NET) è äîáàâëÿåì â<br />

íåãî äâà íîâûõ ïóñòûõ(!) ïðîåêòà Win32 Application, ñåðâåð è êëèåíò Òîò÷àñ æå<br />

ìåíÿåì àêòèâíóþ êîíôèãóðàöèþ îáîèõ ïðîåêòîâ íà Release Äëÿ ýòîãî âûáåðè<br />

ñîîòâåòñòâóþùèé ïóíêò â ìåíþ Build Ñîçäàë? Îòëè÷íî, òåïåðü çàëåçåì â<br />

íàñòðîéêó ïðîåêòîâ (êëèêíè ïðàâîé êíîïêîé ìûøêè íà èìåíè ïðîåêòà è âûáåðè<br />

Setting), â Linker è äîáàâèì òàì ê ñòðîêå Object/library modules áèáëèîòåêó âèíñîêà<br />

Äîáàâëÿåì wsock32lib<br />

87

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!