本帖最后由 hnhuqiong 于 2015-1-3 14:49 编辑
举个例子,我自己在38买过一个nettools,福禄克的
到手的机器只是基本版,pro版本有网络包检测功能,而上位机程序需呀输入购买的key才能升级为pro。
这个程序不是简单的输入个key,需要读出机器的几个ID,将这几个ID经过复杂的运算后给设备一个指令,然后设备升级为pro版本。
这个流程不通过反编译是不可能知道的,而这个指令是一个隐藏的DLL文件中,回送的key是加密的,机器重新效验才能通过密钥验证。
简单的通过跳转程序的成功判断并不能让机器验证通过,必须严格跟踪程序所有的流程,并找到和机器通讯的流程,拦截每个过程,以程序自己内部的黑盒子模式录入机器ID,然后算出结果后,黏贴到上一个流程中去,这样就可以成功得出整个算法中的关键算子。这样回送的密钥才是成功的。
所以很多设备的升级必须回送厂家或者办事处的道理,因为机器需要读出内部的ID做算子。幸运的是,由于福禄克机器单片机内部容量有限,应该是内部储存合格的key,和回送的密钥做简单的比对就行了,运算在上位机,这就给了我可以通过黑盒模式算出密钥,在缓冲器拷贝出来。最后强制送出验证命令+密钥,成功升级为pro版本。
|