![]() |
1
2
好吧,你可以在你的程序中使用一个嵌入式数据库,它有一个加密的系统日期,每隔一段时间就插入一次。如果您看到“更新的”日期早于某个以前的日期,则可以看到有人更改了系统日期。这只是个主意。 |
![]() |
2
2
不会有一个 软件 解决这一问题的办法是不能以某种方式规避的。 假设您在短时间内发布演示软件,您可以按照@darioo的建议将安装日期时间记录在加密日志中。日志文件的位置应该在卸载程序没有删除的地方-但是日志应该不引人注目并且很小。 如果删除加密日志,许可证将自动过期。如果日期更早(当日志被解密和读取时),则许可证可以自动过期。您可能需要考虑日光节约模式的边缘情况-时钟可能在秋季/秋季返回一小时。 如果重新安装了应用程序,它会将旧的加密日志保留在原来的位置,并使用该日志,这样相同的许可证期将继续保持不间断。 如果加密日志被删除,并且软件被重新安装,那么它将无法区分第一次安装和重新安装之间的区别,因此它们将绕过它。但是,这将超出大多数用户的范围,特别是在加密日志被很好地隐藏的情况下。例如,您可以将其隐藏为 Alternate Data Stream . 注意:我会离开我的另一个职位,除非它被投票否决-在这种情况下,我会删除它,因为它似乎没有那么大的帮助。 |
![]() |
3
0
另一个想法是添加一些NTP连接以从Internet获取当前日期。 |
![]() |
4
0
我想我更喜欢@darioo提出的加密日志的建议。我只是想补充一下,对系统时间的更改是用eventid 4616写入Windows安全日志的。信息如下:
当然,可以使用适当的权限清除审核日志。所以可以绕开它。另外,我使用的是Windows7——它也在WindowsServer2008上,在WindowsServer2003上也有一个类似的版本。( http://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=4616 ) 这种方法的优点是,您可以知道时间是什么时候更改的——以前是什么时间,改成了什么时间。因此,与一年的变化相比,你可以检测到一个小时左右的微小变化。 |
![]() |
McGeek07 · Java实体组件系统-推理变量T具有不兼容的边界 7 年前 |
![]() |
Hazem Alabiad · 通过处理程序获取僵尸进程 7 年前 |
![]() |
Brink · Powershell循环提前退出 7 年前 |
|
user936965 · php系统(“npm安装”)不工作 7 年前 |
![]() |
bradley · 指定的填充模式对此算法-c#-系统无效。安全密码学 7 年前 |
![]() |
Luis Cano · 从Shining应用程序调用系统命令 7 年前 |
![]() |
KenProgrammer · Java十进制到十六进制的使用基础 7 年前 |
![]() |
Brady H · 防范Windows中函数调用之间的系统更改 7 年前 |