AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Virus infects Delphi

Ein Thema von Andy BitOff · begonnen am 13. Aug 2009 · letzter Beitrag vom 14. Mär 2016
Antwort Antwort
Seite 14 von 19   « Erste     4121314 1516     Letzte » 
Monien
(Gast)

n/a Beiträge
 
#131

Re: Virus infects Delphi

  Alt 20. Aug 2009, 16:36
Zitat von mkinzler:
Wäre dann ja auch eine Anregung an CG
Korrekt. Die Werden zwar nix mehr für D7 oder älter tun, aber der Code dürfte sich ja relativ leicht auch auf neuere DelphiVersionen "upgraden" lassen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#132

Re: Virus infects Delphi

  Alt 20. Aug 2009, 16:40
Da wäre aber ein Ansatz per Prüfsumme besser. Also ein Mechanismus, bei dem man Prüfsummen in eine Datenbank ablegen kann, welche dann abgeglichen werden können.
Markus Kinzler
  Mit Zitat antworten Zitat
Monien
(Gast)

n/a Beiträge
 
#133

Re: Virus infects Delphi

  Alt 20. Aug 2009, 16:46
Zitat von mkinzler:
Da wäre aber ein Ansatz per Prüfsumme besser. Also ein Mechanismus, bei dem man Prüfsummen in eine Datenbank ablegen kann, welche dann abgeglichen werden können.
Klar, das ist richtig - das wäre aber letztlich nur vernünftig über ein Delphi Plugin zu lösen. Dieses müßte dann aber natürlich auch bei Delphi Updates mit den aktuellen Prüfsummen versorgt werden.

Wobei auch das in die Hose gehen kann. Denken wir uns doch mal besser nicht daran, was passieren würde, wenn Andreas auf die dunkle Seite der MAcht gezogen würde und seine speziellen Techniken verwendet, um den Schadcode quasi "dynamisch" zu injizieren
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#134

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:24
Zitat von Monien:
Die Werden zwar nix mehr für D7 oder älter tun, aber der Code dürfte sich ja relativ leicht auch auf neuere DelphiVersionen "upgraden" lassen
Wenn bei der Version ein Commandozeilen Compiler dabei ist
Glückauf
  Mit Zitat antworten Zitat
Monien
(Gast)

n/a Beiträge
 
#135

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:27
Zitat von guinnes:
Zitat von Monien:
Die Werden zwar nix mehr für D7 oder älter tun, aber der Code dürfte sich ja relativ leicht auch auf neuere DelphiVersionen "upgraden" lassen
Wenn bei der Version ein Commandozeilen Compiler dabei ist
Bei allen Delphi-Versionen sind Komandozeilen-Compiler dabei. Die IDE "wrappt" nur den Aufruf der dcc32.exe - das kann man übrigens in dem "Ausgabe Fenster" in Delphi beobachten. Da gibt die IDE haarklein an mit welchen Parametern man den dcc32.exe von Hand aufrufen kann, um das aktuelle Projekt so wie in der IDE kompilieren.
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.480 Beiträge
 
Delphi 10.4 Sydney
 
#136

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:33
Ja, alle "echten" Versionen. Nur Turbo Delphi Explorer kam ohne Kommandozeilen-Compiler daher. Ist aber eigentlich auch egal. Delphi 2010 beispielsweise ist definitiv mit einem Compiler für die Kommandozeile ausgestattet.
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.731 Beiträge
 
Delphi 10.4 Sydney
 
#137

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:42
arbeitet quasi fast wie der Virus
Delphi-Quellcode:
Program Project1;

{$APPTYPE CONSOLE}

Uses Windows, SysUtils, Classes;

Const Pfade: Array[0..7, 0..2] of String = (
  ('Software\Borland\Delphi\4.0', '\Source\RTL\Sys\', '\Lib\'),
  ('Software\Borland\Delphi\5.0', '\Source\RTL\Sys\', '\Lib\'),
  ('Software\Borland\Delphi\6.0', '\Source\RTL\Sys\', '\Lib\'),
  ('Software\Borland\Delphi\7.0', '\Source\RTL\Sys\', '\Lib\'),
  ('Software\Borland\BDS\2.0', '\Source\Win32\RTL\Sys\', '\Lib\'),
  ('Software\Borland\BDS\3.0', '\Source\Win32\RTL\Sys\', '\Lib\'),
  ('Software\Borland\BDS\4.0', '\Source\Win32\RTL\Sys\', '\Lib\'),
  ('Software\CodeGear\BDS\6.0', '\Source\Win32\RTL\Sys\', '\Lib\'));

Var H: HKEY;
  i, i2: Integer;
  A: Array[1..255] of Char;
  S: String;
  SL: TStringList;

Begin
  Try
    SL := TStringList.Create;;
    Try
      For i := 0 to High(Pfade) do
        If RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar(Pfade[i][0]), 0, KEY_READ, H) = 0 Then Begin
          i2 := 255;
          If RegQueryValueEx(H, 'RootDir', nil, nil, @A, @i2) = 0 Then Begin
            S := PChar(@A);
            If not FileExists(S + Pfade[i][1] + 'SysConst.bak') Then Begin
              Try
                RenameFile(S + Pfade[i][1] + 'SysConst.pas', S + Pfade[i][1] + 'SysConst.bak');
                SL.LoadFromFile(S + Pfade[i][1] + 'SysConst.bak');
                i2 := SL.IndexOf('interface');
                SL.Insert(i2 + 1, 'uses SysConst_Check;');
                SL.Insert(i2 + 1, '');
                SL.SaveToFile(S + Pfade[i][1] + 'SysConst.pas');

                SL.Text := 'Unit SysConst_Check;'#13#10
                         + ''#13#10
                         + 'Interface'#13#10
                         + ''#13#10
                         + 'Implementation'#13#10
                         + ' Uses Windows;'#13#10
                         + ''#13#10
                         + 'Initialization'#13#10
                         + ' MessageBox(0, ''Delphi ist von Win32/Induc.* befallen!!!'','
                         + ' ''Alarm'', MB_OK or MB_ICONEXCLAMATION or MB_TASKMODAL);'#13#10
                         + ' Halt;'#13#10
                         + ''#13#10
                         + 'End.'#13#10;
                SL.SaveToFile(S + Pfade[i][2] + 'SysConst_Check.pas');

                WriteLn('Backup angelegt,');
                WriteLn('Datei modifiziert');
                WriteLn('und Prüfdatei angelegt');
                WriteLn(' > ' + S + Pfade[i][1] + 'SysConst.pas');
                WriteLn(' > ' + S + Pfade[i][1] + 'SysConst.bak');
                WriteLn(' > ' + S + Pfade[i][2] + 'SysConst_Check.pas');
              Except
                WriteLn('der Schutz konnte nicht angelegt werden (z.B. fehlende)');
                WriteLn('(z.B. ungenügend Zugriffsrechte)');
                WriteLn(' > ' + S + Pfade[i][1] + 'SysConst.pas');
              End;
            End Else Begin
              WriteLn('ist schon geschützt (vermutlich)');
              WriteLn(' > ' + S + Pfade[i][1] + 'SysConst.pas');
            End;
            WriteLn('');
          End;
          RegCloseKey(H);
        End;
      WriteLn('fertig');
      ReadLn;
    Finally
      SL.Free;
    End;
  Except
    On E:Exception do Begin
      WriteLn(E.Classname, ': ', E.Message);
      ReadLn;
    End;
  End;
End.
Wenn der Virus jetzt kommt, sich die SysConst.pas schnappt
und neu kompiliert, dann kompiliert er auch diesen Code mit ein und bei Programmstart
kommt ein Fenster und das infizierte Programm wird beendet, noch bevor der Virus sich vervielfältigen kann.

Solange sich der Virus nicht dran zu schaffen macht, bleibt die SysConst.dcu unverändert
und auch dieser Code (siehe [delphi]\Lib\SysConst_Check.pas) ist nicht eingebunden
(abbeitet bis Delphi 2009 ... solange Schreibrechte existieren)



Aber es ist dennoch besser erst erst garkeine Schreibrechte für die betreffenden Verzeichnisse vergeben zu haben
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#138

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:49
Eine weitere Schwachstelle im Virus ist, dass er das Erstellungsdatum der Quellfiles nicht ändern kann : ( oder nur mit einem Aufwand )
Zitat:
unit sysconst; {Flags: 0x0, Priority: 0x1E}
{Source files: D:\Software\Programme\Borland\Delphi7\lib\sysconst .pas (03.07.2009 15:19:18)}
Glückauf
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
603 Beiträge
 
FreePascal / Lazarus
 
#139

Re: Virus infects Delphi

  Alt 20. Aug 2009, 17:51
Zitat von Monien:
Die IDE "wrappt" nur den Aufruf der dcc32.exe
Nur ein bisschen Besserwisserei: die IDE selbst verwendet die zur Version passende dcc*.dll, nicht die dcc32.exe... (verifiziert mit ProcessExplorer: keine dcc32.exe zu sehen)
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#140

Re: Virus infects Delphi

  Alt 20. Aug 2009, 18:15
Zitat von JamesTKirk:
Zitat von Monien:
Die IDE "wrappt" nur den Aufruf der dcc32.exe
Nur ein bisschen Besserwisserei: die IDE selbst verwendet die zur Version passende dcc*.dll, nicht die dcc32.exe... (verifiziert mit ProcessExplorer: keine dcc32.exe zu sehen)
Bei den alten Versionen auch?
Markus Kinzler
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf