コンテンツにスキップ

ヘラクレスAPI

HerculesPlugin

これは基本的なクラスとAPIのリストです。
すべてのAPIはHive SDKが初期化された後に使用できます。

ジェイルブレイクされたデバイス

  • 対応プラットフォーム: iOS
  • iOSデバイスがジェイルブレイクされているかどうかをチェックします。
uint IsJailbrokenDevice();
uint HerculesIsJailbrokenDevice();
  • パラメータ: なし
  • 戻り値: 元のファームウェア状態であれば0を返し、脱獄デバイスであれば非ゼロを返します。

Rootedデバイスかどうか

  • サポートされているプラットフォーム: Android
  • Androidデバイスがルート化されているかどうかをチェックします。
uint IsRootedDevice();
uint HerculesIsRootedDevice();
  • パラメータ: なし
  • 戻り値: ルート化されていない場合は0を返し、デバイスがルート化されている場合は非ゼロを返します。

IsEmulator

  • サポートされているプラットフォーム: Android
  • Androidデバイスがエミュレーターであるかどうかをチェックします。
uint IsEmulator();
uint HerculesIsEmulator();
  • パラメータ: なし
  • 戻り値
    • モバイルデバイスの場合は0を返し、エミュレーターの場合は0以外を返します。
    • エミュレーターはモバイルデバイスとして偽装するため、一部のエミュレーターでは0が返されることがあります。

IsUnofficialBuild

  • サポートされているプラットフォーム: iOS
  • iOSビルドが非公式ビルド(App Storeからダウンロードされていないビルド)であるかどうかを確認します。
  • ビルドがFairplayで暗号化され、署名されていることを確認します。AppStoreおよびTestFlightからダウンロードされたビルドは公式ビルドであると見なされます。
uint IsUnofficialBuild();
uint HerculesIsUnofficialBuild();
  • パラメータ: なし
  • 戻り値: 公式ビルドの場合は0、外部インストールされたビルドの場合は1。ビルドの確認に失敗した場合は2以上の値を返します。

GetFunnels

  • 対応プラットフォーム: Android
  • アプリがインストールされているファネルを取得します。
string GetFunnels();
const char* HerculesGetFunnels();
  • パラメータ: なし
  • 戻り値: アプリがインストールされているパスとしてADB、Google Playストア、またはAmazon Appstoreのような値が返されます。また、別のマーケットやファイルエクスプローラーアプリを介してインストールされた場合は、インストールされたアプリのパッケージ名が返されます。

GetCertDesc

  • サポートされているプラットフォーム: Android, iOS
  • サインされたアプリの証明書情報を取得します。
string GetCertDesc();
const char* HerculesGetCertDesc();
  • パラメータ: なし
  • 戻り値
    • Android: APKキーストアの共通名を返します。
    • iOS: プロビジョニングプロファイルに関連付けられた証明書情報を返します。App Storeからダウンロードされたビルドは空の値を返します。アプリがクラックされている場合、インストール方法に応じてクラック開発者の証明書名またはユーザーの個人証明書名が表示されます。

GetTeamId

  • 対応プラットフォーム: iOS
  • プロビジョニングプロファイルの所有者アカウントのチームIDを取得します。
string GetTeamId();
const char* HerculesGetTeamId();
  • パラメータ: なし
  • 戻り値
    • アプリに署名したApple開発者アカウントのチームID。アルファベットと数字の組み合わせです。
    • アプリが改ざんされている場合、異なるアカウントで再署名される可能性があり、以下の太字で示された値とは異なる場合があります。

GetCertHash

  • 対応プラットフォーム: Android
  • APKに適用された署名ハッシュを取得します。
string GetCertHash();
const char* HerculesGetCertHash();
  • パラメータ: なし
  • 戻り値
    • APK署名ハッシュ値。SHA1ハッシュ、16進数形式の40桁の文字列。
    • Google PlayストアまたはAmazonにアップロードした後、署名キーが変更される可能性があります。使用された署名キーのハッシュ値を確認した後、それらを比較できます。以前に確認したハッシュと異なる場合、これは再パッケージ化と見なすことができます。

プロキシステータスを取得

  • 対応プラットフォーム: Android, iOS
  • デバイスにプロキシ設定があるかどうかを確認し、結果を返します。
int GetProxyStatus();
int HerculesGetProxyStatus();
  • パラメータ: なし
  • 戻り値: プロキシ設定が適用されている場合は非ゼロを返します。

GetVPNStatus

  • 対応プラットフォーム: Android, iOS
  • デバイスがVPNに接続されているかを確認し、結果を返します。
int GetVPNStatus();
int HerculesGetVPNStatus();
  • パラメータ: なし
  • 戻り値: VPN接続がアクティブな場合は非ゼロを返します。

HerculesPrefs

UnityエンジンのPlayerPrefsクラスの暗号化バージョンです。
Unityとは異なり、ゲームを終了すると自動的に保存されないため、Save関数を呼び出す必要があります。
デバイスのバックアップ後にゲームデータを別のデバイスに移動すると、暗号化されたデータもコピーされる可能性があります。
参照URL: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

GetInt, GetFloat, GetString

  • 暗号化された設定ファイルに保存されている値を取得します。
int GetInt(string key, int defaultValue = 0);
float GetFloat(string key, float defaultValue = 0.0f);
string GetString(string key, string defaultValue = "");
int HerculesPrefsGetInt(const char *key, int defaultValue = 0);
float HerculesPrefsGetFloat(const char *key, float defaultValue = 0);
char* HerculesPrefsGetString(const char *key, const char *defaultValue = "");
  • パラメータ

    • key: 取得する値のキー。
    • defaultValue: 値がない場合に返されるデフォルト値。
  • 戻り値

    • 保存された値。保存された値がない場合や値が改ざんされている場合は、defaultValueが返されます。
    • C++の**HerculesPrefsGetString** APIによって返されたバッファは、HerculesFreeMem APIで解放する必要があります。

SetInt、SetFloat、SetString

  • キーと値を暗号化して保存します。
  • Save APIを呼び出さずにアプリを終了すると、設定は失われます。
void SetInt(string key, int value);
void SetFloat(string key, float value);
void SetString(string key, string value);
void HerculesPrefsSetInt(const char *key, int value);
void HerculesPrefsSetFloat(const char *key, float value);
void HerculesPrefsSetString(const char *key, const char *value);
  • パラメータ
    • key: 保存される値のキー。
    • value: 保存される値。
  • 戻り値: なし

HasKey

  • キーがあるかどうかを確認します。
bool HasKey(string key);
uint HerculesPrefsHasKey(const char *key);
  • パラメータ: テストされるキー。
  • 戻り値: キーが存在する場合、true(C#)または1(C++)を返します。

DeleteKey

  • キーを削除します。
void DeleteKey(string key);
void HerculesPrefsDeleteKey(const char *key);
  • パラメータ: 削除されるキー。
  • 戻り値: なし

全て削除

  • すべてのキーを削除します。
void DeleteAll();
void HerculesPrefsDeleteAll();
  • パラメータ: なし
  • 戻り値: なし

保存

  • 変更された内容は再度暗号化され、ファイルとして保存されます。保存された内容はモジュールが初期化されるときに読み込まれます。
void Save();
void HerculesPrefsSave();
  • パラメータ: なし
  • 戻り値: なし

セキュア変数 (C/C++)

これはC/C++でのみ使用できるセキュア変数APIです。
C#では、セキュア変数クラス(HerculesVar)を使用する際に内部的に呼び出されます。
使用方法については、セキュリティ変数ガイドを参照することをお勧めします。

AddString

  • ヘラクレスの文字列形式のセキュア変数を追加します。(割り当て済み)
HERCULES HerculesAddString(const char *str); 
  • パラメータ: 元の文字列のポインタ。
  • 戻り値: 作成されたセキュア変数のID。

AddVar

  • ヘラクレスのセキュア変数を追加します。(割り当て済み)
HERCULES HerculesAddVar(const void *data, uint length);
  • パラメータ
    • data: 変数を作成する際に参照される初期値のアドレス。
    • length: 作成される変数のサイズ。データパラメータのサイズを設定します。
  • 戻り値: 作成されたセキュア変数のID。

FreeMem

  • HerculesGetString APIによって割り当てられたバッファを解放します。
void HerculesFreeMem(void *ptr);
  • パラメーター: 一部のAPIによって割り当てられたバッファのアドレス。
  • 戻り値: なし

GetString

  • ヘラクレスのセキュアストリングの値を読み取ります。(読み取り)
  • C++のテンプレートクラスでは、変数の値が参照されると自動的に呼び出されます。
  • 文字列が読み取られる際に値の改ざんが検出された場合、初期化時に設定されたコールバック関数が呼び出されます。
char* HerculesGetString(HERCULES seq);
  • 戻り値
    • 値が正常に読み取られた場合は文字列バッファを返し、失敗した場合はnullptrを返します。
    • 返されたバッファは**HerculesFreeMem** APIを介して解放する必要があります。
  • パラメータ: セキュア変数のID。

GetVar

  • Herculesのセキュア変数の値を読み取ります。(読み取り)
  • C++テンプレートクラスでは、変数の値が参照されると自動的に呼び出されます。
  • 変数が読み取られると、その値の改ざんが検出された場合、初期化時に設定されたコールバック関数が呼び出されます。(これはポリシーによります。)
int HerculesGetVar(HERCULES seq, void *data); 
  • パラメータ
    • seq: セキュア変数のID。
    • data: 読み取るデータバッファのアドレス。変数を作成する際に設定したサイズと同じサイズのバッファを設定する必要があります。
  • 戻り値
    • 値が正常に読み取られた場合は0を返し、無効なパラメータの場合は正の数を返し、改ざんが検出された場合は負の数を返します。
    • 初期化段階でコールバック関数を設定しなかった場合、この戻り値を参照できます。

SetVar

  • Herculesのセキュア変数の値を設定します。(書き込み)
  • C++テンプレートクラスでは、変数に値を割り当てるときに自動的に呼び出されます。
void HerculesSetVar(HERCULES seq, const void *data);
  • パラメータ
    • seq: セキュア変数のID。
    • data: 設定するデータバッファのアドレス。変数を作成する際に設定したサイズと同じサイズのバッファを設定する必要があります。
  • 戻り値: なし

RemoveVar

  • Herculesのセキュア変数を削除します。(リリース)
  • C++テンプレートクラスでは、変数が解放されると自動的に呼び出されます。
void HerculesRemoveVar(HERCULES seq);
  • パラメータ: 解放される変数のID。
  • 戻り値: なし