Comment pouvez-vous détecter lorsque l'utilisateur a annulé la date du système? La situation d'utilisation est d'éviter de contourner les licences et le programme devra détecter un retour en arrière qui s'est produit lorsqu'il n'était pas en cours d'exécution.Comment détecter une date de retour système?
Répondre
Eh bien, vous pouvez utiliser une base de données intégrée dans votre programme avec une date système cryptée qui est insérée de temps en temps. Si vous voyez qu'une date "plus récente" est antérieure à une date antérieure, vous pouvez voir que quelqu'un a changé la date du système. C'est juste une idée.
Une autre idée consiste à ajouter également une connectivité NTP pour obtenir la date actuelle à partir d'Internet.
Migol - bien sûr, mais s'ils ne sont pas connectés ... –
Je pense que je préfère la suggestion de @ darioo d'avoir un journal crypté. Juste pensé que je voudrais ajouter que les changements à l'heure système sont écrites dans le journal de sécurité Windows avec EventID 4616. Voici le message:
The system time was changed.
Subject:
Security ID: TheComputer\Me
Account Name: Me
Account Domain: TheComputer
Logon ID: 0x283df
Process Information:
Process ID: 0x12b8
Name: C:\Windows\System32\dllhost.exe
Previous Time: s010-11-15T09:10:32.000000000Z
New Time: 2010-11-15T09:10:32.000000000Z
This event is generated when the system time is changed. It is normal for the Windows
Time Service, which runs with System privilege, to change the system time on a regular
basis. Other system time changes may be indicative of attempts to tamper with the
computer.
Bien sûr, le journal d'audit peut être effacé avec les autorisations appropriées. Donc, cela pourrait être contourné. En outre, j'utilise Windows 7 - il est également sur Windows Server 2008 et il existe un équivalent sur Windows Server 2003 (http://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4616). L'avantage de cette approche est que vous pouvez savoir quand l'heure a été changée - ce qu'elle était auparavant et à quoi elle a été changée. Ainsi, vous pouvez détecter un changement négligeable d'une heure ou plus par rapport à un changement d'une année.
Xcaliburp - comme vous le dites, cela pourrait être facilement contourné. –
Eh bien, lorsque le journal d'audit est effacé, il est également audité. Donc, vous savez qu'il a été contourné. Mais cette approche semble manquer d'élégance. – sheikhjabootie
Il ne va pas y avoir une solution du logiciel à cela qui ne peut pas être contournée en quelque sorte.
En supposant que vous distribuiez un logiciel de démonstration avec une courte période libre, vous pouvez enregistrer le datetime d'installation dans un journal crypté comme suggéré par @Darioo. L'emplacement du fichier journal doit être quelque part qui n'est pas supprimé par le programme de désinstallation, mais le journal doit être discret et petit.
Si le journal crypté est supprimé, la licence peut expirer automatiquement. Si la date est antérieure (lorsque le journal est déchiffré et lu), la licence peut expirer automatiquement. Vous voudrez peut-être envisager le cas de pointe du mode d'économie d'heure - l'horloge peut revenir en automne/automne d'une heure.
Si l'application est réinstallée, elle conserve l'ancien journal chiffré et l'utilise de telle sorte que la même période de licence continue sans interruption.
Si le journal crypté est supprimé et que le logiciel est réinstallé, il n'aura aucun moyen de faire la différence entre la première installation et une réinstallation afin de le contourner. Cependant, ce sera au-delà de la plupart des utilisateurs en particulier si le journal crypté est bien caché. Par exemple, vous pouvez le masquer comme Alternate Data Stream.
Note: Je vais quitter mon autre poste à moins qu'il ne soit rejeté - dans ce cas, je vais le supprimer car il ne semble pas être si utile.
- 1. Comment comparer une date avec la date du système?
- 2. Comment trouver 2 années de retour date
- 3. Comment éviter la dépendance de date système?
- 4. Comment détecter quelle langue le système actuel
- 5. Rendre mysql_fetch_assoc automatiquement détecter les types de données de retour?
- 6. Comment détecter le type de retour dans actionscript
- 7. Conversion d'une chaîne vide en une date, puis de retour
- 8. Comment détecter si l'heure du système est modifiée? (De .net)
- 9. jQuery UI DatePicker - Date de départ et date de retour
- 10. Existe-t-il une macro pour détecter le système d'exploitation ...?
- 11. Comment détecter le système de fichiers a changé en Java
- 12. init] date de retour une heure dans le passé?
- 13. Valeur de retour d'appel système dans C
- 14. Android Emulator retour date incorrecte
- 15. iPhone, sqlite3, comment détecter une date nulle, obtenir une erreur lors de l'affectation à un NSString?
- 16. Comment détecter si l'utilisateur a cliqué sur le bouton "retour"
- 17. Détecter si une date est en heure d'été dans MySQL
- 18. Comment détecter le système d'exploitation à partir d'une application Silverlight?
- 19. Comment calculer une date de retour d'une autre date avec un nombre donné de jours de travail
- 20. Comment détecter lorsqu'un périphérique est ajouté au système?
- 21. Comment détecter l'OpenJDK dans mon applet (Propriétés système)?
- 22. Comment détecter tous les navigateurs installés dans un système?
- 23. Comment détecter les navigateurs installés dans un système
- 24. Java - Comment obtenir la date du jour indépendamment de la date du système?
- 25. Extjs Date Heure Picker, date au lieu des points forts de la date du système
- 26. Comment définir l'heure de la date par défaut en tant que date du système dans mysql
- 27. NSIS - Comment détecter une installation silencieuse?
- 28. Comment définir une date système statique pour un utilisateur ou une application - "Groundhog Day"
- 29. Comment puis-je demander une valeur maximale et la date de retour trouvé
- 30. Détecter le système d'exploitation à partir de l'extension Firefox
Dario - mais l'utilisateur serait en mesure de supprimer la base de données pour réinitialiser le système. –
@Sean: si vous stockez dans cette base de données des paramètres essentiels à l'exécution de votre programme, plus rien ne fonctionnera. En outre, une base de données incorporée écrira son contenu dans un fichier. Un utilisateur peut être assez technique pour le pirater. Faisable, mais pas facile. – darioo
Darioo - J'ai une base de données intégrée et notre installateur a une option pour supprimer le fichier db lors de la désinstallation !!! –