Sentinel LDK 其他常见问题 20190505
1. 错误代码 27
是产品的 feature(license,许可)没有定义远程,但是用到了远程上, 定义产品的 feature 时候加上远程就可以了
另外,
数据加密和 AppOnChip 会用到 feature0, 这个是默认的 feature 是没有远程桌面的,所以 如果用了这两个功能还是会报 27 错误.
网络锁的 feature 0 具备远程的功能.
软锁勾选上并发量以后就是网络锁了,那么 feature 0 就具备远程的功能了
[用数据加密的话就不能用远程桌面了,换其他的远程工具吧
除了 windows 的远程桌面和 linux 的 ssh,其他的基本都可以,vnc,teamviewer,QQ 之 类的]
如果产品定义了远程桌面的属性,那么在 ACC 中相应的 feature 会显示”display” 字样
2. 外壳加密报 876 错误
解决 : 勾选 “REMOVE_EXPORTS_FROM_EXE ”
REMOVE_EXPORTS_FROM_EXE
Executable files sometimes use export functions. If these export functions are used by some statically-linked DLL (such as Borland Runtime), the application will crash. This can be seen on Borland C compiled applications. If this occurs, set this parameter to True. This causes Envelope to remove exported functions from the executable file
3. LDK 不支持带反射和注解(比如 annotation )的外壳加密
4. LDK 中文包 C:\Program Files (x86)\Gemalto Sentinel\Sentinel LDK\VendorTools\VendorSuite\translations
5. LDK 外壳加密后最终用户使用时报错 error code 401 401 HASP_INVALID_API_DYLIB Dynamic library for API is invalid
解决方案:
库文件是否都存在
外壳加密的输出目录新定义一个,然后加密后的所有文件都发给最终用户
另外, 如果是 api 加密, 就是去 C:\Users\XXX\Documents\Gemalto\Sentinel LDK XX\API\Runtime 目录下找对应的开发语言的目录,然后找到有开发号的库发给客户
6. LDK SL 激活, 上传 C2V 的时候报错”could not generate license: type… ”
问题: Demo 号做的 SL, 客户机有 LMS(1947 可以查看)
原因: 机器指纹无效,
解决: 执行 haspusersetup.exe,然后再抓机器指纹, SL 成功激活
(如果是正式号, 执行 haspdinst.exe, 这个需要在 EMS 的 developer 页面 生成, 因为和开发锁关联)
7. LDK 外壳加密 DLL 出现”当应用程序不是以 Userinteractive 模式运行时显 示….”
原因: 这个问题是因为客户加密的是 web 应用。Web 应用无法弹出消息框
解决 : 请把加密后产生的库文件放到系统路径下。另外不要使用 demo 锁加密
如果用 demo 号测试, 会有一个”demo 号加密不要分发…”的消息框, 所以无论如 何不能使用 demo 号测试
用外壳加密可以设置错误输出方式, 不要选择消息框的方式, 选择 log 日志的方 式, 现在最新的版本应该是默认 log 日志的方式了, 如果还是有消息框弹出来应 该是库文件的问题了, 所以说先把库文件放在系统路径下(库文件要全部都放在 系统路径下, 如果只放 api 的库,会报 initialization error)
eventlog:在 Windows 管理工具的事件查看器实用工具中,提供与运 行被保护程序相关的事件。
如何查询 :
Api 不会弹消息框, 所以 api 的方式不会有这个问题
8. LDK 网络锁如何看访问的客户端情况
在 ACC 里面, 找到网络锁, 如果有人访问, session 数会发生变化, 点击 session 就可以看 到连接这个锁的机器的内容
更进一步, 可以在 acc 的配置页面设置
9. RUS 中文版有几个错误翻译有问题
如果 RUS 应用 V2C 有问题, 可以尝试用 ACC 更新
Error48(no vlib)错误在 RUS 中文版里面是“检测到虚拟机”
Error56 也不对
以下是同一个错误在 RUS 和 ACC 上显示的不同
10. 开发包工具如何设置中文
安装之后的路径中 C:\Program Files (x86)\Gemalto Sentinel\Sentinel LDK\VendorTools\VendorSuite\translations 里边有 Sentinel_LDK_7.5_zh-CHS.exe,可以 双击运行安装。
这个装完以后 EMS, envelope 就都是中文的了
说明文档也是中文的, 只不过版本滞后写,比如 LDK 7.6 的说明书是 LDK 7.5 的
11. LDK 授权到期后还是运行
原因:
1. 时间检查只有在启动程序的时候做, 一旦启动了就不检查时间了
2. 背景检查只检查狗是否存在, 不检查时间 解决:
所以加外壳后如果程序不退出,过期也可以使用。
客户可以调用 login API 实现在不退出程序的情况下过期就不可以使用。
12. LDK 虚拟时钟修改
1.Format 不能重置虚拟时钟的时间, format 只是修改许可证内存等信息
2.要在 entitlement 页面 check in key 里生成清除时间篡改的 v2c 来清除
13. LDK 42 错误 42
HASP_OLD_LM Sentinel License Manager version too old
驱动版本太旧, 安装新驱动, 下载地址: https://sentinelcustomer.gemalto.com/sentineldownloads/
14. LDK 手动升级数据库
LDK 升级的时候,如果数据库升级失败,烧锁的时候就会报错,常见的错误就是
EMS 登陆的时候报”密码错误”
烧锁的时候不显示页面,回收可以
这个时候可以手动升级数据库:
运行 LDK 现有版本到下一个版本的 upgrade, 然后 updatevalue, 比如从 LDK 7.4 升级 到 7.6:
C:\Program Files (x86)\Gemalto Sentinel\Sentinel EMS\Database\SQL Scripts
1. UpgradeFrom74to75.sql
2. UpdateValuesFrom74to75.sql
3. UpgradeFrom75to76.sql
4. UpdateValuesFrom75to76.sql
15. LDK 7.8 JDK 1.8 加密的 java 加壳后无法运行
Release note中有说明, JDK 1.8 编译的jar 包, 运行时需要特殊参数:
16. LDK 找不到锁, 报 H0007
如果电脑镜像安装系统, 系统里包含 LDK, 那么新安装的 ACC id 和原来的系统是一样的, 这 时, 在运行加密程序的时候会报找不到锁的错误, 需要更改 ACC id
17. LDK 网络锁跨网段设置
如果是无驱锁,客户端需要配置hasplm.ini, 这个hasplm.ini是必须放在C:\Program Files (x86)\Common Files\Aladdin Shared\HASP 目录(linux放在/etc/hasplm)
18. 无驱锁只能在 6.3 以上版本使用。低于 6.3 的套件不识别无驱
19. 由于 Spring 架构中包含 Reflection,目前外壳不能支持 Spring 架构开发的 java 程序
20. 主锁更新报错 :”Unable to apply v2c on master key”
软件开发商在使用" Business Studio”工具更新主锁时报错
这个问题是由于产品生成的 v2c 的新格式和 Business Studio 不兼容.
解决:
1- 在装有 "Business Studio Server" 的电脑上, 进入目录 : "C:\Program Files (x86)\SafeNet\Sentinel HASP\VendorTools\Utilities\Master Remote Update\"
2- 双击"MasterRUS.exe"
3- 选择"Apply License file" 标签
4- 点 "..."按钮选中收到的 v2c
5- 点"Apply Update" 按钮