大力神 API
HerculesPlugin¶
这是基本类和 API 的列表。
所有 API 在 Hive SDK 初始化后均可使用。
是否越狱设备¶
- 支持的平台:iOS
- 检查iOS设备是否越狱。
- 参数: 无
- 返回值: 如果处于原始固件状态,则返回0;如果是越狱设备,则返回非零值。
是否为已root设备¶
- 支持的平台:Android
- 检查Android设备是否已root。
- 参数: 无
- 返回值: 如果未获得root权限则返回0,如果设备已获得root权限则返回非零值。
IsEmulator¶
- 支持的平台:Android
- 检查Android设备是否为模拟器。
- 参数: 无
- 返回值
- 对于移动设备返回0,对于模拟器返回非零值。
- 模拟器伪装成移动设备,因此某些模拟器可能返回0。
IsUnofficialBuild¶
- 支持的平台:iOS
- 检查iOS构建是否为非官方构建(未从App Store下载的构建)
- 它检查构建是否经过Fairplay加密和签名。从AppStore和TestFlight下载的构建被认为是官方构建。
- 参数: 无
- 返回值: 官方构建返回0,外部安装的构建返回1。如果检查构建失败,则返回2或更高的值。
获取漏斗¶
- 支持的平台:Android
- 获取应用安装的漏斗。
- 参数: 无
- 返回值: 返回一个值,例如 ADB、Google Play 商店或 Amazon 应用商店,作为应用安装路径,或者如果通过其他市场或文件管理器应用安装,则返回已安装应用的包名。
获取证书描述¶
- 支持的平台:Android,iOS
- 获取签名应用的证书信息。
- 参数: 无
- 返回值
- Android: 返回 APK 密钥库的通用名称。
- iOS: 返回与配置文件关联的证书信息。从 App Store 下载的构建将返回空值。如果应用程序被破解,则根据安装方法显示破解开发者证书的名称或用户个人证书名称。
获取团队ID¶
- 支持的平台:iOS
- 获取配置文件所有者帐户的团队ID。
- 参数: 无
- 返回值
- 签署应用程序的 Apple 开发者帐户的团队 ID。由字母和数字组合而成。
- 如果应用程序被破解,它可能会被不同的帐户重新签署,并且可能与下面以粗体显示的值不同。
获取证书哈希¶
- 支持的平台:Android
- 获取应用程序包(APK)应用的签名哈希。
- 参数: 无
- 返回值
- APK 签名哈希值。SHA1 哈希,40 位十六进制字符串。
- 签名密钥在上传到 Google Play 商店或亚马逊后可能会更改。在检查所用签名密钥的哈希值后,您可以进行比较。如果它们与之前检查的哈希值不同,则可以视为重新打包。
获取代理状态¶
- 支持的平台:Android,iOS
- 检查设备是否具有代理设置并返回结果。
- 参数: 无
- 返回值: 如果代理设置已应用,则返回非零值。
获取VPN状态¶
- 支持的平台:Android,iOS
- 检查设备是否连接到VPN并返回结果。
- 参数: 无
- 返回值: 如果VPN连接处于活动状态,则返回非零值。
HerculesPrefs¶
Unity引擎的PlayerPrefs类的加密版本。
与Unity不同,它在退出游戏时不会自动保存,因此您必须调用Save函数。
如果在备份设备后将游戏数据移动到另一台设备,可能也会复制加密数据。
参考网址: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
GetInt, GetFloat, GetString¶
- 获取存储在加密设置文件中的值。
-
参数
- key: 要检索的值的键。
- defaultValue: 如果没有值,则返回的默认值。
-
返回值
- 存储的值。如果没有存储的值或值已被篡改,则返回defaultValue。
- C++的**HerculesPrefsGetString** API返回的缓冲区必须使用**HerculesFreeMem** API释放。
SetInt, SetFloat, SetString¶
- 加密并存储键和值。
- 如果您在未调用 Save API 的情况下退出应用程序,设置将会丢失。
- 参数
- key: 要存储的值的键。
- value: 要存储的值。
- 返回值: 无
HasKey¶
- 检查是否存在键。
- 参数: 要测试的键。
- 返回值: 如果存在键,则返回true(C#)或1(C++)。
删除键¶
- 删除该键。
- 参数: 要删除的键。
- 返回值: 无
删除所有¶
- 删除所有键。
- 参数: 无
- 返回值:无
保存¶
- 更改的内容再次加密并保存为文件。保存的内容在模块初始化时加载。
- 参数: 无
- 返回值:无
安全变量 (C/C++)¶
这是一个只能在 C/C++ 中使用的安全变量 API。
在 C# 中,使用安全变量类 (HerculesVar) 时会在内部调用它。
建议参考安全变量指南以了解如何使用它。
AddString¶
- 添加赫拉克勒斯安全变量的字符串形式。(已分配)
- 参数: 原始字符串的指针。
- 返回值: 创建的安全变量的 ID。
AddVar¶
- 添加Hercules安全变量。(已分配)
- 参数
- data: 创建变量时要引用的初始值的地址。
- length: 要创建的变量的大小。设置数据参数的大小。
- 返回值: 创建的安全变量的ID。
FreeMem¶
- 释放由 HerculesGetString API 分配的缓冲区。
- 参数: 由某些API分配的缓冲区地址。
- 返回值: 无
获取字符串¶
- 读取Hercules安全字符串的值。(读取)
- 在C++模板类中,当引用变量的值时,它会自动被调用。
- 如果在读取字符串时检测到值被篡改,则在初始化时设置的回调函数将被调用。
- 返回值
- 如果成功读取值,则返回一个字符串缓冲区;如果不成功,则返回nullptr。
- 返回的缓冲区必须通过**HerculesFreeMem** API释放
- **参数:**安全变量的ID。
GetVar¶
- 读取 Hercules 安全变量的值。 (读取)
- 在 C++ 模板类中,当引用变量的值时,它会自动被调用。
- 当读取变量时,如果检测到其值被篡改,则在初始化期间设置的回调函数会被调用。 (这取决于策略。)
- 参数
- seq: 安全变量的ID。
- data: 要读取的数据缓冲区的地址。您必须设置一个与创建变量时设置的大小相同的缓冲区。
- 返回值
- 如果值成功读取,则返回0;对于无效参数返回正数,对于检测到篡改返回负数。
- 如果您在初始化阶段没有设置回调函数,可以参考此返回值。
SetVar¶
- 设置 Hercules 安全变量的值。 (写入)
- 在 C++ 模板类中,当给变量赋值时,它会自动被调用。
- 参数
- seq: 安全变量的ID。
- data: 要设置的数据缓冲区的地址。您必须设置一个与创建变量时设置的大小相同的缓冲区。
- 返回值: 无
RemoveVar¶
- 移除Hercules安全变量。(发布)
- 在C++模板类中,当变量被释放时,它会自动被调用。
- 参数: 要释放的变量的 ID。
- 返回值: 无