Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2008
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 21
Tonio Va por buen camino
Sobre una dll, me la borra el antivirus.

Tengo una dll, hecha por mi, bueno más bien copiada del foro y arreglada, lo que hace es evitar que cuando estoy escribiendo en un editor, se salga de él al presionar alguna tecla, como alt, o ésta en combinación con otras. Pués bien, en cuanto entro en el directorio donde se encuentra, el antivirus me la borra. El antivirus es ESET NOD32.
Saludos y gracias.
Tonio.
Responder Con Cita
  #2  
Antiguo 01-09-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
seguro la borra por que cree que es un hook, para un keyloger

tal vez si usas el codigo de la dll dentro de tu programa . sin usar la dll
te de el mismo resultado de evitar que se salga del editor al presionar la tecla alt.
Responder Con Cita
  #3  
Antiguo 01-09-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por JXJ Ver Mensaje
seguro la borra por que cree que es un hook, para un keyloger

tal vez si usas el codigo de la dll dentro de tu programa . sin usar la dll
te de el mismo resultado de evitar que se salga del editor al presionar la tecla alt.
No recuerdo con precisión, pero sé que algunas funciones de gancho (hook) requieren forzosamente ser instaladas mediante DLLs. Sería cosa de ver si es el caso de nuestro amigo Tonio.

Esperemos sus comentarios acerca de qué tipo de gancho está usando y qué eventos en particular desea interceptar.

Saludos.

Al González.
Responder Con Cita
  #4  
Antiguo 02-09-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
otra forma seria hacer esa dll. casi distinta a lo que el antivirus por heuristica.
detecta como peligroso..

me refiero a la construccion binaria de la dll.

agrega funciones y otros procedimientos.
antes de las llamadas a los hooks.
para que el binario resultante.
sea un binario distinto a lo que el antivirus cosidera peligroso
Responder Con Cita
  #5  
Antiguo 02-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por JXJ Ver Mensaje
otra forma seria hacer esa dll. casi distinta a lo que el antivirus por heuristica.
detecta como peligroso..

me refiero a la construccion binaria de la dll.

agrega funciones y otros procedimientos.
antes de las llamadas a los hooks.
para que el binario resultante.
sea un binario distinto a lo que el antivirus cosidera peligroso
No funcionará pues un buen AV haría un WH_DEBUG al hook previamente instalado, mayor su fiabilidad si hace un hook directamente a la API SetWindowsHookEx.

Lo que yo haría en este caso es incluir la DLL a la lista de exclusiones del AV.

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #6  
Antiguo 04-09-2008
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 21
Tonio Va por buen camino
Borrado de una dll por antivirus

Lo primero muchas gracias, como siempre rapidísimos.

Este es el código:

Código:
library HookTeclado;
 
{
Demo de Hook de teclado a nivel de sistema, Radikal.
Como lo que queremos es capturar las teclas pulsadas en cualquier parte
de Windows, necesitamos instalar la funcion CallBack a la que llamará
el Hook en una DLL, que es ésta misma.
}
 


uses
  Windows,
  Messages;

const
 CM_MANDA_TECLA = WM_USER + $1000;
 
var 
 HookDeTeclado     : HHook;
 FicheroM    : THandle;
 PReceptor   : ^Integer;
 
function CallBackDelHook( Code    : Integer;
                          wParam  : WPARAM;
                          lParam  : LPARAM
                          )       : LRESULT; stdcall;
 
{Esta es la funcion CallBack a la cual llamará el hook.}
{This is the CallBack function called by he Hook}
begin 
 {Si una tecla fue pulsada o liberada}
 {if a key was pressed/released}
 if code=HC_ACTION then 
 begin 
  {Miramos si existe el fichero}
  {if the mapfile exists}
  FicheroM:=OpenFileMapping(FILE_MAP_READ,False,'ElReceptor');
  {Si no existe, no enviamos nada a la aplicacion receptora}
  {If dont, send nothing to receiver application}
  if FicheroM<>0 then 
  begin 
    PReceptor:=MapViewOfFile(FicheroM,FILE_MAP_READ,0,0,0);
    PostMessage(PReceptor^,CM_MANDA_TECLA,wParam,lParam);
    UnmapViewOfFile(PReceptor);
    CloseHandle(FicheroM);
  end; 
 end; 
 {Llamamos al siguiente hook de teclado de la cadena}
 {call to next hook of the chain}
 Result := CallNextHookEx(HookDeTeclado, Code, wParam, lParam)
end; 
 
procedure HookOn; stdcall;
{Procedure que instala el hook}
{procedure for install the hook}
begin 
  HookDeTeclado:=SetWindowsHookEx(WH_KEYBOARD, @CallBackDelHook, HInstance , 0);
end; 
 
procedure HookOff;  stdcall;
begin 
{procedure para desinstalar el hook}
{procedure to uninstall the hook}
  UnhookWindowsHookEx(HookDeTeclado);
end; 
 
exports 
{Exportamos las procedures...}
{Export the procedures}
 HookOn,
 HookOff;

begin 
end.

Ésta la unit Hook, a ponr en el uses de la aplicación:

Código Delphi [-]
unit Hooks;

interface

type
  { Teclas que podemos inhabilitar }
  TLockableKey = (lkAltTab, lkAltEsc, lkCtrlEsc, lkAltF4, lkWin, lkApps, lkAlt);

procedure SetHook;
procedure ReleaseHook;

procedure LockKey(Key: TLockableKey; Lock: Boolean);

implementation

uses
  Windows, Dialogs;

const
  {
    Tipo de 'gancho'

    Obsérvese que la documentación de Windows que viene
    con Delphi no incluye este 'gancho' sino únicamente
    WH_KEYBOARD que no intercepta estas teclas.
  }
  WH_KEYBOARD_LL = 13;

  { Banderas para detectar las teclas ALT y CTRL }
  LLKHF_ALTDOWN = $20;
  LLKHF_CTRLDOWN = $8000;

type
  PKbdHookInfo = ^TKbdHookInfo;
  TKbdHookInfo = record
    VkCode: DWORD;
    ScanCode: DWORD;
    Flags: DWORD;
    Time: DWORD;
    ExtraInfo: DWORD;
  end;

var
  Hook: HHook;
  Keys: set of TLockableKey;

function KbdHook(Code: Integer; WParam, LParam: DWORD): HHook; stdcall;
var
  VkCode: DWORD;
  AltDown: Boolean;
  CtrlDown: Boolean;

begin
  if Code = HC_ACTION then
  begin
    VkCode := PKbdHookInfo(LParam).VkCode;
    AltDown := PKbdHookInfo(LParam).Flags and LLKHF_ALTDOWN <> 0;
    CtrlDown := GetAsyncKeyState(VK_CONTROL) and LLKHF_CTRLDOWN <> 0;

  {  if (VkCode = VK_TAB) and AltDown and (lkAltTab in Keys) then
    begin
      Result := 1;
      exit;
    end;

    if (VkCode = VK_ESCAPE) then
    begin
      if AltDown and (lkAltEsc in Keys) then
      begin
        Result := 1;
        exit;
      end;

      if CtrlDown and (lkCtrlEsc in Keys) then
      begin
        Result := 1;
        exit;
      end;
    end;

    if (VkCode = VK_F4) and AltDown and (lkAltF4 in Keys) then
    begin
      Result := 1;
      exit;
    end;

    if ((VkCode = VK_LWIN) or (VkCode = VK_RWIN)) and (lkWin in Keys) then
    begin
      Result := 1;
      exit;
    end;

    if (VkCode = VK_APPS) and (lkApps in Keys) then
    begin
      Result := 1;
      exit;
    end; }

     if (lkAlt in Keys) then
    begin
      Result := 1;
      exit;
    end;

 end;

  Result := CallNextHookEx(Hook, Code, WParam, LParam);
end;

procedure SetHook;
begin
  Hook := SetWindowsHookEx(WH_KEYBOARD_LL, @KbdHook, HInstance, 0);
end;

procedure ReleaseHook;
begin
  if Hook <> 0 then UnhookWindowsHookEx(Hook);
end;

procedure LockKey(Key: TLockableKey; Lock: Boolean);
begin
  if Lock then Include(Keys, Key) else Exclude(Keys, Key);
end;

initialization
  Hook := 0;
  Keys := [];

finalization
  ReleaseHook;
end.

En su día, casi sabía el cómo funcionaba, vosotros lo veréis mejor y me diréis, si como dice JXJ, lo puedo poner en un procedure, aunque no se como.

Os diré para que es, me he hecho un editor de texto, poniendo cosas de un sitio y de otro, pues bien, ágil, que se diga, no soy con el teclado, así que de vez en cuando, poco antes de salvar lo escrito, 'tocaba alguna tecla', no se cual, 'alt' 'ctrl' o las dos a la vez, el caso es que me salía del editor y perdía todo lo escrito, que muchas veces escribía lo que salía de mi mente, cómo una carta, no era copiar, total, un cabreo y a pensar otra vez y a escribir.

Con ésta dll, cada vez que daba a alguna tecla 'rara', me salía un mensaje: 'tecla inválida' le daba a ok y listo, a continuar.

Si hay otra forma más sencilla, agradecería la información.

Supongo que la dll es de Club delphi.

Espero, que como explicación, sirvan los códigos.

Nuevamente gracias.
Un saludo.
Tonio
Responder Con Cita
  #7  
Antiguo 04-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Tonio Ver Mensaje
Supongo que la dll es de Club delphi.
No sé bien a que te refieres. Para empezar pones dos códigos distintos. El primero claramente dice que es de Radikal, el dueño de trucomanía, y el segundo es mío.

// Saludos
Responder Con Cita
  #8  
Antiguo 05-09-2008
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Tonio

¿no podrias poner un zip con las fuentes de tu proyecto completo?
Responder Con Cita
  #9  
Antiguo 05-09-2008
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 21
Tonio Va por buen camino
Sobre una dll, me la borra el antivirus.

No hay duda que los códigos son de Roman y Radikal, supongo que el de Roman fue a través del Club Delphi.
Tengo una empanada tremenda, me parece que estoy utilizando los dos códigos a la vez, o así parece,voy a ver si me aclaro primero, por lo menos he puesto en el 'uses' uno y el otro en la dll 'Hook' que también la llamo, vamos, como digo, una empanada.
Os pido disculpas por la molestia causada.
De todas formas gracias por vuestro interés, creo que he encontrado la forma de que el anivirus 'olvide' la dll, lo dicho, muchas gracias.
Un saludo.
Tonio
Responder Con Cita
  #10  
Antiguo 05-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por Tonio Ver Mensaje
...creo que he encontrado la forma de que el anivirus 'olvide' la dll...
Y el modo que encontraste es secreto o lo podrías compartir en el foro?
bueno... pregunto apoyándome en el concepto de "reciprocidad" y "curiosidad"

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #11  
Antiguo 07-09-2008
Tonio Tonio is offline
Miembro
 
Registrado: may 2003
Ubicación: Logroño
Posts: 111
Poder: 21
Tonio Va por buen camino
Sobre una dll, me la borra el antivirus.

Javier, no es estrictamente un secreto, creo que alguien me apuntó que desactivara el antivirus o algo así, entonces empecé a buscar en él y encontre, con mucho trabajo, está en inglés, una opción que se llama: 'Exclude', que da la opción de excluir un fichero o un directorio completo del scan del antivirus, así que la activé y ahora no me lo borra. Supongo que todos los antivirus la tendrán, este es ESET NOD32, no se si es bueno o malo, es gratuito o por lo menos eso creo.
Pido disculpas si he fallado en algo respecto al foro, pués yo solamente tengo motivos de agradecimiento hacia él.
Gracias por todo y saludos.
Tonio.
Responder Con Cita
  #12  
Antiguo 07-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por Tonio Ver Mensaje
...Pido disculpas si he fallado en algo respecto al foro, pués yo solamente tengo motivos de agradecimiento hacia él.
No son necesarias las discupas Tonio... solo me dio un poco de curiosidad (sana)...

Un Saludo
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Qué tan bueno es tu antivirus? Cannabis La Taberna 18 10-07-2008 20:53:17
Antivirus en kubuntu Robert01 Seguridad 1 07-03-2007 13:36:04
Test a 10 antivirus DarKraZY Noticias 1 15-02-2007 12:32:21
Encuesta sobre antivirus esocrates Varios 10 23-05-2006 17:06:28
Antivirus vtdeleon Varios 12 25-07-2005 18:25:16


La franja horaria es GMT +2. Ahora son las 13:22:52.


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
Copyright 1996-2007 Club Delphi