Newsgroup: it.comp.os.win.win2000
Titolo: Log variazioni orologio

Per questioni di protezione di un abbonamento di un sw, dovrei poter
scoprire se l'utente ha arretrato l'orologio di sistema.
Esempio:
-oggi alle 14.30 parte il mio sw, e legge l'ora.
-l'utente chiude l'applicativo.
-domani scade l'abbonamento.
-fra un mese, l'utente arretra l'orologio a oggi alle 15.00, poi avvia
nuovamente il sw.
A questo punto, il mio sw ritiene di essere ancora valido, e parte
regolarmente.
Invece, dovrei leggere da qualche parte che l'orologio è stato manipolato in
maniera pesante, e il mio sw dovrebbe disabilitarsi, come farebbe se venisse
avviato dopo la data di scadenza.
L'ideale, sarebbe leggere in qualche log le variazioni effettuate su data ed
ora di sistema, ma non so se questo esiste.
Purtroppo, l'esecuzione del sw deve avvenire off-line, e non è detto che il
registro eventi sia attivo sulla macchina dell'utente.
Qualcuno sa se esiste il modo di capire se l'utente ha variato l'ora di
sistema?
Ciao e grazie.
Alberto
PS: per adesso mi accontenterei di W2k, ma se esistesse una soluzione anche
per W98 sarebbe ancora meglio.

Credo proprio che non sia possibile su entrambi.
Perché non inseerisci nel tuo software un contatore che funzioni per
variazione di date..? Mi spiego meglio. Questo contatore dovrebbe
riconoscere come giorno differente quelli con date diverse, quindi ad
esempio, il 10/11/02 ed il 7/11/02, anche se consecutivi, essendo
differenti, danno complessivamente due giorni. Capito? Così se viene
variata la data, il tuo contatore scatta... 
Ciao, Antonio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Se è un utente di dominio, non appartenente al gruppo Local Administrators
allora non può cambiare l'ora.
Saluti
Francesco.

 variata la data, il tuo contatore scatta...
Non ti seguo....
Oggi è il 27/11. Il mio applicativo parte e pensa "OK, sono ancora
all'interno di Novembre, l'abbonamento è valido"
Fra due mesi, l'utente riporta la data al 27/11, e apre l'applicativo.
L'applicativo pensa "OK, sono ancora all'interno di Novembre, l'abbonamento
è valido", e parte regolarmente.
Non vedo come far scattare il contatore.
Come detto nel primo post, l'applicativo non è sempre attivo, e purtroppo
l'utilizzo deve avvenire anche off-line, per cui non è possibile verificare
la data attraverso Internet.
Le soluzioni che vedo (se tecnologicamente possibili) sono solo due:
- Analizzando qualcosa di simile ad un log di sistema, intercettare
manipolazioni di data ed ora avvenute mentre l'applicativo era spento
- Testare data ed ora confrontandole con un qualche tipo di orologio
indipendente dal sistema operativo.
Ma non trovo il modo per realizzarle.
Ciao e grazie
Alberto

 allora non può cambiare l'ora.
E' un sw distribuito via Explorer, per cui l'utente deve essere
Administrator, per poter installare.
E comunque, non posso porre vincoli di questo tipo all'utente, che
generalmente è di bassissimo livello, e si connette da casa con un modem.
Ciao e grazie.
Alberto

 è valido", e parte regolarmente.
Una soluzione (parziale) potrebbe essere quella di registrare l'ultima data
di utilizzo del programma. Se successivamente viene lanciato con data
precedente, (perché ad esempio l'utente ha arretrato il calendario al 1
novembre, per godersi un altro mese a sbafo) l'applicativo dovrebbe
rifiutarsi di partire, invitando a contattare l'assistenza se invece si
ritiene di essere ancora all'interno del periodo di validità
dell'abbonamento.
Se la data è sempre la stessa,  ovviamente,  il controllo sulla data non è
sufficiente. Ma anche per l'utente dover reimpostare la data ogni volta
(ammesso che scopra il trucco) è una seccatura! :-)
Enrico
http://www.enrigua.net

 
Altro trucchettino da aggiungere a quello di Enrico potrebbe essere 
l'aggiunta di una chiave in
HKLM\Software\Microsoft\Windows\CurrentVersion\Run che faccia partire il 
programma (usando delle chiavi su riga di comando) per fare solamente il 
controllo della data.
Così se anche scoprisse il trucco, non avrebbe tempo sufficiente di 
cambiare la data a meno di aggiungere un altra chiave che sposta l'ora 
prima di eseguire la tua applicazione.
Se la chiave viene modificata o cancellata, alla prossima esecuzione del 
programma questa può essere facilmente ripristinata. (per la serie che 
può tirare indietro l'orologio di un mese, ma per farlo non può usare il 
programma per un mese)
Al massimo, per problemi di policy degli utenti (se si utilizza un 
utente non amministratore o power) si può usare HKCU invece di HKLM.
Luca

Luca Pascali wrote:
Mi č venuta in mente un'altra alternativa al run: un bel processino di 
sistema e il solito discorso che al lancio dell'applicazione viene 
riabilitato/fatto partire o reinstallato.
Se non fosse possibile reinstallarlo (power user o administrator 
richiesti) non fai partire l'applicazione (periodo di prova scaduto)
Luca