Virbox SDK  2.1
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
E:/new_work/branches/ss_v2.0/include_out/ss_lm_runtime.h 文件参考

许可管理用的导入头文件. 对应动态库: slm_runtime.dll/slm_runtime_dev.dll 对应静态库: slm_runtime_api.lib/slm_runtime_api_dev.lib 更多...

#include "ss_define.h"
#include "ss_error.h"

浏览源代码.

结构体

struct  _ST_LED_CONTROL
 
struct  _ST_INIT_PARAM
 
struct  _ST_LOGIN_PARAM
 
struct  _ST_LOCK_INFO
 
struct  _ST_SESSION_INFO
 
struct  _ST_SLM_LICENSE_INFO
 
struct  _ST_FILE_INFO
 
struct  _ST_FILE_INFO_LIST
 
struct  _ST_DEV_INFO
 
struct  _ST_ENUM_DEVICE
 
struct  _ST_DEV_INFO_LIST
 
struct  _ST_LICENSE_IDS
 

宏定义

#define LED_COLOR_BLUE   0
 
#define LED_COLOR_RED   1
 
#define LED_STATE_CLOSE   0
 
#define LED_STATE_OPEN   1
 
#define LED_STATE_SHRINK   2
 
#define SS_ANTI_INFORMATION   0x0101
 
#define SS_ANTI_WARNING   0x0102
 
#define SS_ANTI_EXCEPTION   0x0103
 
#define SS_ANTI_IDLE   0x0104
 
#define SS_MSG_SERVICE_START   0x0200
 
#define SS_MSG_SERVICE_STOP   0x0201
 
#define SS_MSG_LOCK_AVAILABLE   0x0202
 
#define SS_MSG_LOCK_UNAVAILABLE   0x0203
 
#define SS_ANTI_PATCH_INJECT   0x0201
 
#define SS_ANTI_MODULE_INVALID   0x0202
 
#define SS_ANTI_ATTACH_FOUND   0x0203
 
#define SS_ANTI_THREAD_INVALID   0x0204
 
#define SS_ANTI_THREAD_ERROR   0x0205
 
#define SS_ANTI_CRC_ERROR   0x0206
 
#define SS_ANTI_DEBUGGER_FOUND   0x0207
 
#define SLM_FIXTIME_RAND_LENGTH   8
 
#define SLM_CALLBACK_VERSION02   0x02
 
#define SLM_MEM_MAX_SIZE   2048
 
#define SLM_MAX_INPUT_SIZE   1758
 
#define SLM_MAX_OUTPUT_SIZE   1758
 
#define SLM_MAX_USER_CRYPT_SIZE   1520
 
#define SLM_MAX_USER_DATA_SIZE   2048
 
#define SLM_MAX_WRITE_SIZE   1904
 
#define SLM_VERIFY_DEVICE_PREFIX   "SENSELOCK"
 
#define SLM_VERIFY_DATA_SIZE   41
 
#define SLM_LOCK_SN_LENGTH   16
 
#define SLM_DEVELOPER_ID_SIZE   8
 
#define SLM_MAX_SERVER_NAME   32
 
#define SLM_MAX_ACCESS_TOKEN_LENGTH   64
 
#define SLM_MAX_CLOUD_SERVER_LENGTH   100
 
#define SLM_SNIPPET_SEED_LENGTH   32
 
#define SLM_DEV_PASSWORD_LENGTH   16
 
#define SLM_CLOUD_MAX_USER_GUID_SIZE   128
 
#define SLM_GUID_LENGTH   16
 
#define SLM_FILE_TYPE_BINARY   0
 
#define SLM_FILE_TYPE_EXECUTIVE   1
 
#define SLM_FILE_TYPE_KEY   2
 
#define SLM_FILE_PRIVILEGE_FLAG_READ   0x01
 
#define SLM_FILE_PRIVILEGE_FLAG_WRITE   0x02
 
#define SLM_FILE_PRIVILEGE_FLAG_USE   0x04
 
#define SLM_FILE_PRIVILEGE_FLAG_UPDATE   0x08
 
#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_READ   0x10
 
#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_WRITE   0x20
 
#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_USE   0x40
 
#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_UPDATE   0x80
 
#define SLM_LOGIN_MODE_AUTO   0x0000
 
#define SLM_LOGIN_MODE_LOCAL_DONGLE   0x0001
 
#define SLM_LOGIN_MODE_REMOTE_DONGLE   0x0002
 
#define SLM_LOGIN_MODE_CLOUD   0x0004
 
#define SLM_LOGIN_MODE_LOCAL_SLOCK   0x0008
 
#define SLM_LOGIN_MODE_REMOTE_SLOCK   0x0010
 
#define SLM_LOGIN_FLAG_FIND_ALL   0x0001
 
#define SLM_LOGIN_FLAG_VERSION   0x0004
 
#define SLM_LOGIN_FLAG_LOCKSN   0x0008
 
#define SLM_LOGIN_FLAG_SERVER   0x0010
 
#define SLM_LOGIN_FLAG_SNIPPET   0x0020
 
#define LANGUAGE_CHINESE_ASCII   0x0001
 
#define LANGUAGE_ENGLISH_ASCII   0x0002
 
#define LANGUAGE_TRADITIONAL_CHINESE_ASCII   0x0003
 
#define SLM_INIT_FLAG_NOTIFY   0x01
 
#define SLM_MAC_SIZE   6
 
#define SLM_MAX_CPU_INFO_SIZE   128
 
#define SLM_MAX_BIOS_INFO_SIZE   128
 
#define SLM_MAX_SESSION_ID_SIZE   32
 

类型定义

typedef SS_UINT32(SSAPI * SS_CALL_BACK )(SS_UINT32 message, void *wparam, void *lparam)
 
typedef unsigned int SLM_HANDLE_INDEX
 
typedef enum _INFO_TYPE INFO_TYPE
 
typedef enum _LIC_USER_DATA_TYPE LIC_USER_DATA_TYPE
 
typedef enum _ENUM_DESC_TYPE ENUM_DESV_TYPE
 
typedef struct _ST_LED_CONTROL ST_LED_CONTROL
 
typedef struct _ST_INIT_PARAM ST_INIT_PARAM
 
typedef struct _ST_LOGIN_PARAM ST_LOGIN_PARAM
 
typedef struct _ST_LOCK_INFO ST_LOCK_INFO
 
typedef struct _ST_SESSION_INFO ST_SESSION_INFO
 
typedef struct _ST_SLM_LICENSE_INFO ST_SLM_LICENSE_INFO
 
typedef struct _ST_FILE_INFO ST_FILE_INFO
 
typedef struct _ST_FILE_INFO_LIST ST_FILE_INFO_LIST
 
typedef struct _ST_DEV_INFO ST_DEV_INFO
 
typedef struct _ST_ENUM_DEVICE ST_ENUM_DEVICE
 
typedef struct _ST_DEV_INFO_LIST ST_DEV_INFO_LIST
 
typedef struct _ST_LICENSE_IDS ST_LICENSE_IDS
 

枚举

enum  _INFO_TYPE { LOCK_INFO = 1, SESSION_INFO = 2, LICENSE_INFO = 3, FILE_LIST = 4 }
 
enum  _LIC_USER_DATA_TYPE { ROM = 0, RAW = 1, PUB = 2 }
 
enum  _ENUM_DESC_TYPE {
  ENUM_DESC_LOCAL_DONGLE = 0, ENUM_DESC_REMOTE_DONGLE = 1, ENUM_DESC_CLOUD = 2, ENUM_DESC_SMART_OFFLINE = 3,
  ENUM_DESC_LOCAL_SLOCK = 4, ENUM_DESC_REMOTE_SLOCK = 5
}
 

函数

SS_UINT32 SSAPI slm_init (IN ST_INIT_PARAM *pst_init)
 Runtime API 初始化函数,调用所有 Runtime API 必须先调用此函数进行初始化 更多...
 
SS_UINT32 SSAPI slm_find_license (IN SS_UINT32 license_id, IN INFO_FORMAT_TYPE format, OUT char **license_desc)
 查找许可信息(仅对硬件锁有效) 更多...
 
SS_UINT32 SSAPI slm_get_cloud_token (OUT SS_CHAR **access_token)
 枚举已登录的用户 token 更多...
 
SS_UINT32 SSAPI slm_login (IN const ST_LOGIN_PARAM *license_param, IN INFO_FORMAT_TYPE param_format, OUT SLM_HANDLE_INDEX *slm_handle, IN OUT void *auth)
 安全登录许可,用 JSON 传递参数,并且检查时间(是否到期或者是否早于开始时间)、次数、并发数是否归零, 如果有计数器,则永久性减少对应的计数器,对于网络锁则临时增加网络并发计数器。 更多...
 
SS_UINT32 SSAPI slm_logout (SLM_HANDLE_INDEX slm_handle)
 许可登出,并且释放许可句柄等资源 更多...
 
SS_UINT32 SSAPI slm_keep_alive (SLM_HANDLE_INDEX slm_handle)
 保持登录会话心跳,避免变为“僵尸句柄”。 更多...
 
SS_UINT32 SSAPI slm_encrypt (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *inbuffer, OUT SS_BYTE *outbuffer, IN SS_UINT32 len)
 许可加密,相同的许可ID相同的开发者加密结果相同 更多...
 
SS_UINT32 SSAPI slm_decrypt (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *inbuffer, OUT SS_BYTE *outbuffer, IN SS_UINT32 len)
 许可解密,相同的许可ID相同的开发者加密结果相同 更多...
 
SS_UINT32 SSAPI slm_user_data_getsize (IN SLM_HANDLE_INDEX slm_handle, IN LIC_USER_DATA_TYPE type, OUT SS_UINT32 *pmem_size)
 获得许可的用户数据区大小 更多...
 
SS_UINT32 SSAPI slm_user_data_read (IN SLM_HANDLE_INDEX slm_handle, IN LIC_USER_DATA_TYPE type, OUT SS_BYTE *readbuf, IN SS_UINT32 offset, IN SS_UINT32 len)
 读许可数据,可以读取 #PUB、#RAW 和 ROM 更多...
 
SS_UINT32 SSAPI slm_user_data_write (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *writebuf, IN SS_UINT32 offset, IN SS_UINT32 len)
 写许可的读写数据区 ,数据区操作之前请先确认锁内读写区的大小,可以使用 slm_user_data_getsize 获得 更多...
 
SS_UINT32 SSAPI slm_pub_data_getsize (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 license_id, OUT SS_UINT32 *pmem_size)
 获得指定许可的公开区数据区大小,需要登录 0号许可 更多...
 
SS_UINT32 SSAPI slm_pub_data_read (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 license_id, OUT SS_BYTE *readbuf, IN SS_UINT32 offset, IN SS_UINT32 len)
 读取许可公开区,需要登录 0号许可 更多...
 
SS_UINT32 SSAPI slm_get_info (IN SLM_HANDLE_INDEX slm_handle, IN INFO_TYPE type, IN INFO_FORMAT_TYPE format, OUT char **result)
 获取已登录许可的状态信息,例如许可信息、硬件锁信息等 更多...
 
SS_UINT32 SSAPI slm_execute_static (IN SLM_HANDLE_INDEX slm_handle, IN const char *exfname, IN SS_BYTE *inbuf, IN SS_UINT32 insize, OUT SS_BYTE *poutbuf, IN SS_UINT32 outsize, OUT SS_UINT32 *pretsize)
 开发者自定义算法,锁内可执行算法,锁内静态代码执行(仅支持硬件锁), 由开发者调用 D2CAPI 库中的 d2c_add_pkg 签发可执行代码接口生成,提前将可执行算法下载到锁内 更多...
 
SS_UINT32 SSAPI slm_execute_dynamic (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *exf_buffer, IN SS_UINT32 exf_size, IN SS_BYTE *inbuf, IN SS_UINT32 insize, OUT SS_BYTE *poutbuf, IN SS_UINT32 outsize, OUT SS_UINT32 *pretsize)
 开发者自定义算法,锁内可执行算法,锁内动态执行代码(仅支持硬件锁),在应用程序运行过程中下载到锁内进行执行 更多...
 
SS_UINT32 SSAPI slm_mem_alloc (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 size, OUT SS_UINT32 *mem_id)
 Virbox许可服务 内存托管内存申请 更多...
 
SS_UINT32 SSAPI slm_mem_free (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 mem_id)
 释放托管内存 更多...
 
SS_UINT32 SSAPI slm_mem_read (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 mem_id, IN SS_UINT32 offset, IN SS_UINT32 len, IN SS_BYTE *readbuff, OUT SS_UINT32 *readlen)
 Virbox许可服务 内存托管读 更多...
 
SS_UINT32 SSAPI slm_mem_write (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 mem_id, IN SS_UINT32 offset, IN SS_UINT32 len, IN SS_BYTE *writebuff, OUT SS_UINT32 *numberofbyteswritten)
 Virbox许可服务 内存托管内存写入 更多...
 
SS_UINT32 SSAPI slm_is_debug (IN void *auth)
 检测是否正在调试 更多...
 
SS_UINT32 SSAPI slm_get_cert (IN SLM_HANDLE_INDEX slm_handle, IN CERT_TYPE cert_type, OUT SS_BYTE *cert, IN SS_UINT32 cert_size, OUT SS_UINT32 *cert_len)
 通过证书类型,获取已登录许可的设备证书 更多...
 
SS_UINT32 SSAPI slm_get_device_cert (IN SLM_HANDLE_INDEX slm_handle, OUT SS_BYTE *device_cert, IN SS_UINT32 buff_size, OUT SS_UINT32 *return_size)
 获取已登录的加密锁证书 更多...
 
SS_UINT32 SSAPI slm_sign_by_device (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *verify_data, IN SS_UINT32 verify_data_size, OUT SS_BYTE *signature, IN SS_UINT32 signature_buf_size, OUT SS_UINT32 *signature_size)
 设备正版验证(仅支持硬件锁) 更多...
 
SS_UINT32 SSAPI slm_adjust_time_request (IN SLM_HANDLE_INDEX slm_handle, OUT SS_BYTE rand[SLM_FIXTIME_RAND_LENGTH], OUT SS_UINT32 *lock_time, IN OUT SS_UINT32 *pc_time)
 获取时间修复数据,用于生成时钟校准请求 更多...
 
SS_UINT32 SSAPI slm_led_control (IN SLM_HANDLE_INDEX slm_handle, IN ST_LED_CONTROL *led_ctrl)
 闪烁指示灯 更多...
 
SS_UINT32 SSAPI slm_get_version (OUT SS_UINT32 *api_version, OUT SS_UINT32 *ss_version)
 获得 Runtime 库 和 Virbox许可服务 的版本信息. 更多...
 
void SSAPI slm_free (IN void *buffer)
 释放API内分配堆区域 更多...
 
SS_UINT32 SSAPI slm_update (IN char *d2c_pkg, OUT char **error_msg)
 将D2C包进行升级,d2c包 由 D2CAPI 生成 更多...
 
SS_UINT32 SSAPI slm_update_ex (IN SS_BYTE *lock_sn, IN char *d2c_pkg, OUT char **error_msg)
 将D2C包进行升级,需指定加密锁唯一序列号,d2c包 由 D2CAPI 生成 更多...
 
SS_UINT32 SSAPI slm_d2c_update_inside (IN char *lock_sn, IN char *inside_file)
 锁内短码升级,需指定加密锁唯一序列号,需锁内可执行算法配合(仅支持硬件锁) 更多...
 
SS_UINT32 SSAPI slm_enum_device (OUT char **device_info)
 枚举本地锁信息 更多...
 
SS_UINT32 SSAPI slm_enum_device_ex (IN INFO_FORMAT_TYPE format, OUT void **device_info)
 枚举本地锁信息,支持按返回值类型获取 更多...
 
SS_UINT32 SSAPI slm_enum_license_id (IN const char *device_info, OUT char **license_ids)
 枚举指定设备下所有许可ID 更多...
 
SS_UINT32 SSAPI slm_enum_license_id_ex (IN ST_DEV_INFO *device_info, IN INFO_FORMAT_TYPE format, OUT void **license_ids)
 枚举指定设备下所有许可ID,支持按返回值类型获取 更多...
 
SS_UINT32 SSAPI slm_get_license_info (IN const char *device_info, IN SS_UINT32 license_id, OUT char **license_info)
 获取指定设备下指定许可的全部信息 更多...
 
SS_UINT32 SSAPI slm_get_license_info_ex (IN ST_DEV_INFO *device_info, IN SS_UINT32 license_id, IN INFO_FORMAT_TYPE format, OUT void **license_info)
 获取指定设备下指定许可的全部信息,支持按返回值类型获取 更多...
 
SS_UINT32 SSAPI slm_check_module (IN SLM_HANDLE_INDEX slm_handle, IN SS_UINT32 module_id)
 检查模块 更多...
 
SS_UINT32 SSAPI slm_snippet_execute (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *snippet_code, IN SS_UINT32 code_size, IN SS_BYTE *input, IN SS_UINT32 input_size, OUT SS_BYTE *output, IN SS_UINT32 outbuf_size, OUT SS_UINT32 *output_size)
 碎片代码执行(开发者不必关心) 更多...
 
SS_UINT32 SSAPI slm_get_developer_id (OUT SS_BYTE developer_id[SLM_DEVELOPER_ID_SIZE])
 获取 Runtime 库对应的开发商ID 更多...
 
SS_UINT32 SSAPI slm_license_sign (IN SLM_HANDLE_INDEX slm_handle, IN SS_BYTE *sign_data, IN SS_UINT32 sign_length, OUT SS_BYTE *signature, IN SS_UINT32 max_buf_size, OUT SS_UINT32 *signature_length)
 使用已登录的云许可进行签名(仅支持云锁) 更多...
 
SS_UINT32 SSAPI slm_license_verify (IN SS_BYTE *sign_data, IN SS_UINT32 sign_length, IN SS_BYTE *signature, IN SS_UINT32 signature_length, OUT char **sign_info)
 对云许可签名后的数据进行验签(仅支持云锁) 更多...
 
const SS_CHAR *SSAPI slm_error_format (IN SS_UINT32 error_code, IN SS_UINT32 language_id)
 通过错误码获得错误信息 更多...
 
SS_UINT32 SSAPI slm_cleanup (void)
 反初始化函数,与 slm_init 对应 更多...
 
SS_UINT32 SSAPI slm_extensions_config (IN const char *config)
 扩展配置接口 更多...
 

详细描述

许可管理用的导入头文件. 对应动态库: slm_runtime.dll/slm_runtime_dev.dll 对应静态库: slm_runtime_api.lib/slm_runtime_api_dev.lib

使用许可调用顺序:

第一步,调用slm_init函数进行全局初始化
第二步,调用slm_login函数登录许可(硬件许可,网络许可,云许可,软许可)
第三步,调用许可操作函数,例如slm_keepalive slm_encrypt slm_decrypt等操作
第四步,调用slm_logout函数,登出当前许可
第五步,程序退出时,调用slm_cleanup函数反初始化(可选调用)
版本
2.1.0
日期
2013-2017
前置条件
开发者证书(深思签发,用来跟 Virbox许可服务 做认证)、Vdata(APP的信息,用开发者签名)、ECC公钥(端到端认证与加密)需要埋在lib

在文件 ss_lm_runtime.h 中定义.

宏定义说明

#define LANGUAGE_CHINESE_ASCII   0x0001

错误码查询返回语言类型ID:简体中文

在文件 ss_lm_runtime.h203 行定义.

#define LANGUAGE_ENGLISH_ASCII   0x0002

错误码查询返回语言类型ID:英语

在文件 ss_lm_runtime.h205 行定义.

#define LANGUAGE_TRADITIONAL_CHINESE_ASCII   0x0003

错误码查询返回语言类型ID:繁体中文

在文件 ss_lm_runtime.h207 行定义.

#define LED_COLOR_BLUE   0

硬件锁闪灯颜色:蓝色

在文件 ss_lm_runtime.h39 行定义.

#define LED_COLOR_RED   1

硬件锁闪灯颜色:红色

在文件 ss_lm_runtime.h41 行定义.

#define LED_STATE_CLOSE   0

硬件锁闪灯控制:关闭

在文件 ss_lm_runtime.h44 行定义.

#define LED_STATE_OPEN   1

硬件锁闪灯控制:打开

在文件 ss_lm_runtime.h46 行定义.

#define LED_STATE_SHRINK   2

硬件锁闪灯控制:闪烁

在文件 ss_lm_runtime.h48 行定义.

#define SLM_CALLBACK_VERSION02   0x02

SS_CALL_BACK的版本 (支持开发者API密码的版本)

在文件 ss_lm_runtime.h98 行定义.

#define SLM_CLOUD_MAX_USER_GUID_SIZE   128

用户GUID最大长度(字符串)

在文件 ss_lm_runtime.h145 行定义.

#define SLM_DEV_PASSWORD_LENGTH   16

开发者API密码长度(二进制字节)

在文件 ss_lm_runtime.h142 行定义.

#define SLM_DEVELOPER_ID_SIZE   8

开发商ID长度(二进制字节)

在文件 ss_lm_runtime.h127 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_READ   0x10

硬件锁锁内文件属性:可读

在文件 ss_lm_runtime.h167 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_UPDATE   0x80

硬件锁锁内文件属性:深思可远程升级

在文件 ss_lm_runtime.h173 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_USE   0x40

硬件锁锁内文件属性:深思可使用(密钥文件)

在文件 ss_lm_runtime.h171 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_ENTRY_WRITE   0x20

硬件锁锁内文件属性:深思可写

在文件 ss_lm_runtime.h169 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_READ   0x01

硬件锁锁内文件属性:开发者可读

在文件 ss_lm_runtime.h158 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_UPDATE   0x08

硬件锁锁内文件属性:开发者可远程升级

在文件 ss_lm_runtime.h164 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_USE   0x04

硬件锁锁内文件属性:开发者可使用(密钥文件)

在文件 ss_lm_runtime.h162 行定义.

#define SLM_FILE_PRIVILEGE_FLAG_WRITE   0x02

硬件锁锁内文件属性:开发者可写

在文件 ss_lm_runtime.h160 行定义.

#define SLM_FILE_TYPE_BINARY   0

硬件锁锁内文件类型:数据文件

在文件 ss_lm_runtime.h151 行定义.

#define SLM_FILE_TYPE_EXECUTIVE   1

硬件锁锁内文件类型:可执行文件文件

在文件 ss_lm_runtime.h153 行定义.

#define SLM_FILE_TYPE_KEY   2

硬件锁锁内文件类型:密钥文件

在文件 ss_lm_runtime.h155 行定义.

#define SLM_FIXTIME_RAND_LENGTH   8

时钟校准随机数种子长度

在文件 ss_lm_runtime.h95 行定义.

#define SLM_GUID_LENGTH   16

一般的GUID长度,二进制

在文件 ss_lm_runtime.h148 行定义.

#define SLM_INIT_FLAG_NOTIFY   0x01

初始化时设置,表示将收到 Virbox许可服务 的消息通知

在文件 ss_lm_runtime.h210 行定义.

#define SLM_LOCK_SN_LENGTH   16

硬件锁设备芯片号的长度(二进制字节)

在文件 ss_lm_runtime.h124 行定义.

#define SLM_LOGIN_FLAG_FIND_ALL   0x0001

许可登录控制:查找所有的锁,如果发现多个重名许可则不登录,提供选择,否则找到符合条件的锁直接登录(不建议使用此标志)

在文件 ss_lm_runtime.h191 行定义.

#define SLM_LOGIN_FLAG_LOCKSN   0x0008

许可登录控制:指定锁号(芯片号)

在文件 ss_lm_runtime.h195 行定义.

#define SLM_LOGIN_FLAG_SERVER   0x0010

许可登录控制:指定服务器

在文件 ss_lm_runtime.h197 行定义.

#define SLM_LOGIN_FLAG_SNIPPET   0x0020

许可登录控制:指定碎片代码

在文件 ss_lm_runtime.h199 行定义.

#define SLM_LOGIN_FLAG_VERSION   0x0004

许可登录控制:指定许可版本

在文件 ss_lm_runtime.h193 行定义.

#define SLM_LOGIN_MODE_AUTO   0x0000

许可登录模式:自动选择

在文件 ss_lm_runtime.h178 行定义.

#define SLM_LOGIN_MODE_CLOUD   0x0004

许可登录模式:指定登录云锁

在文件 ss_lm_runtime.h184 行定义.

#define SLM_LOGIN_MODE_LOCAL_DONGLE   0x0001

许可登录模式:指定登录本地锁

在文件 ss_lm_runtime.h180 行定义.

#define SLM_LOGIN_MODE_LOCAL_SLOCK   0x0008

许可登录模式:指定登录本地软锁

在文件 ss_lm_runtime.h186 行定义.

#define SLM_LOGIN_MODE_REMOTE_DONGLE   0x0002

许可登录模式:指定登录网络锁

在文件 ss_lm_runtime.h182 行定义.

#define SLM_LOGIN_MODE_REMOTE_SLOCK   0x0010

许可登录模式:指定登录远程软锁

在文件 ss_lm_runtime.h188 行定义.

#define SLM_MAC_SIZE   6

MAC 地址长度

在文件 ss_lm_runtime.h213 行定义.

#define SLM_MAX_ACCESS_TOKEN_LENGTH   64

指定登录云锁用户token最大长度(字符串)

在文件 ss_lm_runtime.h133 行定义.

#define SLM_MAX_BIOS_INFO_SIZE   128

BIOS 信息最大长度

在文件 ss_lm_runtime.h217 行定义.

#define SLM_MAX_CLOUD_SERVER_LENGTH   100

指定登录云锁服务器地址最大长度(字符串)

在文件 ss_lm_runtime.h136 行定义.

#define SLM_MAX_CPU_INFO_SIZE   128

CPU 信息最大长度

在文件 ss_lm_runtime.h215 行定义.

#define SLM_MAX_INPUT_SIZE   1758

代码执行,最大输入缓冲区大小(字节)

在文件 ss_lm_runtime.h104 行定义.

#define SLM_MAX_OUTPUT_SIZE   1758

代码执行,最大输出缓冲区大小(字节)

在文件 ss_lm_runtime.h106 行定义.

#define SLM_MAX_SERVER_NAME   32

指定登录网络锁服务器名称最大长度(字符串)

在文件 ss_lm_runtime.h130 行定义.

#define SLM_MAX_SESSION_ID_SIZE   32

Session ID 的最大长度,字符串

在文件 ss_lm_runtime.h219 行定义.

#define SLM_MAX_USER_CRYPT_SIZE   1520

加解密最大缓冲区最大长度(字节)

在文件 ss_lm_runtime.h109 行定义.

#define SLM_MAX_USER_DATA_SIZE   2048

用户验证数据最大长度(字节)

在文件 ss_lm_runtime.h112 行定义.

#define SLM_MAX_WRITE_SIZE   1904

用户数据区写入最大长度(字节)

在文件 ss_lm_runtime.h115 行定义.

#define SLM_MEM_MAX_SIZE   2048

内存托管最大长度(字节)

在文件 ss_lm_runtime.h101 行定义.

#define SLM_SNIPPET_SEED_LENGTH   32

碎片代码种子长度(二进制字节)

在文件 ss_lm_runtime.h139 行定义.

#define SLM_VERIFY_DATA_SIZE   41

请求硬件锁设备私钥签名的数据大小,见slm_sign_by_device

在文件 ss_lm_runtime.h121 行定义.

#define SLM_VERIFY_DEVICE_PREFIX   "SENSELOCK"

请求硬件锁设备私钥签名的数据前缀,见slm_sign_by_device

在文件 ss_lm_runtime.h118 行定义.

#define SS_ANTI_ATTACH_FOUND   0x0203

检测到程序被调试器附加的行为,如通过Ollydbg、Windbg对程序进行附加调试

在文件 ss_lm_runtime.h83 行定义.

#define SS_ANTI_CRC_ERROR   0x0206

检测到对模块数据的CRC验证失败,可能存在恶意分析行为,对进程中的模块设置断点或篡改等

在文件 ss_lm_runtime.h89 行定义.

#define SS_ANTI_DEBUGGER_FOUND   0x0207

检测到软件运行环境中有调试器存在,如Ollydbg、Windbg

在文件 ss_lm_runtime.h91 行定义.

#define SS_ANTI_EXCEPTION   0x0103

回调消息类型:异常

在文件 ss_lm_runtime.h61 行定义.

#define SS_ANTI_IDLE   0x0104

回调消息类型:暂保留

在文件 ss_lm_runtime.h63 行定义.

#define SS_ANTI_INFORMATION   0x0101

回调消息类型:信息提示

在文件 ss_lm_runtime.h57 行定义.

#define SS_ANTI_MODULE_INVALID   0x0202

系统模块异常,可能存在劫持行为,如一些位于系统目录的动态库(hid.dll、lpk.dll)等,从错误的目录加载

在文件 ss_lm_runtime.h81 行定义.

#define SS_ANTI_PATCH_INJECT   0x0201

检测到有补丁程序注入到目标程序中,一般指盗版程序的补丁动态库等文件出现在当前进程空间

在文件 ss_lm_runtime.h79 行定义.

#define SS_ANTI_THREAD_ERROR   0x0205

检测到反调试线程运行状态异常,可能被恶意攻击,如线程被手动挂起等

在文件 ss_lm_runtime.h87 行定义.

#define SS_ANTI_THREAD_INVALID   0x0204

意为:无效的线程。暂未定义,保留

在文件 ss_lm_runtime.h85 行定义.

#define SS_ANTI_WARNING   0x0102

回调消息类型:警告(回调参数wparam代表警告类型)

在文件 ss_lm_runtime.h59 行定义.

#define SS_MSG_LOCK_AVAILABLE   0x0202

回调消类型:锁可用(插入锁或 Virbox许可服务 启动时锁已初始化完成),回调参数wparam 代表锁号

在文件 ss_lm_runtime.h70 行定义.

#define SS_MSG_LOCK_UNAVAILABLE   0x0203

回调消类型:锁无效(锁已拔出),回调参数wparam 代表锁号

在文件 ss_lm_runtime.h72 行定义.

#define SS_MSG_SERVICE_START   0x0200

回调消类型:服务启动

在文件 ss_lm_runtime.h66 行定义.

#define SS_MSG_SERVICE_STOP   0x0201

回调消类型:服务停止

在文件 ss_lm_runtime.h68 行定义.

类型定义说明

设备描述类型

typedef enum _INFO_TYPE INFO_TYPE

获得锁信息类型枚举

许可数据区类型枚举

typedef unsigned int SLM_HANDLE_INDEX

许可登录后的内存句柄,不需要客户维护内存,Virbox许可服务 替开发者维护内存,返回一个内存id,范围在0-N之间

在文件 ss_lm_runtime.h223 行定义.

typedef SS_UINT32(SSAPI * SS_CALL_BACK)(SS_UINT32 message, void *wparam, void *lparam)

Virbox许可服务 消息处理回调函数(当前版本 SLM_CALLBACK_VERSION02 ) ,其中lparam暂时没有使用

在文件 ss_lm_runtime.h51 行定义.

typedef struct _ST_DEV_INFO ST_DEV_INFO

设备信息结构

设备信息列表

设备描述结构

typedef struct _ST_FILE_INFO ST_FILE_INFO

文件信息结构

文件信息结构列表

typedef struct _ST_INIT_PARAM ST_INIT_PARAM

初始化参数

硬件锁闪灯控制结构

许可id列表

typedef struct _ST_LOCK_INFO ST_LOCK_INFO

锁信息结构

许可Login 结构

会话信息结构体

许可信息结构

枚举类型说明

设备描述类型

在文件 ss_lm_runtime.h250 行定义.

enum _INFO_TYPE

获得锁信息类型枚举

枚举值
LOCK_INFO 

硬件锁锁信息

SESSION_INFO 

访问许可的会话信息

LICENSE_INFO 

当前登录的许可信息

FILE_LIST 

锁内文件列表

在文件 ss_lm_runtime.h226 行定义.

许可数据区类型枚举

枚举值
ROM 

只读区

RAW 

读写区

PUB 

公开区

在文件 ss_lm_runtime.h239 行定义.