情况是这样的:
设备所有的硬件产品是我们公司自己研究开发的,处理器是Arm9的,操作系统是Windows CE5.0的.
应用程序有两种,一种是用C++语言在Evc环境下开发的应用程序,另外一种是C#语言用VS2005开发的应用程序.
问题是:
如何通过控制应用程序,使我们开发的应用程序只能用在我们的设备上面.当然也可以包括硬件上面的控制. 另外我们的应用程序调用了硬件相关的API.这个硬件库是用C++写成的DLL.
在你的OS中添加某个IOCONTROL,应用程序启动的时候调用这个iocontrol命令,如果系统返回你们预设的数据就执行,否则退出或出些警告之类的。
系统支持这个iocontrol的时候可以单纯的由OS来完成,也就是说所有的OS都使用同样的数据,其它机器只要烧录了这个OS就能使用。
另外一种是系统执行这个iocontrol的时候是从硬件上读取相应信息,这个信息可以写到机器的FLASH固定区域,或者是EEPROM,这样还能使每个机器的识别信息都不同,可以加一些算法加密等等,或者是使用专门的ID芯片。这样的话即使其它机器烧录了你们的OS也无法正常使用。
可以在硬件上加个EEPROM或者单片机,软件启动时读取加密信息即可
都是自己开发的东西,做加密应该不是难事儿,
用心想,自然会找到合适的解决方案
印象中Ateml公司有一款带ID号的eeprom,IIC通信的,可以挂在总线上,接上去运行软件时候自己搞一个小规定就可以实现简单加密了
这种加密只能防止小人。呵呵,专人照样破解,不过逼迫客户付款即可。