Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Sistemas operativos > Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2004
codigit codigit is offline
No confirmado
 
Registrado: feb 2004
Posts: 16
Poder: 0
codigit Va por buen camino
Bloquear la Hora WinXP/2000

Saludos a todos, soy un novato en esto de programacion ero simpelmente quiero hacer una pequeña aplciacion que sea capaz de bloquear la fecha y la hora del sistema que no permita que la modifiquen. en windows xp/2000 Gracias.
Responder Con Cita
  #2  
Antiguo 23-08-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola!

Lo que podrías hacer es renombrar el archivo de applet (CPL para los amigos : e imposibilitar de esa manera los cambios de fecha/hora por parte del usuario. El applet es: Timedate.cpl

Un truco de win9x era editar el archivo Control.INI que estaba en C:\Windows\ y agregar las líneas:
Código:
[don't load]
TimeDate=no
(Claro que esto funcionaba en win9x... en winXP/2k ni idea)

Y si querés meterte por código yo miraría las funciones SetSystemTime y GetSystemTime de la unit Windows.

Eso es todo!
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 23-08-2004
Amilius Amilius is offline
No confirmado
 
Registrado: ene 2004
Posts: 138
Poder: 0
Amilius Va por buen camino
Angry

Cita:
Empezado por codigit
Saludos a todos, soy un novato en esto de programacion ero simpelmente quiero hacer una pequeña aplciacion que sea capaz de bloquear la fecha y la hora del sistema que no permita que la modifiquen. en windows xp/2000 Gracias.
Traducido:

Quiere hacer un virus que desconfigure la hora y fecha y que el usuario no pueda corregir. O bien el tarado de su catedrático le dio este trabajo con el mismo propósito maquiavelico.

Hijo esas cosas no se hacen que vergüenza!!
Responder Con Cita
  #4  
Antiguo 23-08-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Amilius, yo también pensé en lo mismo pero después recordé a aquellos estudiantes del secundario que no tienen nada mejor que hacer que estar tocando todo para ver que pasa.

Puede ser que hoy estoy medio "buenazo" y no hize tu mismo comentario.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #5  
Antiguo 23-08-2004
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 Amilius
Hijo esas cosas no se hacen que vergüenza!!
Amilius, creo que has exagerado un poco. Realmente no sabes cuál es el objetivo real de la pregunta. Aquí en estos foros se ha discutido por lo menos un uso perfectamente válido anteriormente: realizar un reloj checador de empleados. Posiblemente el bloqueo del reloj no sea la mejor forma de atacar el problema (si tal fuese el problema) pero este no es el punto. Si nos ponemos a priori a pensar que un pedazo de código puede per sé ser fuente de males caemos en el riesgo de una visión como esta.

// Saludos
Responder Con Cita
  #6  
Antiguo 25-08-2004
codigit codigit is offline
No confirmado
 
Registrado: feb 2004
Posts: 16
Poder: 0
codigit Va por buen camino
Tengo Que Defenderme

Amilius simeplemente te dire que necesito saber como bloquear el cambio de hora y fecha como medida de seguridad de un programa que no es mio, pero como yo administrador de una compañia, dicho programa cambiandole la fecha y la hora es posible lograr un fraude, datos que ya fueron notificados al programador pero el todavia no me ha dado la solucion, pero a mi si me interesa que se resuelva el problema urgente, por eso he decidido yo mismo tomar las medidas necesarias. Gracias.
Responder Con Cita
  #7  
Antiguo 25-08-2004
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
Se me ocurre algo aunque no sé qué tan viable sea o si es lo óptimo.

En el programa que tú hagas comienzas tomando la hora apenas inicie (y el programa habrá que iniciarlo al comenzar Windows). Lo más cómodo es con

Código Delphi [-]
StartTime := Time();
StartTicks := GetTickCount();

GetTickCount te dá el número de milisegundos desde que inicia Windows.

Con una componente Timer checas cada x segundos el tiempo transcurrido

Código Delphi [-]
procedure TForm1.Timer1OnTimer(Sender: TObject);
var
  TicksElapsed: Cardinal;
  TimeElapsed: Cardinal;

begin
  TicksElapsed := GetTickCount() - StartTicks;
  TimeElapsed := MiliSecondsBetween(Time() - StartTime);

  if (Abs(TicksElapsed - TimeElapsed) > MinAllowed) then
    ShowMessage('Usted ha alterado la hora del sistema');
end;

Lo estoy escribiendo como se me ocurre y sin probar así que quizá algo no esté correcto pero la idea es esta:

Tu programa mide cada x tiempo el número de milisegundos que han transcurrido desde que inicio la sesión de Windows. Este valor debe coincidir (o acercarse mucho) al número de milisegundos entre la hora de inicio y la hora actual, y dejará de ser así si se cambia la hora de la pc.

Aquí estoy suponiendo que el valor de GetTickCount no se afecta al cambiar la hora de la máquina, es decir, que no depende del reloj de ésta. Creo que así es pero si no podrías usar algo como QueryPerformanceCount que se basa en los ciclos del procesador y no en el reloj.

Así, aun cuando no estás bloqueando propiamente el cambio de hora, sí podrías detectar si alguien la cambia.

// Saludos
Responder Con Cita
  #8  
Antiguo 25-08-2004
Amilius Amilius is offline
No confirmado
 
Registrado: ene 2004
Posts: 138
Poder: 0
Amilius Va por buen camino
Angry

Cita:
Empezado por codigit
Amilius simeplemente te dire que necesito saber como bloquear el cambio de hora y fecha como medida de seguridad de un programa que no es mio, pero como yo administrador de una compañia, dicho programa cambiandole la fecha y la hora es posible lograr un fraude, datos que ya fueron notificados al programador pero el todavia no me ha dado la solucion, pero a mi si me interesa que se resuelva el problema urgente, por eso he decidido yo mismo tomar las medidas necesarias. Gracias.
La fecha y hora de una computadora de usuario común y silvestre corriendo windows simplemente no es fiable. O se toma fecha y hora (encriptadas) de un servidor al cual no tiene acceso el usuario final (el que podría realizar el fraude) o será un agujero de seguridad gigantesco!!

Por eso NO TE METAS EN EL TRABAJO DEL PROGRAMADOR !!!

***

Para Román: Desgraciadamente esta es la forma con la que se han hecho las mayores desgracias del software, incluyendo windows y toda su nebulosa de bugs, debilidades, errores de diseño: "soluciones" de personas que no tienen conocimiento del tema: esos "aprendices de brujo" que terminan detrozando lo que cae en sus manos. Personalmente siempre me opondré a cualquier "solución" como esta: "Bloquear la hora y la fecha" que sólo terminará trayendo más problemas y al final será un remedio pasajero.

***

"realizar un reloj checador de empleados"

Eso es mucho peor !!! ¿Que clase de sádico salvaje sin sentimientos haria una cosa como esa?
Responder Con Cita
  #9  
Antiguo 25-08-2004
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
Amilius

Me parece que estás empecinado en "ver moros con tranchetes".

Yo no sé si codigit es programador o no pero su postura me parece totalmente natural.

Si yo encargo un programa a alguien y éste tiene un defecto del tipo descrito y no puedo esperar hasta que el programador termine las modificaciones entonces haré lo que esté a mi alcance para solventar la situación mientras la solución óptima se da.

Tu aseveración de "NO TE METAS EN EL TRABAJO DEL PROGRAMADOR " me parece fuera de lugar precisamente cuando el programador en cuestión, al menos por lo que nosotros sabemos, justamente no ha hecho bien su trabajo.

Además codigit en ningún momento ha dicho que tomará lo del bloqueo del reloj como una solución definitiva. A mi entender es simplemente algo que urge, y si el programador se toma su tiempo, yo en su lugar desde luego que me "metería en el trabajo del programador" y buscaría soluciones alternas, si bien pasajeras.

En cuanto a lo del reloj checador, no sé si lo dices en broma pero, al menos en México, nos guste o no, el uso del reloj checador es una práctica bastante común, como lo es la de tratar de alterarlo.

// Saludos
Responder Con Cita
  #10  
Antiguo 25-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Ya que hablamos de XP/2k, porque no simplemente te limitas a crear un perfil de usuario en el que no tenga privilegios de cambio de hora?
Responder Con Cita
  #11  
Antiguo 25-08-2004
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 cadetill
Ya que hablamos de XP/2k, porque no simplemente te limitas a crear un perfil de usuario en el que no tenga privilegios de cambio de hora?
¿Y esto sirve?

Es decir, no sé exactamente cuál política es la que habría que modificar pero muchas de estas políticas sólo impiden el acceso por los medios "normales" pero no impiden que se acceda por programas externos.

No digo que no, sólo tengo esta duda.

En todo caso, si lo del perfil no fuese viable, hay algo más sencillo de lo que expuse anteriormente. En los demos de las componentes Indy viene un ejemplo muy sencillo para obtener la hora de un servidor en Internet mediante la componente TIdTime. Sólo habría que checar periódicamente con un Timer la hora de Internet y compararla con la de la PC.

// Saludos
Responder Con Cita
  #12  
Antiguo 26-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Cita:
Empezado por roman
¿Y esto sirve?......
Hola Román

Pues la verdad es que no me he parado a probar si por medios "no normales" se puede cambiar la hora. Mañana lo pruebo y te comento.
Responder Con Cita
  #13  
Antiguo 26-08-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Hola

S.O. Windows 2000 Prof.

Si por medios "no normales" nos referimos a nivel de programa..... he realizado una aplicación sencilla que cambia el día (copy-paste de Trucomanía)

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);

  procedure FechaDelSistema(Fecha: TDateTime);
  var
    FecSys: TSystemTime;
    nA, nM, nD: Word;
  begin
    DecodeDate(Fecha, nA,nM,nD);
    GetLocalTime(FecSys);
    FecSys.wYear  := nA;
    FecSys.wMonth := nM;
    FecSys.wDay   := nD;
    SetLocalTime(FecSys);
  end;

begin
  FechaDelSistema( DateEdit1.Date );
end;

He creado un usuario con permisos de "usuario" que no tiene permisos para cambiar la fecha/hora del sistema (con doble clic en el relojito o por Panel de Control)

He ejecutado el programilla desde ese usuario y..... no ha cambiado la fecha.

Si hay otros mecanismos para cambiar la fecha.... pues ya no se, esto es lo que yo he probado
Responder Con Cita
  #14  
Antiguo 29-08-2004
codigit codigit is offline
No confirmado
 
Registrado: feb 2004
Posts: 16
Poder: 0
codigit Va por buen camino
Saludos a todos, he estado un poco ocupado y no habia chekado la web, y por lo que he visto he creado una polemica con el tema, Amilius nose porque motivo me has dado malas soluciones, en realidad la hora y fecha del servidor es encriptada y el usuario final desde su pc no tiene acceso a la modificacion de la misma, el problema radica en que la hora del servidor si puede ser modificada por cualquier usuario, ahi es que esta el fallo.

"NO TE METAS EN EL TRABAJO DEL PROGRAMADOR"

Con respecto a ese comentario, necesito una solucion inmediata, un mientras tanto que mantenga a cualquier usuario restringido o bloqueado al cambio de la fecha y la hora, como dije anteriormente el programador me dijo que esta trabajando en eso, y todavia no me ha dado ninguna posible solucion, por eso he que he optado por mientras tanto buscar alguna solucion inmediata al problema...
Gracias.
Responder Con Cita
  #15  
Antiguo 29-08-2004
Amilius Amilius is offline
No confirmado
 
Registrado: ene 2004
Posts: 138
Poder: 0
Amilius Va por buen camino
Exclamation

Cita:
Empezado por codigit
el problema radica en que la hora del servidor si puede ser modificada por cualquier usuario
JUAS !!!!

¿Y si les da la gana seguro que pueden desenchufarlo cuando quieran?

Seguridad: 0%
Responder Con Cita
  #16  
Antiguo 01-09-2004
Avatar de antrax
antrax antrax is offline
Miembro
 
Registrado: ago 2004
Ubicación: Escobedo N.L.Mx
Posts: 10
Poder: 0
antrax Va por buen camino
Polemica Interesante...

Interesante la polemica despertada por la pregunta de nuestro forista Codigit...


Amilius, segun he visto tu plataforma de desarrollo no es Windows, estoy mal?, Hay que reconocer superioridad en muchos aspectos en S.O. com Linux, que en el manejo de todos sus recursos es incomparable con windows, pero tambien debemos entender y comprender que el S.O. "Comercial" por excelencia es el Windows, que no es el mejor pero si el mas comercial.
las Necesidades de Codigit, que atienden a la falta de respuesta de su programador lo obligan a pensar en soluciones que entre mas lógicas sean mas tontas nos llegan a parecer por la forma en que tal vez nos hemos acostumbrado a pensar, ya sea estructurada o con mucha abstracción, es parte del precio de ser Programador, poco a poco nos alejamos del Sentido Común, no todos ni al 100%, pero nos ha sucedido.

Codigit. En relación al tema, la aplicación de políticas podrá ser tar rigida o flexible como tu puedas, la sugerencia es que !con calma! revises los elementos a denegar para que despues no quedes tu también sin privilegios, inclusive si tu aplicación corre para multiples usuarios en diferentes equipos, podras diseñar politicas de seguridad a través del S.O. para todos los niveles de tus usuarios. Si optas por la aplicación de políticas, cualquier duda a la orden quedo.
__________________
I.S.C. Diódoro Guillermo Avilez Alanís
Consultoria y Desarrollo de Tecnologías de Información
TEL +52 8180 296184.
diodoro.avilez@takata.com
Responder Con Cita
  #17  
Antiguo 01-10-2004
Avatar de madman
madman madman is offline
Miembro
 
Registrado: may 2003
Ubicación: Nayarit, México
Posts: 242
Poder: 21
madman Va por buen camino
Pues coña, en Windows NT 5/XP puedes crear cuentas limitadas y asi impides que cambien la hora y fecha del sistema.
__________________
Guía de Estilo.
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


La franja horaria es GMT +2. Ahora son las 16:28:35.


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