C# 如何制作一个一次性的运行程序?

volfish 2019-01-15 08:45:30
做了一个小程序,利用注册表记录首次运行时间,这个程序还是一个试用程序,期限为一个月。然后我想做个延时器,等到期的时候可以修改注册表的时间,让试用程序可以试用。但是这个延时器想运行一次就失效,不能再次运行,有什么好方法做?
...全文
2855 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2019-02-14
  • 打赏
  • 举报
回复
用外部程序调用延时程序,运行一次后该调用的外部程序把延时程序删除。
hhhhha123 2019-02-14
  • 打赏
  • 举报
回复
闹个关键的配置文件,用完一次删了
  • 打赏
  • 举报
回复
高级点的加密狗,你的程序核心都是在狗里面运行,然后吐出数据,破解后程序就只有外壳。 但是这种加密狗常见用法是在核心里写个认证程序,然后外部调用认证,别人暴力跳过认证就没用了,你说说这怪谁呢?
SoulRed 2019-02-12
  • 打赏
  • 举报
回复
引用 21 楼 大然然 的回复:
[quote=引用 19 楼 Magichi 的回复:]
可以和电力局商量下,第一次关闭程序,自动拉闸

结果这个程序就是电力局用的[/quote]
666
摸瞎 2019-01-31
  • 打赏
  • 举报
回复
windows系统都有盗版的,vs也有盗版的。
不可能不被别人破解的,要想不被别人破解,感觉只要付出大于收获就行了,
软件价值<破解所花费的代价,没谁会闲着没事花一千万只是为了买碗稀饭
大然然 2019-01-30
  • 打赏
  • 举报
回复
引用 19 楼 Magichi 的回复:
可以和电力局商量下,第一次关闭程序,自动拉闸

结果这个程序就是电力局用的
liyi189 2019-01-30
  • 打赏
  • 举报
回复
靠注册表解决不了此问题。
還是 2019-01-30
  • 打赏
  • 举报
回复
注册表这东西有用,还有加密狗啥事呢? 用C/S或第三方硬件比较靠谱吧
Magichi 2019-01-22
  • 打赏
  • 举报
回复
可以和电力局商量下,第一次关闭程序,自动拉闸
mk_lucifer 2019-01-22
  • 打赏
  • 举报
回复
为什么要改注册表呢?如果你愿意可以直接改exe文件内部资源的取值都行,还有你去改注册表,注册表谁都可以改,和关门不上锁没什么区别。。。最简单的方法使用要进行MD5文件签名,如果发现文件签名不正确,直接不让用,这样做到防篡改,如果要延期,那么修改参数重新签名即可。。。文件里只要记录到期时间,是否为延期就行。。。当然MD5本身也不保险,毕竟密钥在你的exe里存的有,如果对方想办法搜索到还是可以伪造(除非你的软件真值的这么费心费力去想办法,一般软件都是不值得找专家,来这么干的)。。。 当然如果你觉得还不保险,那就用非对称密钥,在服务器完成签名,那就是神仙也破不了了,还有记得写防篡改系统时间的程序哦。。。
良朋 2019-01-21
  • 打赏
  • 举报
回复
现在做游戏外挂的人都很聪明,注册资料放在后台。如果你能要求你的客户联网使用,就这样搞。
张天星 2019-01-20
  • 打赏
  • 举报
回复
引用 楼主 volfish 的回复:
做了一个小程序,利用注册表记录首次运行时间,这个程序还是一个试用程序,期限为一个月。然后我想做个延时器,等到期的时候可以修改注册表的时间,让试用程序可以试用。但是这个延时器想运行一次就失效,不能再次运行,有什么好方法做?

什么都是可以破解的,无法避免,但只限本地的程序,是最容易被破解的。
建议搞个服务器,本地收集特征码,服务端校验。每次程序运行,都要联网校验是否可用。
但是,不管本地还是服务端校验,对方换个新机器是无法避免的。
这个可以通过注册帐号解决,帐号绑定手机或者身份证。
但这也无法避免对方直接破解软件,将校验服务器的那段代码给你改成true,但相对来说,这个更通用点。
yzcvc 2019-01-20
  • 打赏
  • 举报
回复
引用 15 楼 张天星 的回复:
[quote=引用 楼主 volfish 的回复:] 做了一个小程序,利用注册表记录首次运行时间,这个程序还是一个试用程序,期限为一个月。然后我想做个延时器,等到期的时候可以修改注册表的时间,让试用程序可以试用。但是这个延时器想运行一次就失效,不能再次运行,有什么好方法做?
什么都是可以破解的,无法避免,但只限本地的程序,是最容易被破解的。 建议搞个服务器,本地收集特征码,服务端校验。每次程序运行,都要联网校验是否可用。 但是,不管本地还是服务端校验,对方换个新机器是无法避免的。 这个可以通过注册帐号解决,帐号绑定手机或者身份证。 但这也无法避免对方直接破解软件,将校验服务器的那段代码给你改成true,但相对来说,这个更通用点。[/quote] 其实可以服务器和本地校验同步进行的,服务器校验时间,本地生成时间戳,交叉校验,嘿嘿。
ナミ 2019-01-19
  • 打赏
  • 举报
回复
在线验证、本地过期后必须在线验证。
Tiny~ 2019-01-17
  • 打赏
  • 举报
回复
我觉得你这样太啰嗦了,另外就是如楼上各位大神说的,注册表的根本防不住啊?

我自己目前做的是,免费试用,你要用多久就多久,1-2%的关键功能做判断如果没注册的不给使用……至于其他98%的剩余功能都和正常注册版一致不影响使用,另外加了联网校验客户端是否注册以及注册码是否正确,不正确的还是让他“试用”,如果不给钱或者其他目的的,这样就算是我送一个注册码给他,远程我可以随时控制他这个客户端比如禁止他登录(联网校验返回的是禁止登录的信息后,强行关闭客户端)

当然,有矛就有盾,有攻就有防,再怎么加密 都没用……可能还是可客户沟通好最好,好说话的愿意给钱的,送他源代码都可以啊
fenghuolan 2019-01-17
  • 打赏
  • 举报
回复
我的思路:
1.注册表写两个字段softcode="字段值1"和regeditTime="注册时间"
2.主程序运行判断regeditTime是否在试用期内
3.利用小程序延长试用期时,按以下逻辑:
a.判断小程序内置的softcode是否等于"字段值1",
b.如果a步骤为true,则修改注册表两个字段softcode="字段值2"和regeditTime="新注册时间"
c.如果a步骤为false,则提示延期失败。

以上能实现延时器只能用一次
  • 打赏
  • 举报
回复
对我们来说,基本上现在只考虑同时支持手机、平板、pc 跨平台程序。并不用单机小 windows 桌面程序来架构产品。
游北亮 2019-01-15
  • 打赏
  • 举报
回复
按你的思路, 延时器也可以在注册表里写一个key,如果key存在就失效,不存在就有效。 但是被破解的概率很高就是了, 也可以在系统某个目录下创建一个加密文件,内容为是否有效的标志, 当然也可以通过反编译程序来得到加密算法或破解。
  • 打赏
  • 举报
回复
用户登录来限制比较好
大然然 2019-01-15
  • 打赏
  • 举报
回复
注册表人手动都可以去改,那么你的小程序根本没用。
加载更多回复(7)

110,539

社区成员

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

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

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