我的客户有一个 Flash 投影仪 EXE,他想要建立一个在线序列号控制系统,以便他可以在线销售它。
据我所知,这个项目的关键问题是exe只需要在一台计算机上运行。
我当前的计划如下:
- 安装前向用户索取序列号并检查是否正常。
- 如果可以的话,从许多唯一的硬件常量生成一个哈希值。与服务器进行匹配,查看该应用程序之前是否安装在 native 上。
- 如果不是,或者它与以前是同一台计算机,请允许安装程序继续。
- 安装后,将硬件哈希值放入注册表中。
- 创建一个加载器 EXE,将 Flash EXE 作为资源放入其中。
- 在加载程序 EXE 中,检查注册表是否具有硬件哈希值以及我们正在运行的硬件是否正确。
- 如果硬件哈希正确,则将资源 (Flash Exe) 提取到隐藏路径并使用 CreateProcess 执行它。
现在,我意识到此工作流程中存在严重的安全缺陷。当我提取资源exe并执行它时。任何查看任务管理器的用户都可以看到它。这样他/她就可以伸手捕获它!
我该如何改进我的方法?至少达到可接受的程度?
谢谢。
附注此应用程序具有类似的功能:http://www.increditools.com/flash_exe_builder/index.php在保护和序列号方面。
最佳答案
How can i improve my approach? At least to an acceptable point?
取决于你所说的“可接受”是什么意思。这个问题无法解决 - 有些商业公司的存在只是为了向值(value)数百万美元的软件提供 DRM 保护,而这种“保护”通常会在几天内被破坏。
您想要的确切保护量很大程度上取决于您要分发的内容 - 如果不了解这一点,实际上不可能就您想要做什么提供良好的建议。
您提议的系统可能就足够了。哎呀,您信任客户的荣誉系统可能足以满足您客户的目的。
关于flash - 保护 Flash EXE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2292955/