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 19-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Password revealear

Buen dia, me encontre con este programa que se aprovecha del mensage
EM_SETPASSWORDCHAR para revelar los campos de contrasenias....aqui esta la pagina del programa donde viene algo de su codigo fuente.

El problema es que he estado tratando de cachar cuando se le envie el mensage a mi aplicacion pero nadamas no lo logro hacer.

Lo que he intentado es con un applicationEvents y en su evento OnMessage trate de agarrar el mensage con un
Código Delphi [-]
If Msg=EM_SETPASSWORDCHAR Then showmessage('Mensage detectado')

Pero no he logrado que me entre al condicional, yo pensaba al detectarlo solo ponerle el Handled a False, alguien me puede echar la manita para detectarlo? Creo nos ayudaria a mucho no tener este hoyo en nuestras aplicaciones. de antemano Gracias. Saludos

Última edición por cascarrabias fecha: 19-05-2008 a las 16:58:20.
Responder Con Cita
  #2  
Antiguo 19-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola
Responder Con Cita
  #3  
Antiguo 19-05-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Me he mirado el link que ofreces, y no veo relación con lo que él pregunta :S

Saludos
Responder Con Cita
  #4  
Antiguo 19-05-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 xEsk Ver Mensaje
Me he mirado el link que ofreces, y no veo relación con lo que él pregunta :S

Saludos

Vaya, talvez ésto porque no he entendido la pregunta, te pido me ayudes a entenderla!
Responder Con Cita
  #5  
Antiguo 19-05-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
Yo también me confundí al principio. Ese hilo no tiene que ver, pero sí la respuesta que da Javier ahí. Amigo, ser un poquito más explícito no perjudica a la salud

// Saludos

Última edición por roman fecha: 19-05-2008 a las 23:52:41. Razón: Corregir la grafía del nombre de Javier
Responder Con Cita
  #6  
Antiguo 19-05-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 roman Ver Mensaje
Yo también me confundí al principio. Ese hilo no tiene que ver, pero sí la respuesta que da Xavier ahí. Amigo, ser un poquito más explícito no perjudica a la salud

// Saludos
Este...
...si lo último lo comentaste por mi pues normalmente dejo todo el hilo para que entiendan el desenvolvimiento del mismo y la causa de mi post. Creo que solo se debe esperar unos segundos a que el navegador "salte" hacia el post; en todo caso leer un poco tampoco perjudica la salud

Saludos
Responder Con Cita
  #7  
Antiguo 19-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Vamos...vamos....

ahora mismo estoy leyendo la respuesta de Javier....gracias!

Por otro lado, por ejemplo estaba viendo que del msn messenger, no puedo lograr visulizar la contrasenia aunque le mande mensages para que la mustre lo que quisiera tratar de hacer es lo mismo para mi aplicacion.....disculpen la molestia!

Última edición por cascarrabias fecha: 20-05-2008 a las 00:01:32.
Responder Con Cita
  #8  
Antiguo 19-05-2008
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Más o menos te entiendo, tienes el código del programilla Password Revealer, y tratas probar hacer lo mismo que ese programilla, pero creo que en Win XP o en cualquier Win basado en NT no se puede usar ese truquín de captar el mensaje que necesitas...
__________________
Herr Heins Faust
Responder Con Cita
  #9  
Antiguo 20-05-2008
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Ah, ya chequé el enlace que dejaste Cascarrabias, léelo bien porque dice que setea o remueve el Password Character, por lo que nunca lo vas a captar, porque muy pocas aplicaciones por cuestiones de seguridad no pueden por sí mismos cambiar esta propiedad. Para ver los caracteres que se introducen en un edit seteado para password, debes enviarle este mensaje p. ej. con SendMessage.
__________________
Herr Heins Faust
Responder Con Cita
  #10  
Antiguo 20-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Cita:
Empezado por Faust Ver Mensaje
Más o menos te entiendo, tienes el código del programilla Password Revealer, y tratas probar hacer lo mismo que ese programilla, pero creo que en Win XP o en cualquier Win basado en NT no se puede usar ese truquín de captar el mensaje que necesitas...

Hola, pues lo que intento es bloquearlo para que no muestre las pass guardadas por el usuario para iniciar sesion en mi aplicacion, ya que las puedo revelar facilmente con el mensage que mencione.....tanto en winXP como en Vista. Saludos y gracias
Responder Con Cita
  #11  
Antiguo 20-05-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Pero, si implementas la solucion que yo he propuesto dudo que dicho Spyware detecte la contraseña.

Saludos
Responder Con Cita
  #12  
Antiguo 20-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Pero, si implementas la solucion que yo he propuesto dudo que dicho Spyware detecte la contraseña.

Saludos
Gracias por responder....pues probe implementando tu codigo pero desafortunadamente algo debo haber hecho mal...porque me sigue quitando el password char de mi edit y me sigue mostrando la contrasenia.....te comento este edit donde esta el password es de un formulario para inicio de sesion donde el usuario puede si gusta dejar el pass guardado o recordado en la maquina....tal vez sea por eso, ya que el usuario nunca teclea nada en el edit ya que ya se encuentra guardado el codigo, lo siento talvez estoy entendiendo mal el proposito o manera de utilizar tu codigo....gracias
Responder Con Cita
  #13  
Antiguo 20-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
perdon Javier...ya lo observe bien...tienes razon....con eso se puede desviar el problema ...o cuando menos da algunas ideas mas para adecuarlo a mis necesidades....muchas gracias!

aun asi, lo que no entiendo es poque no se puede cancelar simplemente el mensage al recibirlo?

Última edición por cascarrabias fecha: 20-05-2008 a las 00:15:39.
Responder Con Cita
  #14  
Antiguo 20-05-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 cascarrabias Ver Mensaje
aun asi, lo que no entiendo es poque no se puede cancelar simplemente el mensage al recibirlo?
Yo creo que porque el mensaje se manda directamente al Edit, no a la aplicación. Por eso el ApplicationEvents no puede detectarlo; nunca pasa por ahí.

Lo que puedes hacer es interceptarlo a nivel del TEdit, por ejemplo:

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, AppEvnts;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    OldEditWndProc: TWndMethod;
    procedure EditWndProc(var Message: TMessage);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  OldEditWndProc := Edit1.WindowProc; // guardar el manejador de mensajes original
  Edit1.WindowProc := EditWndProc;  // reemplazar el manejador por uno nuestro
end;

procedure TForm1.EditWndProc(var Message: TMessage);
begin
  if Message.Msg <> EM_SETPASSWORDCHAR then
    // llamar al manejador de mensajes original
    OldEditWndProc(Message);
end;

end.

Aquí lo que se hace es reemplazar al vuelo el procedimiento que maneja los mensajes del control Edit1. El procedimiento de reemplazo simplemente filtra el mensaje EM-SETPASSWORDCHAR, y deja el resto al procedimiento original.

Pero claro, tal como dice Javier, basta un GetText para obtener el texto al descubierto.

// Saludos

Última edición por roman fecha: 20-05-2008 a las 01:33:09. Razón: Sobraba un Button1 :)
Responder Con Cita
  #15  
Antiguo 20-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Andaleeee....a eso me referia

Ok Roman....Muchas gracias...exactamente a eso queria llegar.... ahora si cancelamos el envio de nuestro password y para lo que mencionan sobre GetText solo debemos hacer lo siguiente:

Código Delphi [-]
procedure TForm1.EditWndProc(var Message: TMessage);
var
  PFalso: String;
begin
PFalso:='12345';
if Message.Msg <> EM_SETPASSWORDCHAR then OldEditWndProc(Message); ;
if Message.Msg =  WM_GETTEXT then
        Message.Result := StrLen(StrLCopy(PChar(Message.LParam), PChar(PFalso), Message.WParam - 1));
end;

Con eso evitamos que se envie nuestro password y de paso le jugamos una broma al malhechor mandandole un password falso! Saludos y gracias por el apoyo!
Responder Con Cita
  #16  
Antiguo 20-05-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 cascarrabias Ver Mensaje
y de paso le jugamos una broma al malhechor
Y a ti mismo

Para obtener el valor de Edit1.Text, la VCL hace uso precisamente de WM_GETTEXT, así que si no tomas precauciones, obtendrás lo mismo que le des al malechor

// Saludos
Responder Con Cita
  #17  
Antiguo 20-05-2008
cascarrabias cascarrabias is offline
Miembro
 
Registrado: abr 2006
Posts: 103
Poder: 19
cascarrabias Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Y a ti mismo

Para obtener el valor de Edit1.Text, la VCL hace uso precisamente de WM_GETTEXT, así que si no tomas precauciones, obtendrás lo mismo que le des al malechor

// Saludos

Ohhh...tienes razon....gracias por el aviso! . Bueno...ahora solo es cosa de poner un boleano que este a false y cuando queramos guardar o utilizar informacion del edit solo antes lo ponemos a true y acabando de usar el texto del edit lo regresamos false !

Código Delphi [-]
procedure TForm1.EditWndProc(var Message: TMessage);
var
  PFalso: String;
begin
PFalso:='12345';
if Message.Msg <> EM_SETPASSWORDCHAR then OldEditWndProc(Message); ;
 if permitir=false then
      if Message.Msg =  WM_GETTEXT then Message.Result := StrLen(StrLCopy(PChar(Message.LParam), PChar(PFalso), Message.WParam - 1));
end;

Saludos Roman y gracias por la ayudaaa!

Última edición por cascarrabias fecha: 20-05-2008 a las 02:13:00.
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
Cifrado de password... dunia_lv MS SQL Server 2 08-08-2006 22:06:18
Accesar a un BD sin password caifan_0883 SQL 2 09-05-2006 00:36:31
password en bde tiagor64 SQL 2 23-06-2005 00:04:09
password tharsisj Varios 2 27-02-2005 11:03:27
Ado Y Password joanajj Conexión con bases de datos 10 28-10-2004 16:23:55


La franja horaria es GMT +2. Ahora son las 00:01:06.


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