dll определяется антивирусом.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
dll определяется антивирусом. - 2008-03-12 14:33:41.123333
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
Хм, подскажите, я тут написал программу для себя, она использует dll (тоже собственного написания), дак вот в чём проблема: когда я компилирую dll'ку она сохраняется на диск и тут же ловится антивирусом как вирус =( Я видимо там какие-то функции использовал, которые антивирус распознает как подозрительные. Вопрос вот в чём: т.к. отказаться от этой dll'ки я не могу и все функции в ней мне нужны может можно как-нибудь её запаковать/зашифровать, а в теле основной программы не просто подгружать, а предварительно распаковав/расшифровав (не на HDD чтоб антивирус не ловил, а в самой программе)? Буду благодарен если подскажете реализацию этого дела или хотя бы в каком направлении копать!
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 14:40:37.226666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
А если со статической линковкой? .EXE будет как вирь ловиться? И что за антивирус, и как именно определяет? На основе исходных данных - написать инсталлятор (или загрузчик), который прибивает антивирь ;), перед тем, как распаковывать библиотеку.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 14:48:06.703333
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
quote:
ORIGINAL: _SaZ_ А если со статической линковкой? .EXE будет как вирь ловиться? И что за антивирус, и как именно определяет? На основе исходных данных - написать инсталлятор (или загрузчик), который прибивает антивирь ;), перед тем, как распаковывать библиотеку. Что за статическая линковка? Сама программа не ловится как вирус, ловится только dll от использования которой я отказаться не могу. Антивирус - касперский, но дело в том, что если он ловит, то и другие будут ловить, а я хочу эту прогу распространять, т.е. надо это убить. Определяет как Troyan.win32.delf.ar. Вопрос остаётся: как запаковать/зашифровать (пусть даже отдельно от дельфи) чтоб потом в дельфи распаковать/расшифровать?
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 14:52:20.800000
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
Ещё: nod32 определяет как: win32/Spy.Delf.IP троян
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 15:05:02.096666
|
|
|
vvviperrr
Сообщений: 301
Оценки: 0
Присоединился: 2007-03-20 21:33:16.790000
|
2dogged дллка случаем не прячет процесс из диспетчера?))
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 15:05:37.113333
|
|
|
bodrillo
Сообщений: 26
Оценки: 0
Присоединился: 2007-12-31 00:18:47.243333
|
Запаковать дллку в тело программы можно. Например самое простое в ресурсах. Но при распаковке также спалится. Проще заксорить полезный код, а при инициализации библиотеки вызывать процедуру которая этот код расшифрует. Если добавить в начало процедуры длинный цикл то эвристик обломается. Только проактивная защита скорей всего полюбому будет ругаться. А вырубить каспера это гемор тот еще. Он за собой может всю систему уронить.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 16:09:14.123333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Статическая линковка - это когда ты процедуры хранишь не во внешней динамически подключаемой библиотеке (dynamic linked library), а непосредственно в своём коде. Но я так понял ты используешь чужую либу, исходников которой у тебя естесственно нет. bodrillo правильно подсказал. Гугли, ищи структуру .dll файла, шифруй код процедур (тем же ксором). А при загрузке .dll, когда получишь адрес функции - повтори процедуру. Правда задача не из лёгких ;), пригодится ф-я VirtualProtect.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 16:15:22.256666
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
quote:
ORIGINAL: vvviperrr 2dogged дллка случаем не прячет процесс из диспетчера?)) нет не прячет. Она работает с вводом с клавиатуры и видимо определяется как клавиатурный шпион.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 16:24:44.376666
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
quote:
ORIGINAL: _SaZ_ Статическая линковка - это когда ты процедуры хранишь не во внешней динамически подключаемой библиотеке (dynamic linked library), а непосредственно в своём коде. Но я так понял ты используешь чужую либу, исходников которой у тебя естесственно нет. bodrillo правильно подсказал. Гугли, ищи структуру .dll файла, шифруй код процедур (тем же ксором). А при загрузке .dll, когда получишь адрес функции - повтори процедуру. Правда задача не из лёгких ;), пригодится ф-я VirtualProtect. исходники как раз есть, ситуация такая что я бы и рад обойтись без длл, да не смогу мне кажется. А вот ксор меня заинтересовал. Я подгужаю библиотеку через loadlibrary, даю ей в качестве параметра путь к библиотеке и получаю хандл. А про распаковку из ресурсов верно сказали- пробовал, ловится сразу антивирусом после извлечения.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 16:53:48.020000
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
То есть мне просто взять и написать програмку которая побайтно прогонит готовую длл через ксор? Как мне ее тогда потом подгружать? Ошибку же выдаст. :noob:
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 17:00:02.650000
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
Думаю кстати что статическая линковка не поможет, наоборот антивирусом будет ловиться уже сама программа а не длл, какие функции понадобятся ксорить функции если известны их адреса и кстати как эти адреса получить? Я обращаюсь к функциям по их именам. :слабо понимаю в адресах и динамических библиотеках:
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 17:00:52.810000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Сам noob. Читай внимательно: шифруй исполняемый код процедур. Естесственно заголовок самой .dll должен остаться прежним.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 17:11:04.913333
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
quote:
ORIGINAL: _SaZ_ Сам noob. Читай внимательно: шифруй исполняемый код процедур. Естесственно заголовок самой .dll должен остаться прежним. ок спасибо порою в этом направлении. А нубом я себя называл :-)
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 17:16:24.966666
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
Еще вопрос. Существуют программы которые сжимают ехе и длл, если такой программой сжать ее, не выйдет? И тут еще заикались про дринный цикл в начале расшифровщика, что именно имелось ввиду?
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 18:13:11.706666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Сорри за нуба ;). Насчёт программ-упаковщиков - кури ASPack. Цикл вначале функции - это чтобы обмануть эврестический анализатор кода.
|
|
|
RE: dll определяется антивирусом. - 2008-03-12 18:55:06.943333
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
quote:
ORIGINAL: dogged Хм, подскажите, я тут написал программу для себя, она использует dll (тоже собственного написания), дак вот в чём проблема: когда я компилирую dll'ку она сохраняется на диск и тут же ловится антивирусом как вирус =( Я видимо там какие-то функции использовал, которые антивирус распознает как подозрительные. Вопрос вот в чём: т.к. отказаться от этой dll'ки я не могу и все функции в ней мне нужны может можно как-нибудь её запаковать/зашифровать, а в теле основной программы не просто подгружать, а предварительно распаковав/расшифровав (не на HDD чтоб антивирус не ловил, а в самой программе)? Буду благодарен если подскажете реализацию этого дела или хотя бы в каком направлении копать! Обьявляеш глобальную переменную например a:integer; потом в процедурах пишеш такую вот воду: a:=1;if a= 1 then a:= 2; и тому подобное…после нескольких таких бредовых махинаций…она перестанет определяться
|
|
|
RE: dll определяется антивирусом. - 2008-03-13 04:01:40.240000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
На чём основаны такие доводы?
|
|
|
RE: dll определяется антивирусом. - 2008-03-13 12:04:17.970000
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
quote:
ORIGINAL: _SaZ_ На чём основаны такие доводы? На личном опыте
|
|
|
RE: dll определяется антивирусом. - 2008-03-13 14:30:40.463333
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
Вообщем результаты. Упаковщик не помог, забил в одну из функций длл в самое начало 500 строк как советовал флиер, все проканало! Щас закину на вирустотал, посмотрим что выйдет.
|
|
|
RE: dll определяется антивирусом. - 2008-03-13 19:00:18.370000
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
quote:
ORIGINAL: dogged Вообщем результаты. Упаковщик не помог, забил в одну из функций длл в самое начало 500 строк как советовал флиер, все проканало! Щас закину на вирустотал, посмотрим что выйдет. ФЛАЕР….:) и от "+" не откажусь
|
|
|
RE: dll определяется антивирусом. - 2008-03-13 20:20:26.900000
|
|
|
RasenHerz
Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
|
quote:
Вообщем результаты. Упаковщик не помог, забил в одну из функций длл в самое начало 500 строк как советовал флиер, все проканало! Щас закину на вирустотал, посмотрим что выйдет. 500 то зачем? =) можно было бы и обойтись 25-70 (сам проверял =))) для пущей уверенности отруби в компиляторе какие-либо оптимизации, а то. к примеру компилятор С++(в большинстве случаев) с включенной оптимизацией сделал бы из всего этого просто: a += 500; (при условии что ты действовал так a:=1;if a= 1 then a:= 2). создатели компиляторов не зря деньги получают за свою работу =)
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 08:37:41.476666
|
|
|
dogged
Сообщений: 12
Оценки: 0
Присоединился: 2006-03-07 21:03:58
|
quote:
ORIGINAL: RasenHerz quote:
Вообщем результаты. Упаковщик не помог, забил в одну из функций длл в самое начало 500 строк как советовал флиер, все проканало! Щас закину на вирустотал, посмотрим что выйдет. 500 то зачем? =) можно было бы и обойтись 25-70 (сам проверял =))) для пущей уверенности отруби в компиляторе какие-либо оптимизации, а то. к примеру компилятор С++(в большинстве случаев) с включенной оптимизацией сделал бы из всего этого просто: a += 500; (при условии что ты действовал так a:=1;if a= 1 then a:= 2). создатели компиляторов не зря деньги получают за свою работу =) 500 для особо упорных антивирусов =) ЗЫ: пишу на дельфи.
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 09:57:29.863333
|
|
|
RasenHerz
Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
|
quote:
500 для особо упорных антивирусов =) ЗЫ: пишу на дельфи. ну а я на C++ =); ни за что не поверю что компилятор Delphi не поддерживает оптимизаций. просто 500 строк кода это лишние килобайты твоей программе + лишние тормоза (несмотря даже на то что операции простые выполняются =)) . я бы предложил следующее создать код-спагетти(использовать много операторов безусловного перехода) + рекурсия проходов на 30-40. к весу твоей проги это прибавит ~5-10 килобайт.
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 13:14:32.060000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
void FuckAnAntivirus(void)
{
static int c = 0, iter = 1000;
if ( c++ != iter )
FuckAnAntivirus();
}
Типа того?
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 15:17:11.803333
|
|
|
Mad Scientist
Сообщений: 40
Оценки: 0
Присоединился: 2006-01-30 03:57:29
|
В случае, когда это приложение - все работает (предварительно другим приложением все ксорится между начальной и конечной метками)
procedure metka1;
begin
asm
DB 50,60,70,80,90,120,150 //это метка начальная
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
beep; //Защищаемая процедура
ShowMessage('Период использования программы истёк!');
end;
procedure metka2;
begin
asm
DB 68,68,67,45,61,137,219 //это метка конечная
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}
dwOldProtect: DWORD;
begin
ptrAddr := @TForm1.Button1Click; //Получаем адрес процедуры вывода сообщения
VirtualProtect(@TForm1.Button1Click, 4096, PAGE_READWRITE, @dwOldProtect);
while ptrAddr <> @metka2 do
begin
Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;
inc(Integer(ptrAddr));
end;
exit;
metka1;
metka2;
end;
А вот когда пытаешься этот код использовать в dll - Access Violation.. наверно что-то с адресацией… А так вообще Antivir с макс эвристикой просто орет на использование 'SetWindowsHookExA' и 'WriteProcessMemory' когда они встречаются в dll затирал их строки в dll хекс эдитом (понятно, работать длл тогда не будет), переставал орать… Я читал, использование апи(чтобы их имена потом не светились) можно как-то маскировать… Только вот забыл где я это видел. Динамически их что-ли все подключать?
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 20:01:46.020000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
А что ты делаешь в этом коде? Откуда ты можешь заранее знать, как будет расположен в памяти код твоих процедур, что ты сравниваешь адреса точек входа? А насчёт динамически - можно и динамически. Только гемморно всё это.
|
|
|
RE: dll определяется антивирусом. - 2008-03-14 20:04:36.103333
|
|
|
RasenHerz
Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
|
quote:
ORIGINAL: Mad Scientist В случае, когда это приложение - все работает (предварительно другим приложением все ксорится между начальной и конечной метками)
procedure metka1;
begin
asm
DB 50,60,70,80,90,120,150 //это метка начальная
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
beep; //Защищаемая процедура
ShowMessage('Период использования программы истёк!');
end;
procedure metka2;
begin
asm
DB 68,68,67,45,61,137,219 //это метка конечная
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}
dwOldProtect: DWORD;
begin
ptrAddr := @TForm1.Button1Click; //Получаем адрес процедуры вывода сообщения
VirtualProtect(@TForm1.Button1Click, 4096, PAGE_READWRITE, @dwOldProtect);
while ptrAddr <> @metka2 do
begin
Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;
inc(Integer(ptrAddr));
end;
exit;
metka1;
metka2;
end;
А вот когда пытаешься этот код использовать в dll - Access Violation.. наверно что-то с адресацией… А так вообще Antivir с макс эвристикой просто орет на использование 'SetWindowsHookExA' и 'WriteProcessMemory' когда они встречаются в dll затирал их строки в dll хекс эдитом (понятно, работать длл тогда не будет), переставал орать… Я читал, использование апи(чтобы их имена потом не светились) можно как-то маскировать… Только вот забыл где я это видел. Динамически их что-ли все подключать? как я понял переписывается тело функциии(извини я не силен в Delphi, говорю на вскидку), хороший пример, но высокий риск падения приложения из-за segmentation fault. запись в секцию кода разрешается далеко не везде. quote:
ORIGINAL: _SaZ_ void FuckAnAntivirus(void) { static int c = 0, iter = 1000; if ( c++ != iter ) FuckAnAntivirus(); } Типа того? да типа того.
|
|
|
RE: dll определяется антивирусом. - 2008-03-15 15:03:00.836666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Лучше дизассемблтровать и смотреть окончательный размер процедуры там. Т.к. далеко не факт, что компилятор расположит в памяти их именно так, как они у тебя расположены в теле программы. В любом случае придётся ручками переписывать кусок .exe или .dll. А вот уже после загрузи в память, _по заранее известному размеру_, взяв адрес процедуры - начинашешь "дешифровывать". Но возникает другая опастность, что твоя прога будет опреденяться (тем же нодом, было у меня такое), как неизвестный полиморфный вызов. Поэтому VirtualProtect будет лучше загружать динамически, чтобы снять с себя лишние подозрения.
|
|
|
RE: dll определяется антивирусом. - 2008-03-15 18:59:23.460000
|
|
|
RasenHerz
Сообщений: 303
Оценки: 0
Присоединился: 2007-11-27 21:17:15.833333
|
quote:
ORIGINAL: _SaZ_ Лучше дизассемблтровать и смотреть окончательный размер процедуры там. Т.к. далеко не факт, что компилятор расположит в памяти их именно так, как они у тебя расположены в теле программы. В любом случае придётся ручками переписывать кусок .exe или .dll. А вот уже после загрузи в память, _по заранее известному размеру_, взяв адрес процедуры - начинашешь "дешифровывать". Но возникает другая опастность, что твоя прога будет опреденяться (тем же нодом, было у меня такое), как неизвестный полиморфный вызов. Поэтому VirtualProtect будет лучше загружать динамически, чтобы снять с себя лишние подозрения. уж проще сразу шелл юзать, шелл хранить в массиве стразу ксоренным, перед вызовом шелл привести в подобающий вид. плюс данного метода в том что код можно будет разбавлять всякой "водой", легко модифицировать, в случае если он начнет палится антитварью. =)
|
|
|
RE: dll определяется антивирусом. - 2008-03-15 21:44:35.180000
|
|
|
Dr.KoD
Сообщений: 59
Оценки: 0
Присоединился: 2007-09-29 16:45:59.820000
|
«ROOTKITS, SPYWARE/ADWARE, KEYLOGGERS & BACKDOORS: обнаружение и защита» Пролистайте вот эту книженцию и вопросы по скрытию файлов от антивируса и от пользователя можно не задавать. Автору темы нужна как раз вот эта процедура: procedure LocKFile(AFileName :string);, которая описывается в данной книге, суть этой процедуры в том, что она просто блокирует доступ к файлу, в результате антивирусы тихонько курят в сторонке.
|
|
|
RE: dll определяется антивирусом. - 2008-03-17 04:56:35.596666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Гениально… Но чтобы вызвать функцию, нужно сначала запустить программу. А перед запуском антивирь её просканит и гг. Решение не универсальное. И к тому-же врядли поможет с современными антивирями.
|
|
|
RE: dll определяется антивирусом. - 2008-03-17 20:03:37.753333
|
|
|
Dr.KoD
Сообщений: 59
Оценки: 0
Присоединился: 2007-09-29 16:45:59.820000
|
quote:
ORIGINAL: _SaZ_ И к тому-же врядли поможет с современными антивирями. Прежде чем делать таие заявления проверь!!! Если написать все как нужно, практически все антивирусы будут отдыхать, в том числе знаменитые каспер и нод!!!
|
|
|
RE: dll определяется антивирусом. - 2008-03-18 03:22:17.026666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Человек. Ты не понимаешь… Твоя .dll с "нехорошими" технологиями бует отловлена ещё до запуска твой программы и, якобы, рабочей функции.
|
|
|
RE: dll определяется антивирусом. - 2008-03-18 17:56:39.180000
|
|
|
Dr.KoD
Сообщений: 59
Оценки: 0
Присоединился: 2007-09-29 16:45:59.820000
|
quote:
ORIGINAL: _SaZ_ Человек. Ты не понимаешь… Твоя .dll с "нехорошими" технологиями бует отловлена ещё до запуска твой программы и, якобы, рабочей функции. ну ну, они до сих пор ловят, но пока остались без улова.:D
|
|
|
RE: dll определяется антивирусом. - 2008-03-21 23:07:29.616666
|
|
|
qTigerqaz
Сообщений: 38
Оценки: 0
Присоединился: 2008-01-28 19:45:37.980000
|
а можна. пожалуста, ссилку на книгу
|
|
|
RE: dll определяется антивирусом. - 2008-03-22 05:57:24.520000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: Dr.KoD quote:
ORIGINAL: _SaZ_ Человек. Ты не понимаешь… Твоя .dll с "нехорошими" технологиями бует отловлена ещё до запуска твой программы и, якобы, рабочей функции. ну ну, они до сих пор ловят, но пока остались без улова.:D Пустые слова. Напиши прогу, которая сможет скрыть вирь - кинь сюда .exe и потом кричи.
|
|
|
RE: dll определяется антивирусом. - 2008-03-22 12:09:06.946666
|
|
|
Dr.KoD
Сообщений: 59
Оценки: 0
Присоединился: 2007-09-29 16:45:59.820000
|
quote:
а можна. пожалуста, ссилку на книгу КАЧАТЬ quote:
Пустые слова. Напиши прогу, которая сможет скрыть вирь - кинь сюда .exe и потом кричи Мож тебе еще и трояна готового подарить?:D И вообще я ни кричу, а пишу. А вериш ты мне или кто то другой мне по барабану.
|
|
|
RE: dll определяется антивирусом. - 2008-04-19 18:08:08.146666
|
|
|
xackich
Сообщений: 39
Оценки: 0
Присоединился: 2008-04-11 16:09:04.120000
|
зачем таке извращенства с 500 строками? я мутил интерпретатор команд для вируса и сделал из 3 готовых исходников, к-е палились всеми антивирусами малварь, не палящуюся ни нодом, ни каспером
|
|
|
RE: dll определяется антивирусом. - 2008-04-19 21:52:27.140000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Ну эт ты уже где то писал.Ну…молодец коли правда)).Только ты б хоть для информативности намекнул что ли на общий ход решения проблемы.Но если пашет - круто).
|
|
|
RE: dll определяется антивирусом. - 2008-04-21 17:53:58.936666
|
|
|
xackich
Сообщений: 39
Оценки: 0
Присоединился: 2008-04-11 16:09:04.120000
|
пишите в личку, кому это интересно,поделюсь
|
|
|
|
|