Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   El antivirus me bloquea mi programa.... (https://www.clubdelphi.com/foros/showthread.php?t=68022)

LoPiTaL 20-05-2010 10:30:38

El antivirus me bloquea mi programa....
 
Hola a todos!
Tengo un problema con el Panda y un programita de ejemplo que me estaba haciendo para saber si un typecast era posible o no. Os cuento:
Al compilar el programa el antivirus me detecta que éste es un virus del tipo "Generic Backdoor" y me lo borra, por lo que ni siquiera puedo probarlo.

El programa lo único que hace es declarar dos interfaces y una clase que implementa ambas, crea una instancia de ésta clase y la asigna a una variable del tipo IInterface. Después hago llamadas a Support con esta variable y veo si devuelve true (ya que no estaba seguro si siendo una variable del tipo IInterface con support me podía devolver una variable de tipo IInt1 o IInt2). Os paso todo el código

Código:

type
  IInt1 = interface
    ['{34226603-BA7E-4C17-A0E0-4C0E7B0C079C}']
    procedure DisplayMsg;
  end;

type
  IInt2 = interface
    ['{4025C620-10D1-4A65-872F-8C4374F9F24C}']
    procedure DisplayOtherMsg;
  end;

type
  TMyClass = class(TInterfacedObject, IInt1, IInt2)
  public
    procedure DisplayOtherMsg;
    procedure DisplayMsg;
  end;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    icc: IInterface;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var
  icc1: IInt1;
  icc2: IInt2;

  LVar: TMyClass;
begin
  LVar := TMyClass.Create;

  icc := LVar;

  if Supports(LVar, IInt1, icc1) then
    icc1.DisplayMsg;

  if Supports(LVar, IInt2, icc2) then
    icc2.DisplayOtherMsg;
end;

{ TMyClass }

procedure TMyClass.DisplayMsg;
begin
  ShowMessage('Hola');
end;

procedure TMyClass.DisplayOtherMsg;
begin
  showmessage('Hola2');
end;

¿Alguien sabe qué está pasando?

Estoy usando Delphi 2010.

Gracias por la ayuda,
Un saludo,
LoPiTaL

[EDITO:] Al ir comentando / descomentando código, el error me lo da al crear la instancia de TMyClass... No sé si puede ayudar en algo...

Casimiro Notevi 20-05-2010 10:53:05

Para empezar puedes ir cambiando de antivirus :)

yapt 20-05-2010 10:53:12

Delphi 2010.... Antivirus Avast....

No dice ni pio.

Saludos.

Neftali [Germán.Estévez] 20-05-2010 11:12:09

Compila tu programa y súbelo a VirusTotal.
Con eso sabrás si el único que da positivo es Panda o hay otros antivirus que lo dan.

Si es el único, es un falso positivo, así que añadelo como excepción para que no lo detecte e incluso puedes enviar la muestra a Panda. Si el resto (o alguno de los otros antivirus) lo detectan, entonces es que estás infectado.

Pruébalo y dinos qué te da. Si estás infectado, sabiendo el virus que es, se pueden buscar soluciones.

LoPiTaL 20-05-2010 13:00:41

Gracias por las respuestas.
Lo he analizado en VirusTotal y no me ha dado virus en ningún antivirus, ni siquiera en el Panda.

Cambiar de antivirus no puedo porque es corporativo, vamos, que depende de mi jefe...

Veremos si se puede actualizar a la versión que hay en VirusTotal (creo que era la 10 y pico) ya que la nuestra es una versión anterior y a ver si es por eso...

Gracias a todos, de nuevo.

Un saludo,
LoPiTaL.

P.D. Sí se puede hacer el casting llamando a Supports(algo de IInterface,IMiInterfaz,algo de IMiInterfaz) :D

radenf 20-05-2010 13:15:00

Yo uso el Norton Internet Security que posee un detector de programas maliciosos llamado Insight, que detecta el uso de programas que define como peligrosos basándose en la antigüedad del programa y el número de personas que lo han usado. Ovbiamente cuando estoy programando, cualquier ejecutable que desarrolle lo considera como software potencialmente peligroso.
La solución como señala Neftali fue añadir estos ejecutables como excepción.

Salu2

bosster_018 20-05-2010 15:21:28

A mi también me sucedió esto hace tiempo con el Smart Security NOD32 :p

Recuerdo que quise cambiar el inicio del explorer.exe en el registro de windows (regedit)

Código Delphi [-]
Uses Registry;

procedure Regedit;
var
    Registro:TRegistry;
begin
  Registro:=TRegistry.create;
  Registro.RootKey:=HKEY_LOCAL_MACHINE;
    if Registro.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\Winlogon\',False) then
    begin
      Registro.WriteString('Shell', 'Dirección_Mi_Programa');
    end;
  Registro.Destroy;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Regedit;
end;

Y ni si quiera le daba tiempo para respirar al ejecutable... :eek:
En el antivirus salía el mensaje "Se dectecto una POSIBLE amenaza bla bla bla variante del tipo bla bla bla" :rolleyes:

Con posible, yo sabía que era un "Falso positivo". Desde entonces, yo mismo configuro el antivirus para que no detecte "Posibles amenazas" ni muchas cosas que no se necesitan porque consume memoria e incluso la conexión de internet; este antivirus se conecta, incluso si este está configurado para que no lo haga o también desactivado totalmente. :eek:

Por si acaso ahora hice la prueba, sin configuración del antivirus (osea "Seguridad alta :(") y no me lanza ningún Flaso Positivo ;)

Saludos!

PD:
La solución para tu problema sería que te contactes que el personal del antivirus PANDA y le hagas saber de la detección falsa que te manda.

Saludos!

LoPiTaL 20-05-2010 15:34:42

Agradezco todas vuestras soluciones. Yo creo que, como te pasaba a ti booster, actualizando el antivirus se me solucionará el problema. Ahora a esperar y ya os diré cómo he quedado.

Sin embargo me asalta una pregunta: si a mí me lo detecta como virus, cuando yo quiera distribuir mi aplicación, ¿al usuario final también le saldrá como virus? :eek::confused:

En caso de ser así, ¿cómo puedo asegurarme de que no ocurra?

Gracias a todos,
Un saludo,
LoPiTaL

ecfisa 20-05-2010 19:46:00

Hola.

Pareciera que lo que el antivirus está detectando es una acción potencialmente peligrosa,
muchas de las acciones sobre el registro pueden disparar esta alerta. De echo cambiar el inicio
del explorer es una opcion que usan algunos worms.
En el caso del antivirus que uso: ESET NOD32 4.0, tiene la opción de activar/desactivar esta característica.

Seguramente tengas que manejar esta opción manualmente en el antivirus del cliente si lo instalas
personalmente. Otra opción es pedir que desactiven el antivirus momentaneamente durante
la instalación para evitar falsos positivos.


Saludos.

Faust 20-05-2010 19:57:44

Hace tiempo escribí esto: http://www.clubdelphi.com/foros/showthread.php?t=60030

LoPiTaL 20-05-2010 22:44:53

Vale, entonces según lo que consigo deducir de ese post es que en cuanto añada más elementos a mi programa dejará de detectarse como virus.
Igual por ser tan simple le parece sospechoso...
Si es así, entonces no tendré ningún problema cuando pase el código al programa real y deje el programa este de pruebas.

Gracias a todos por la ayuda,
Un saludo,
LoPiTaL


La franja horaria es GMT +2. Ahora son las 18:54:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi