实现360时间保护器类似功能,C#能胜任吗?如不行,只好转投C++怀抱了

hunyuan 2009-10-03 05:36:26
一个工业MIS项目,需要用工具实现系统时间的锁定,即禁止用户修改系统时间。360时间保护器可以完美的实现,不过也同样被轻松下载到,这个方法不能实现。采用组策略删除管理员修改时间权限方式也是权宜之计。

C#可否实现360时间保护器基本的功能呢?应该是不能达到360所谓的驱动级保护吧?!只要能实现,常规操作无法越过的时间保护,实现一定的自身保护就可以了(比如驻留内存,有可能被用户停止进程等基本自身保护功能)。

是不是只有调用系统API一个方向呢?请高人指点一二,小弟只会用C#,难道要转投C++怀抱吗?呵呵
...全文
164 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2009-10-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]
也可使用Hook SetSystemTime等函数,网上搜索一下API Hook。
[/Quote]
API Hook需要线程注入,写原生DLL,还是用C/C++吧。
参考
wuyq11 2009-10-03
  • 打赏
  • 举报
回复
也可使用Hook SetSystemTime等函数,网上搜索一下API Hook。
hunyuan 2009-10-03
  • 打赏
  • 举报
回复
大家说的方法也可以,不过现在按最初的思路,在服务中截获系统消息,卡在消息截取这了,在服务中,怎么截获系统消息呢?
足球中国 2009-10-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zjh222 的回复:]
向C++吧...你以后不会问能不能胜任, 而是问如何实现的问题 了
C#是作WEB的...与C++不一个档次
[/Quote]
好象只会用。c#做bs吧。
这样c#真正的功能你还没接触过。

dacan66 2009-10-03
  • 打赏
  • 举报
回复
这样做的话,也挺简单,分三步做。
1。写一个开机启动的程序,记录时间,程序内的计时器启动。
2。每隔一段时间检查一下系统时间和计时器内的时间,是否一样。
3。如果对应,那就继续,如果不对应,就把系统时间改回来,然后提示跳出提示信息。
dacan66 2009-10-03
  • 打赏
  • 举报
回复
这个有点麻烦,C#监控系列的API不是很了解,
但是你可以通过C#导入C++的DLL进行引用。

如果纯用C#,我觉得可以,让C#写进注册表RUN结点下,
开机时启动程序,记录开机时间,自制计时器,然后隔一段时间检查一下,计时器里的时间,是否和系统时间一样,如果不一样,就把系统时间调整过来。
并且警告用户不可修改系统时间。
zjh222 2009-10-03
  • 打赏
  • 举报
回复
向C++吧...你以后不会问能不能胜任, 而是问如何实现的问题 了
C#是作WEB的...与C++不一个档次
hunyuan 2009-10-03
  • 打赏
  • 举报
回复
BIOS已经加了密码,现在的想法就是拦截WM_TimeChange消息,看来只能试试做成服务了。

虽然时间是存储在CMOS中,不过也要通过操作系统来实现底层的时间修改,绕过API的修改的常用工具软件有吗?
gisyellow 2009-10-03
  • 打赏
  • 举报
回复
C#服务监控,不过也并非完全之策。。
threenewbee 2009-10-03
  • 打赏
  • 举报
回复
一听就不靠谱。
时间是放在CMOS里面的。
没有绝对可靠的禁止办法。

可以用C#写个系统服务,监视时间的变化,并且修改之。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧