Как да напишем троянски (пример)

Как да напишем троянски (пример)

За програма, ние се нуждаем Visual C ++ версия по-висока от петата, и по-добре C ++,
част от Visual Studio .NET пакет. Създаване на празен работно място или разтвор (VS






.NET) и добавя две нови празен проект Win32
Заявление, сървъра и клиента. Веднага промяна на активния конфигурация
Освободете както на проекти. За да направите това, изберете съответния елемент в
Изграждане на менюто. Създаден? Добре, тогава се качи в настройките на проекта
(Кликнете с десния бутон върху името на проекта и изберете настройка), в
Линкер и го добавете към Object бар / библиотечни модули библиотека
vinsoka wsock32.lib. Без него, нашата програма няма да работи. Имайте предвид тези
действия трябва да държи с двата проекта - и на сървъра, и
клиента, тъй като те започват да използват мрежовите функции и
съответно нужда от мрежа, библиотека. Сега добавете в
Project Server нов CPP файл, и да започне.

ЗАПОЧНЕТЕ kodit
В самото начало на програмата трябва да включва заглавни файлове
(Header), която описва функциите, използвани от нас. без Хедър
Програмата ще ви даде облак от грешки и никога няма да работи. В този
случай имаме само един Heder - описание на мрежовите функции на
библиотека, ще добавя малко по-рано.
#include

С помощта на тези, че е изключително важно за размера на ред на програмата, ние
Ние изрежете всички излишъка от PE заглавието на нашите eheshnika и нека
компилатор, че вече имаме EntryPoint входната точка. Ако това не е
да, компилаторът вместо пишете ни функция до точката
влизане, пишат свои, огромен, и размера на програмата ще се увеличи 2-28
килограм. А забележима разлика? Но сега се усмихва, ако се опитате да стартирате
програма в режим на отстраняване на грешки, тя най-вероятно няма да работи.

#pragma коментар (линкер / обединяване: .rdata = .text)
# Pragma коментар (свръзка, / FILEALIGN: 512 /SECTION:.text, EWRX
/ IGNORE: 4078)
# Pragma коментар (линкер / ВЛИЗАНЕ: WinMain)

Тук стигаме до най-важното в програмата - функцията за входна точка
където контролът се прехвърля след стартиране. Тя има четири
параметър, нито един от които не се нуждаят, така че името
параметри не пишат, а аз пиша само техния вид.

Int WinAPI WinMain (HINSTANCE, HINSTANCE.LPSTFUnt)





След това с помощта на функциите на системния регистър, които пишем в
SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run си svezheskopirovanny
файл, който е бил натоварен на всяко стартиране на системата. Trojan е заредена и
Пригответе се за кръг отбрана (усмихва атака).

Най-накрая стигнахме до най-важната част от кода, без които
Trojan - това не е троянски кон. Сайтът отговорен за обмен на данни с жертвата
да се усмихваш. Както вероятно вече знаете от статиите Horrific'a, за
Използвайте winsoc функции ^ а първо трябва да се инициализира.
В ексклузивно само за тях, за да го направи със следния код:

ако (свързват (listetJ5ock, (LPSOCKADDR) -addr_Sock, sizegf (структура sockaddr)))
връщане 0;

Линия, че най-накрая да започнете да слушате до пристанището, което е, да го отворите
за съединения. За да бъдем точни, за една връзка. В първата
параметър се минава с променлива гнездо, които се отварят, а във втория
- броят на възможните връзки, ние имаме повече от един не е необходимо. Както и в
Дело C bind'OM, когато грешка забраните троянеца.
ако (слушам (listet_Sock, 1)) върне 0;

1) Изчакайте konnekta

2) Отнасяйте екипа

3) При грешка близки съществуващи връзки

4) kp.1 Връщане

Command ще бъде приета като низ, първият знак, който
-в действителност, избор на функция, а вторият - на сепаратора, всеки, а останалите -
Този аргумент, който ние предаваме функции на нашия троянски. Ето един пример
команда, изпратена от клиента: Здравейте. Trojan първо ще направи първите
два знака и да се провери, ако имаме функция възлага на м символ
(Y нас е предупредително съобщение). След това е необходимо, за още 126 герои и товари
нашата функция. Да има троянски в цикъла е получена от функцията Получ на
създадени данни два пъти след сокет връзка хакват Sock, първият
буфер 2 байта и 126. Във втория случай, ако данните не се
управлява, CommandLoop завършен командата почивка, гнездото ще бъде затворен и
сървърът ще чака връзка отново. Пишем повече троянски функции:
Ако първият знак м, след което се извършва функция MessageBox (0, Buf, хакнат
в отговор усмивка, 0), където Buf - това е нашият втори буфер.

Ако първият знак е, тогава Buf линия минава през cmd.exe в
параметрите / сек, тази функция се започна със следните параметри
ShellExecuteA (NULL, Oren, cmd.exe, buf_command, NULL, SW_H1DE),
където buf_command - това е нашата буфер с добавка на първия ред / сек. а
SW_HIDE показва, че жертвата не трябва да се разглежда възникващите
конзола. И последното, най-трудната, че функцията извършва изтегляне
файл от заразената машина. То се извършва, когато първият знак -
това е. Първо, той се отваря файла за четене само функция
QpateFile. А след това, ако файлът съществува на ринга изпраща 4096
байта на файла. Ако байта изпратен е по-малко, а след това е краят
файл и цикълът се прекъсва. Сигналът за клиента, че файлът е приключила,
ще прекъсне.

В ролята на клиента може да бъде всяка програма, която може да изпраща
пакет формат ни е дал на жертвата. За да имате сървър с skonnektitsya
и изпълнява напишете командата: изпрати (чорап, съм Нело, 128.0). Но точно
в случай, че аз написах клиент, който работи от командния ред, и,
идея, че е лесно да прехвърли на всяка платформа. Изпращането Троян Екип
извършва Client.exe екип [ПР на жертвата] [функция] [аргумент]
например: клиент 127.0.0.1 м Здравейте.