AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Hilfe, Ich habe einen Virus programmiert!
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe, Ich habe einen Virus programmiert!

Ein Thema von stiftII · begonnen am 15. Okt 2009 · letzter Beitrag vom 16. Okt 2009
Antwort Antwort
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#1

Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:24
Hallo.

Ich habe ein Programm geschrieben, welches es mir ermöglicht, über das Windows Kontextmenü Bilder direkt hochzuladen, der Link des hochgeladenen Bildes wird in der Zwischenablage gespeichert.

Aus spass habe ich die Datei bei VirusTotal scannen lassen. Und siehe da. Es wird angezeigt, dass es sich um einen Virus handeln würde O_O.. Um genau zu sein ein Trojaner: "Trojan-Banker.Win32.Banker" wird von ein paar Programmen erkannt.

Was kann ich tun, um diese falsche Erkennung zu vermeiden ?. Hier mein Quelltext:

Delphi-Quellcode:
unit uploader;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Idhttp, StdCtrls,IdMultiPartFormData,Clipbrd,IniFiles,DateUtils,Registry,
  ExtCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Memo1: TMemo;
    Label2: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Image1: TImage;
    Label3: TLabel;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}




function CheckIfValid(testsite : string):integer;
begin

  If Pos('URL der gespeicherten Bilddatei',testsite) > 0 then
  begin
    result := 1;
    exit;
  end;

  If Pos('Das war keine Bilddatei!', testsite) > 0 then
  begin
    result := 2;
    exit;
  end;

end;

function ExtractImageUrl(testsite : string):string;
begin
  Delete(testsite,1,Pos('URL der gespeicherten Bilddatei: <a href="', testsite)+strlen('URL der gespeicherten Bilddatei: <a href="')-1);
  Result:= Copy(testsite,0,Pos('"',testsite)-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
uploadit : Tidhttp;
thesite : string;
PostData : TIdMultipartFormDataStream;
begin
  uploadit := Tidhttp.Create(nil);
  uploadit.HandleRedirects := TRUE;
  try
  PostData := TIdMultipartFormDataStream.Create;

  PostData.AddFormField('MAX_FILE_SIZE','681984');
  PostData.AddFile('f',ParamStr(1),'image/jpeg');
  PostData.AddFormField('optimize','0');


    thesite:=uploadit.Post('http://666kb.com/u.php',PostData);
  except
  end;

  uploadit.Free;


  case CheckIfValid(thesite) of
    1: Clipboard.AsText := ExtractImageUrl(thesite);
    2: showmessage('Das war keine Bilddatei!'+#10+#13+'(oder es gab einen Fehler bei der Übertragung - zu groß?)');
  else
    ShowMessage('Datei zu Groß / Unbekannter Fehler');
  end;

  memo1.Text := thesite;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
urlc : TClipboard;
begin
ShowMessage(ParamStr(1));
Clipboard.AsText := ParamStr(1);

end;

procedure AddToRegistry;
var regist: TRegistry;
begin
  regist:=TRegistry.Create;
  try
    regist.RootKey:=HKEY_LOCAL_MACHINE;
    regist.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\666kb.exe', true);
    regist.WriteString('', ParamStr(0));
    regist.WriteString('Path', ExtractFilePath(ParamStr(0)));
  finally
    regist.free;
  end;
end;

procedure RemoveFromRegistry;
var regist: TRegistry;
begin
  regist:=TRegistry.Create;
  try
    regist.RootKey:=HKEY_LOCAL_MACHINE;
    regist.DeleteKey('SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\666kb.exe');
  finally
    regist.free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
uploadit : Tidhttp;
thesite : string;
PostData : TIdMultipartFormDataStream;

ini : TiniFile;
mydll : string;

CurrentDate : string;
begin


  Form1.Visible := False;
  If paramstr(1) = 'then begin
    Form1.Visible := True;
    Form1.Left := 388;
    Form1.Top := 210;
    exit;
   end;

  
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'us.ini');

  //Uploading Image and returning Location
  uploadit := Tidhttp.Create(nil);
  uploadit.HandleRedirects := TRUE;
  try
    PostData := TIdMultipartFormDataStream.Create;

    PostData.AddFormField('MAX_FILE_SIZE','681984');
    PostData.AddFile('f',ParamStr(1),'image/jpeg');
    PostData.AddFormField('optimize','0');


    thesite:=uploadit.Post('http://666kb.com/u.php',PostData);
  except
  end;

  uploadit.Free;

  case CheckIfValid(thesite) of
    1:
    begin
    Clipboard.AsText := ExtractImageUrl(thesite);
    CurrentDate := DateTimeToStr(Now);
    ini.WriteString('Uploaded Files',CurrentDate,ExtractImageUrl(thesite));
    end;
    2: showmessage('Das war keine Bilddatei!'+#10+#13+'(oder es gab einen Fehler bei der Übertragung - zu groß?)');
  else
    ShowMessage('Datei zu Groß / Unbekannter Fehler');
  end;

  memo1.Text := thesite;
  ini.WriteString('Run','FirstRun','False');
  ini.free;
  Application.Terminate;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
uploadit : Tidhttp;
thesite : string;
PostData : TIdMultipartFormDataStream;

ini : TiniFile;
mydll : string;

CurrentDate : string;
begin
  //Ini Management
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'us.ini');

  mydll := ExtractFilePath(ParamStr(0))+'u666kb.dll';

  if not (ini.ReadString('Run','Firstrun','') = 'False') then // Register dll file
  begin
    try
      AddToRegistry;
      WinExec(Pchar('regsvr32 '+'"'+mydll+'"'),0);
    finally
      ini.WriteString('Run','FirstRun','False');
      ShowMessage('Installation Successful!'+#10+#13+'You can now upload pictures by using the context menu'+#10+#13+'A link to the uploaded pic will be placed in your clipboard than.');
      Application.Terminate;
    end
  end else
    label2.WordWrap := TRUE;
    label2.Width := 170;
    ShowMessage('Programme already installed. If you want to reinstall it, remove the us.ini file.');

end;

procedure TForm1.Button4Click(Sender: TObject);
var
uploadit : Tidhttp;
thesite : string;
PostData : TIdMultipartFormDataStream;

ini : TiniFile;
mydll : string;

CurrentDate : string;
begin
  //Ini Management
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'us.ini');

  mydll := ExtractFilePath(ParamStr(0))+'u666kb.dll';

  if ini.ReadString('Run','Firstrun','') = 'Falsethen // Register dll file
  begin
    try
      RemoveFromRegistry;
      WinExec(Pchar('regsvr32 /u '+'"'+mydll+'"'),0);
    finally
      ini.WriteString('Run','FirstRun','True');
      ShowMessage('Programme uninstalled succesfully.');
      Application.Terminate;
    end
  end else
    label2.WordWrap := TRUE;
    label2.Width := 170;
    ShowMessage('Cant Uninstall. Programme is not installed');

end;

procedure TForm1.Label3Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  xmove : integer;
begin
   ReleaseCapture;
   Perform(WM_SYSCOMMAND, $F012, 0);
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:26
Zitat von stiftII:
Was kann ich tun, um diese falsche Erkennung zu vermeiden ?
An die entsprechenden Hersteller als False Positive einschicken...
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:27
Schönen guten Abend!

Such mal nach Hier im Forum suchenHeuristik


z.B:

http://www.delphipraxis.net/internal...ight=heuristik

Passiert schonmal, wenn die Virenscanner Heuristik sehr scharf eingestellt ist...ist aber nicht weiter schlimm.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:28
Such einfach mal im Forum. Das haben wir öfters.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#5

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:33
Zitat von Luckie:
Such einfach mal im Forum. Das haben wir öfters.
Ihr programmiert auch öfter Viren ? ;D.

Werd mich mal umschauen. Ich denke das Problem ist, dass ich im code eine DLL lade. Vielleicht macht es ja schon einen Unterschied, wenn ich das anders lösen würde.

Grüße,
stift
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 15. Okt 2009, 23:36
Kann sein, darf aber nicht sein. Häufig werden Delphiprogramme durch die Heuristik als Virus erkannt, wenn die Indys ins Spiel kommen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 16. Okt 2009, 15:06
Hi stiftII,

also wenn Du D7 verwendest dann tippe ich auf eine infizierte Hier im Forum suchenSysConst.dcu. Also wir benutzen Kompos eines bekannten Anbieters und bei der Installation der Updates wurde der gleiche Trojaner erkannt und das Setup abgebrochen.

Wie sich dann herausstellte, war eine Demo die mit D7 erstellt und vom Setup auf die Platte kopiert wurde, schuld daran.

Das passierte zwar vor ca. 1,5 Monaten aber wer weiß.

Axel
Alexander Lang
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#8

Re: Hilfe, Ich habe einen Virus programmiert!

  Alt 16. Okt 2009, 15:13
Zitat von axellang:
dann tippe ich auf eine infizierte Hier im Forum suchenSysConst.dcu.
falls du nicht die richtigen Threads unter deren Unmassen erkennst ...
so sind die Beiden besser zu finden Hier im Forum suchensysconst virus
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz