Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Problema para asegurar mi software

Hola compañeros del foro, estoy tratando de ponerle un pequeño codigo de seguridad, este es el codigo:

Código Delphi [-]
procedure TFMain.FormCreate(Sender: TObject);
var Fecha: TDate;
begin
ShortDateFormat := 'dd/MM/yyyy';
DateSeparator := '/';
Fecha := Now;
if ARegistro.Fields[0].AsDateTime = Fecha then
  begin
    ShowMessage('El Tiempo se ha vencido, por favor realice tu pago para rehabilitar el software. Gracias.');
    Application.Terminate;
  end else begin
FLogin:=TFLogin.Create(self);
  try
    FLogin.ShowModal;
  Finally
    FLogin.Free;
  end;
 end;
end;

como ven en el codigo en la base de datos tengo un campo con una fecha especifica, trato de calcular que si la fecha de hoy es igual al que esta en la base de datos y mandar un mensaje y cerrar el programa, sino es asi sale la ventana de login, pero no me esta funcionando, me sale este error:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project SalonPlus.exe raised exception class EAccessViolation with message 'Access violation at address 004C244B in module 'SalonPlus.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
se que es algo sencillo de veras mis neuronas no estan funcionando hoy. Estoy utilizando Delphi 7 con Access, si Access porque el cliente me lo pidio

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 07-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola enecumene,
¿En que línea te da error? ¿Te aseguraste de que esté la conexión establecida, y/o abiertas las tablas que empleas?

Me llama la atención el hecho de que te un error... a simple vista no veo problema alguno... ¿seguro que el error proviene de allí?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Ahh Jodienda, la tabla estaba Cerrada , habia advertido que mis neuronas no estaban funcionando hoy, pero de igual manera no me esta haciendo la comparacion, en el campo tengo la fecha de hoy y me sale la ventana de login en vez del mensaje, que puede ser?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 07-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
enecumene, la verdad es que no te sabría decir... ¿Estás seguro que en la tabla tenés guardada dicha información?
No veo problema en tu código, y como no tengo algo a mano con que practicar... no puedo simular la prueba.

Ahora, si me permites mi humilde opinión en cuanto a la seguridad que tu deseas hacer...
Sería recomendable que ese tipo de comparación y dicha información no se guarde en la base de datos... sobre todo si es access. Ya que resulta fácil con Access abrir el archivo, abrir la tabla y modificarlo a mano.
Lo ideal es que esa información para comparar es que la guardes en algún archivo oculto... en el registro de Windows o algo por el estilo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 07-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Ahh Jodienda, la tabla estaba Cerrada , habia advertido que mis neuronas no estaban funcionando hoy, pero de igual manera no me esta haciendo la comparacion, en el campo tengo la fecha de hoy y me sale la ventana de login en vez del mensaje, que puede ser?
Voy a ser sincero...

Si estas usando ese codigo para proteger tu software, facilmente cualquiera podria usar un editor de Ejecutables como el OllyDebuger o cualquiera de esos y violar dicha seguridad facilmente... Edito: Ademas de la razón que te ha dado Delphius...

Por otro lado, si decides que no necesitas tanta seguridad en tu aplicativo, el problema que acabas de comentar se da porque la fecha que tienes en dicho campo es igual pero la hora no, seguramente nunca sera igual, ya que en la BD debe ser 00:00:00 pero la estas comparando con un Now que te devuelve la Hora ademas de la fecha, por lo que esta linea...

Código Delphi [-]
if ARegistro.Fields[0].AsDateTime = Fecha then //Ademas si lo del Now fuese Date 
//y dejas esto asi, solo bloqueara el aplicativo para ese dia y al otro dia seguira funcionando normalmente

Debes cambiarla por esta...

Código Delphi [-]
if ARegistro.Fields[0].AsDateTime >= Fecha then

Espero te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 07-02-2008 a las 19:23:21. Razón: Agregar que Delphius a dado otra razón tambien valida :)
Responder Con Cita
  #6  
Antiguo 07-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por jhonny Ver Mensaje
Voy a ser sincero...

Si estas usando ese codigo para proteger tu software, facilmente cualquiera podria usar un editor de Ejecutables como el OllyDebuger o cualquiera de esos y violar dicha seguridad facilmente... Edito: Ademas de la razón que te ha dado Delphius...

Por otro lado, si decides que no necesitas tanta seguridad en tu aplicativo, el problema que acabas de comentar se da porque la fecha que tienes en dicho campo es igual pero la hora no, seguramente nunca sera igual, ya que en la BD debe ser 00:00:00 pero la estas comparando con un Now que te devuelve la Hora ademas de la fecha, por lo que esta linea...

Código Delphi [-]if ARegistro.Fields[0].AsDateTime = Fecha then //Ademas si lo del Now fuese Date y dejas esto asi solo bloqueara el aplicativo, para ese dia y al otro dia seguira funcionando normalmente


Debes cambiarla por esta...

Código Delphi [-]if ARegistro.Fields[0].AsDateTime >= Fecha then


Espero te sirva .
Es cierto. Ese "mayor o igual" tiene que soluciona ese problema...

Si no es molestia amigo Jhonny, ¿a que te refieres cuando dices que se puede violar ese aspecto de seguridad con un Editor de Ejecutables? Escuché hablar de editores hexadecimales... pero ese bicho que tando daño puede hacer?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale, gracias por los consejos de Vos, johnny, aun asi no me funciono, la fecha en el campo no guarda horas solo la fecha, puede ser?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #8  
Antiguo 07-02-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Vale, gracias por los consejos de Vos, johnny, aun asi no me funciono, la fecha en el campo no guarda horas solo la fecha, puede ser?
Hola... solo queri decir que en este post deje información del componente TmxProtector
__________________
BlueSteel
Responder Con Cita
  #9  
Antiguo 07-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Vale, gracias por los consejos de Vos, johnny, aun asi no me funciono, la fecha en el campo no guarda horas solo la fecha, puede ser?
Amigo enecumene, solo te puedo comentar que si haces eso debes de pensar en que el usuario puede cambiar la fecha de la maquina y con eso seguirá usando el programa, además claro de lo que te dicen Delphius y jhonny.

Yo lo que alguna vez hice (ya no instalo DEMOS) era contar los dias usados metiendo un archivo en algun directorio de windows y no comparar fechas, pero, pues el que quiera piratear encontrará la forma de hacerlo.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 07-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Delphius Ver Mensaje
Es cierto. Ese "mayor o igual" tiene que soluciona ese problema...

Si no es molestia amigo Jhonny, ¿a que te refieres cuando dices que se puede violar ese aspecto de seguridad con un Editor de Ejecutables? Escuché hablar de editores hexadecimales... pero ese bicho que tando daño puede hacer?

Saludos,
Bueno, debo aclarar antes de abrir mi bocota que no soy un ducho manejando esos programas... pero he tenido la oportunidad de Crackear mis propios aplicativos gracias a ellos... Si, si, ya se que yo conocia la estructura de su seguridad y toda la cosa pero con ellos me pude dar cuenta de lo fragil que eran... ¿Como?

Mira, vos instalas ese programa, solo le dices que quieres abrir un ejecutable y él te muestra muchos 1 0 y caracteres extraños, entre todos esos caracteres extraños, podras ver pedazos de codigo, por ejemplo...

- Si tu tienes un TDataBase, y en él haz colocado el usuario y la contraseña de la BD, luego podras verlo por medio de estos programitas.

- Creo haber leido en alguna parte que si vas a modificar algo tendras que usar la misma cantidad de caracteres que tenia anteriormente, osea que si alguien abre el ejecutable de enecumene con un programa de estos y logra ver que en alguna parte dice algo como...

Código Delphi [-]
if ARegistro.Fields[0].AsDateTime >= Fecha then

Podra, cambiar el > por un < y violaria esta seguridad facilmente. Con esos programas tambien se logran modificar DCUs, BPLs y cosas por el estilo.

Si se decide que el programa debe llevar uno de estos sistemas de seguridad, es mejor pensar muy bien como desarrollar este asunto.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #11  
Antiguo 07-02-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Hola enecumene, te aseguras de darle formato a Now para que coincida con la que tienes guardada en la BD ?? aaaa/mm/dd

Cita:
Empezado por Delphius
Lo ideal es que esa información para comparar es que la guardes en algún archivo oculto... en el registro de Windows o algo por el estilo.
Ten en cuenta eso...

Cita:
Empezado por Delphius
¿a que te refieres cuando dices que se puede violar ese aspecto de seguridad con un Editor de Ejecutables? Escuché hablar de editores hexadecimales... pero ese bicho que tando daño puede hacer?
No te imaginas cuanto...
__________________
Web
Responder Con Cita
  #12  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Amigo enecumene, solo te puedo comentar que si haces eso debes de pensar en que el usuario puede cambiar la fecha de la maquina y con eso seguirá usando el programa, además claro de lo que te dicen Delphius y jhonny.

Yo lo que alguna vez hice (ya no instalo DEMOS) era contar los dias usados metiendo un archivo en algun directorio de windows y no comparar fechas, pero, pues el que quiera piratear encontrará la forma de hacerlo.

Salud OS
Gracias Amigo Egostar, entiendo lo que me dices, estuve planeando desactivar la opcion de cambiar las fechas de windows, es legal eso?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #13  
Antiguo 07-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Vale, gracias por los consejos de Vos, johnny, aun asi no me funciono, la fecha en el campo no guarda horas solo la fecha, puede ser?
Asi no se vale, mientras generaba una respuesta, aparecieron 3 nuevas .

Prueba cambiando el Now por el Date a ver si te funciona . Si no pues debe ser algo mas que realmente no se me ocurre ahora .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #14  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por felipe88 Ver Mensaje
Hola enecumene, te aseguras de darle formato a Now para que coincida con la que tienes guardada en la BD ?? aaaa/mm/dd
No la estoy dando de esta manera?

Código Delphi [-]
procedure TFMain.FormCreate(Sender: TObject);
var Fecha: TDate;
begin
ShortDateFormat := 'dd/MM/yyyy';
DateSeparator := '/';
Fecha := Now;
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #15  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
Asi no se vale, mientras generaba una respuesta, aparecieron 3 nuevas .

Prueba cambiando el Now por el Date a ver si te funciona . Si no pues debe ser algo mas que realmente no se me ocurre ahora .
Amigo hice el cambio me funciono, me salio mi mensaje, perfecto!!, voy a tener que dejar de programar un rato a ver si mis neuronas se activan de nuevo.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #16  
Antiguo 07-02-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 18
felipe88 Va por buen camino
Si lo pruebas con el Breakpoint (F5 en la linea de codigo), puedes verificar que ambas partes de la condicion esten asi ??...

Ademas teniendo en cuenta lo que dijo egostar, yo me pregunto... tiene que con fecha, o podria ser con un numero determinado de dias. Bueno teniendo en cuenta que no se cual es tu idea y que la respeto claro esta

Edito: Bueno... pues si ya lo solucionaste, almenos tuviste buena audiencia
__________________
Web

Última edición por felipe88 fecha: 07-02-2008 a las 20:03:22.
Responder Con Cita
  #17  
Antiguo 07-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por enecumene Ver Mensaje
Amigo hice el cambio me funciono, me salio mi mensaje, perfecto!!, voy a tener que dejar de programar un rato a ver si mis neuronas se activan de nuevo.
Huy, que poco aguantas amigo enecumene, ya que se estaba animando esto

Una hora basto, para que tus neuronas se jodieran

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #18  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Huy, que poco aguantas amigo enecumene, ya que se estaba animando esto

Una hora basto, para que tus neuronas se jodieran

Salud OS
que va hombre es un ratito, un pequeño descanso, voy a estar rondando en la taberna.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #19  
Antiguo 07-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por jhonny Ver Mensaje
Bueno, debo aclarar antes de abrir mi bocota que no soy un ducho manejando esos programas... pero he tenido la oportunidad de Crackear mis propios aplicativos gracias a ellos... Si, si, ya se que yo conocia la estructura de su seguridad y toda la cosa pero con ellos me pude dar cuenta de lo fragil que eran... ¿Como?

Mira, vos instalas ese programa, solo le dices que quieres abrir un ejecutable y él te muestra muchos 1 0 y caracteres extraños, entre todos esos caracteres extraños, podras ver pedazos de codigo, por ejemplo...

- Si tu tienes un TDataBase, y en él haz colocado el usuario y la contraseña de la BD, luego podras verlo por medio de estos programitas.

- Creo haber leido en alguna parte que si vas a modificar algo tendras que usar la misma cantidad de caracteres que tenia anteriormente, osea que si alguien abre el ejecutable de enecumene con un programa de estos y logra ver que en alguna parte dice algo como...

Código Delphi [-]if ARegistro.Fields[0].AsDateTime >= Fecha then


Podra, cambiar el > por un < y violaria esta seguridad facilmente. Con esos programas tambien se logran modificar DCUs, BPLs y cosas por el estilo.

Si se decide que el programa debe llevar uno de estos sistemas de seguridad, es mejor pensar muy bien como desarrollar este asunto.
Gracias Jhonny por aclarar un poco el asunto.
Yo admito que tengo un Editor Hexadecimal, para poner a prueba los programas que hice, e invadido por la curiosidad. Me sorprendió el hecho de que con eso se podía leer fácilmente los resourcestring, algunos Labels, mensajes a usuarios y otras cosas... pero código no se vé. No me animé a modificar nada, pero si estuve viendo un poco.

Cita:
Empezado por felipe88 Ver Mensaje
No te imaginas cuanto...
Estuve haciendo una búsqueda y llegue a unos resultados... y me ha convencido. Hacen daño.

Recuerdo que un dia mientras estaba navegando llegué a unos hilos que hablaban de unos componentes que cifran los ejecutables... pero por seguridad y un poco de miedo no lo he probado.

Al igual que Jhonny, sugiero que Enecumene analize mejor el tema de la seguridad. Si es que está entre sus planes incorporar mejores medidas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #20  
Antiguo 07-02-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Al igual que Jhonny, sugiero que Enecumene analize mejor el tema de la seguridad. Si es que está entre sus planes incorporar mejores medidas.
vale gracias por los consejos, entrare en el tema de seguridad cuando tenga un proyecto mas grande, pues el sistema al que le estoy implementando este codigo para forzar el pago mensualmente es un sistema para un salon de belleza, no creo que las empleadas o peluqueras sean duchas para ese tipo de cosas, digo, puede haber una en 1 millon, pero estoy seguro que las que utilizaran ese sistema no lo seran .
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Microsoft y CISCO se unen para asegurar datos estatales. Epachsoft Noticias 0 26-07-2007 06:34:36
Intentando asegurar Windows Vista seoane Noticias 2 27-10-2006 01:43:59
Software para hacer ayudas (hlp) Alexander Varios 6 01-07-2005 07:00:45
Licencia para mi software Carlex Varios 1 21-06-2005 01:29:22
Asegurar selección en un TListView walrus OOP 1 08-09-2004 14:46:06


La franja horaria es GMT +2. Ahora son las 21:55:11.


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