100分求一个VC实现的禁止用户删除注册表的方法

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:15:27
我的软件的注册信息加密之后保存在注册表中,可是就算用户没注册试用期过后,如果他找到找到注册表项将其删除就会重新获得30天的试用期,求一个解决办法,或者有没有保护注册表不让用户删除的方法,最好发些代码,如果代码很多可以再加50分
sdhexu - 江湖少侠可否把读写CMOS的代码发上来?我可以给你再加50分

这种加密方法的出发点就不太好。如果非要保护注册表,除非做全局钩子,进行注册表监视,就像瑞星等杀毒软件一样。但是,这需要你的程序一直运行,就是说,要么你做一个服务,要么就向病毒一样神不知鬼不觉的伴随机器启动而启动。。但是,这样的话,你这个软件也就和流氓软件差不多了。。

而且,就算你实现了注册表监控,别人可以通过修改时间来继续使用。另外,还可以将你的监控进程杀死来修改注册表。。所以破解的方法也比较简单,为了不让别人杀死你的监控进程,还要做一些工作,因此,如果非要在这方面下功夫,那你花费的时间和精力,可能要很多,而且需要的技术成本也将很高。

因此,建议你更换一种加密方法吧。加密方法何止千万中。当年我做一个利用CMOS里面的保留字节来存储用户使用次数的。除非用户把电池拿掉来清空CMOS,否则如何也能检测到使用了多少次。而且用户很难想象居然放在CMOS里面。类似的方法很多。。不多说了。

-------------------------------------------------------

当年我是用BC做的。后来没有再弄了。不过你可以嵌入ASM来实现。具体的代码我记得不是很清楚了。但是,我记得写CMOS分两步做,一是向硬件的70端口发送一个指令,表明要写入CMOS的位置。然后,再向71端口发送指令,并指定要写的内容。读的忘了。具体的,你可以去查阅一下相关资料或者baidu一下。 你可以先用DEBUG程序做实验。当年清空CMOS密码就是用debug就可以实现。 o 70 11 o 71 00 这两条指令就可以。后来CMOS有了改进,不同的厂家也对CMOS存储的内容做了不同的修改,但是一些保留没用的字段大都还是一样的。你也可以去搜搜。

另外,我说的这个CMOS的方法,只是一个引喻,你还可以考虑使用其他的方法。很多的。

办法是有的 但是没有绝对安全

我可以给你提一个两个的方案

但是不要说如此这般就可以破解

没有完美的办法

第一.隐藏注册表路径,把信息写在一个千奇百怪的路径中

虽然不那么光明磊落 但是是个好办法