ÑÞÕÃ’ëÕ àÞÑÞâë:
ÑÞÕÃ’ëÕ àÞÑÞâë:
ÑÞÕÃ’ëÕ àÞÑÞâë:
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