ข้ามไปที่เนื้อหา

API ของเฮอร์คิวลิส

HerculesPlugin

นี่คือรายการของคลาสและ API พื้นฐานทั้งหมด
API ทั้งหมดสามารถใช้ได้หลังจากที่ SDK Hive ถูกเริ่มต้นแล้ว

อุปกรณ์ที่ถูกเจลเบรค

  • แพลตฟอร์มที่รองรับ: iOS
  • ตรวจสอบว่าอุปกรณ์ iOS ถูกเจลเบรคหรือไม่.
uint IsJailbrokenDevice();
uint HerculesIsJailbrokenDevice();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ: คืนค่า 0 หากอยู่ในสถานะเฟิร์มแวร์ดั้งเดิม และค่าที่ไม่เป็นศูนย์หากเป็นอุปกรณ์ที่ถูกเจลเบรค

อุปกรณ์ที่มีการรูท

  • แพลตฟอร์มที่รองรับ: Android
  • ตรวจสอบว่าอุปกรณ์ Android ถูกรูทหรือไม่
uint IsRootedDevice();
uint HerculesIsRootedDevice();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ: คืนค่า 0 หากไม่ใช่รูท, ค่าที่ไม่เป็นศูนย์หากอุปกรณ์ถูกรูท.

IsEmulator

  • แพลตฟอร์มที่รองรับ: Android
  • ตรวจสอบว่าอุปกรณ์ Android เป็นอีมูเลเตอร์หรือไม่.
uint IsEmulator();
uint HerculesIsEmulator();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ
    • คืนค่า 0 สำหรับอุปกรณ์มือถือ และค่าที่ไม่เป็นศูนย์สำหรับอีมูเลเตอร์
    • อีมูเลเตอร์ปลอมตัวเป็นอุปกรณ์มือถือ ดังนั้นอาจคืนค่า 0 สำหรับอีมูเลเตอร์บางตัว

IsUnofficialBuild

  • แพลตฟอร์มที่รองรับ: iOS
  • ตรวจสอบว่า iOS build เป็น build ที่ไม่เป็นทางการ (build ที่ไม่ได้ดาวน์โหลดจาก App Store)
  • มันตรวจสอบว่า build นั้นถูกเข้ารหัสด้วย Fairplay และลงนามแล้ว Build ที่ดาวน์โหลดจาก AppStore และ TestFlight ถือว่าเป็น build ที่เป็นทางการ
uint IsUnofficialBuild();
uint HerculesIsUnofficialBuild();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งคืน: 0 สำหรับการสร้างอย่างเป็นทางการ, 1 สำหรับการสร้างที่ติดตั้งจากภายนอก หากไม่สามารถตรวจสอบการสร้างได้ จะส่งคืนค่า 2 หรือสูงกว่า

GetFunnels

  • แพลตฟอร์มที่รองรับ: Android
  • รับฟunnel ที่แอปถูกติดตั้งอยู่
string GetFunnels();
const char* HerculesGetFunnels();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งคืน: ค่าต่างๆ เช่น ADB, Google Play Store, หรือ Amazon Appstore จะถูกส่งคืนเป็นเส้นทางที่แอปถูกติดตั้ง หรือชื่อแพ็คเกจของแอปที่ติดตั้งจะถูกส่งคืนหากติดตั้งผ่านตลาดอื่นหรือแอปสำรวจไฟล์

GetCertDesc

  • แพลตฟอร์มที่รองรับ: Android, iOS
  • ดึงข้อมูลใบรับรองของแอปที่ลงนามแล้ว.
string GetCertDesc();
const char* HerculesGetCertDesc();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งคืน
    • Android: คืนค่าชื่อทั่วไปของ APK keystore.
    • iOS: คืนค่าข้อมูลใบรับรองที่เกี่ยวข้องกับโปรไฟล์การจัดเตรียม แอปที่ดาวน์โหลดจาก App Store จะคืนค่าเป็นค่าว่าง หากแอปถูกแคร็ก จะมีการแสดงชื่อใบรับรองของนักพัฒนาที่แคร็กหรือชื่อใบรับรองส่วนบุคคลของผู้ใช้ ขึ้นอยู่กับวิธีการติดตั้ง.

GetTeamId

  • แพลตฟอร์มที่รองรับ: iOS
  • รับ ID ทีมของบัญชีเจ้าของโปรไฟล์การจัดเตรียม.
string GetTeamId();
const char* HerculesGetTeamId();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ
    • รหัสทีมของบัญชีนักพัฒนา Apple ที่ลงนามในแอป ซึ่งเป็นการรวมกันของตัวอักษรและตัวเลข
    • หากแอปถูกแคร็ก อาจถูกลงนามใหม่ด้วยบัญชีอื่นและอาจแตกต่างจากค่าที่แสดงเป็นตัวหนาด้านล่าง

GetCertHash

  • แพลตฟอร์มที่รองรับ: Android
  • รับแฮชลายเซ็นที่ใช้กับ APK.
string GetCertHash();
const char* HerculesGetCertHash();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งคืน
    • ค่าแฮชลายเซ็น APK ค่าแฮช SHA1 เป็นสตริง 40 หลักในรูปแบบเลขฐานสิบหก
    • คีย์การเซ็นอาจเปลี่ยนแปลงหลังจากอัปโหลดไปยัง Google Play Store หรือ Amazon หลังจากตรวจสอบค่าแฮชของคีย์ลายเซ็นที่ใช้แล้ว คุณสามารถเปรียบเทียบได้ หากแตกต่างจากค่าแฮชที่ตรวจสอบก่อนหน้านี้ นี่สามารถถือว่าเป็นการบรรจุใหม่

GetProxyStatus

  • แพลตฟอร์มที่รองรับ: Android, iOS
  • ตรวจสอบว่าอุปกรณ์มีการตั้งค่า proxy หรือไม่และส่งคืนผลลัพธ์
int GetProxyStatus();
int HerculesGetProxyStatus();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ: คืนค่าที่ไม่เป็นศูนย์หากตั้งค่าพร็อกซีเรียบร้อยแล้ว

GetVPNStatus

  • แพลตฟอร์มที่รองรับ: Android, iOS
  • ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับ VPN หรือไม่และส่งคืนผลลัพธ์
int GetVPNStatus();
int HerculesGetVPNStatus();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งคืน: คืนค่าที่ไม่เป็นศูนย์หากการเชื่อมต่อ VPN ทำงานอยู่.

HerculesPrefs

เวอร์ชันที่เข้ารหัสของคลาส PlayerPrefs ของเอนจิน Unity.
แตกต่างจาก 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: ค่าพื้นฐานที่จะถูกส่งคืนหากไม่มีค่า
  • ค่าที่ส่งกลับ

    • ค่าที่ถูกเก็บไว้ หากไม่มีค่าที่เก็บไว้หรือค่าถูกดัดแปลง จะส่งค่าดีฟอลต์กลับ
    • บัฟเฟอร์ที่ส่งกลับโดย API HerculesPrefsGetString ของ C++ ต้องถูกปล่อยด้วย API HerculesFreeMem

SetInt, SetFloat, SetString

  • เข้ารหัสและจัดเก็บคีย์และค่า
  • หากคุณออกจากแอปโดยไม่เรียกใช้ API Save การตั้งค่าจะแสดงหายไป
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++) หากมีคีย์.

ลบคีย์

  • ลบคีย์.
void DeleteKey(string key);
void HerculesPrefsDeleteKey(const char *key);
  • พารามิเตอร์: คีย์ที่จะถูกลบออก
  • ค่าที่ส่งกลับ: ไม่มี

ลบทั้งหมด

  • ลบคีย์ทั้งหมด.
void DeleteAll();
void HerculesPrefsDeleteAll();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ: ไม่มี

บันทึก

  • เนื้อหาที่เปลี่ยนแปลงจะถูกเข้ารหัสอีกครั้งและบันทึกเป็นไฟล์ เนื้อหาที่บันทึกจะถูกโหลดเมื่อโมดูลถูกเริ่มต้น
void Save();
void HerculesPrefsSave();
  • พารามิเตอร์: ไม่มี
  • ค่าที่ส่งกลับ: ไม่มี

ตัวแปรที่ปลอดภัย (C/C++)

นี่คือตัวแปร API ที่ปลอดภัยซึ่งสามารถใช้ได้เฉพาะใน C/C++ เท่านั้น
ใน C# จะถูกเรียกใช้ภายในเมื่อใช้คลาสตัวแปรที่ปลอดภัย (HerculesVar)
แนะนำให้ดูคู่มือเกี่ยวกับตัวแปรที่ปลอดภัยเพื่อเรียนรู้วิธีการใช้งาน

AddString

  • เพิ่มตัวแปรที่ปลอดภัยของ Hercules ในรูปแบบสตริง (จัดสรรแล้ว)
HERCULES HerculesAddString(const char *str); 
  • พารามิเตอร์: ตัวชี้สำหรับสตริงต้นฉบับ.
  • ค่าที่ส่งกลับ: รหัสของตัวแปรที่สร้างขึ้นอย่างปลอดภัย.

AddVar

  • เพิ่มตัวแปรที่ปลอดภัยของ Hercules (จัดสรรแล้ว)
HERCULES HerculesAddVar(const void *data, uint length);
  • พารามิเตอร์
    • data: ที่อยู่ของค่าตั้งต้นที่จะถูกอ้างอิงเมื่อสร้างตัวแปร
    • length: ขนาดของตัวแปรที่จะถูกสร้าง กำหนดขนาดของพารามิเตอร์ข้อมูล
  • ค่าที่ส่งกลับ: ID ของตัวแปรที่ปลอดภัยที่ถูกสร้างขึ้น

FreeMem

  • ปลดปล่อยบัฟเฟอร์ที่จัดสรรโดย HerculesGetString API.
void HerculesFreeMem(void *ptr);
  • พารามิเตอร์: ที่อยู่ของบัฟเฟอร์ที่จัดสรรโดย API บางตัว。
  • ค่าที่ส่งกลับ: ไม่มี

GetString

  • อ่านค่าของสตริงที่ปลอดภัยของ Hercules (อ่าน)
  • ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการอ้างอิงค่าของตัวแปร
  • หากตรวจพบการดัดแปลงค่าขณะอ่านสตริง ฟังก์ชันเรียกกลับที่ตั้งค่าไว้ในระหว่างการเริ่มต้นจะถูกเรียก
char* HerculesGetString(HERCULES seq);
  • ค่าที่ส่งกลับ
    • คืนค่าบัฟเฟอร์สตริงหากอ่านค่าได้สำเร็จ หรือคืนค่า nullptr หากไม่สำเร็จ
    • บัฟเฟอร์ที่ส่งคืนต้องถูกปล่อยผ่าน API HerculesFreeMem
  • พารามิเตอร์: รหัสของตัวแปรที่ปลอดภัย

GetVar

  • อ่านค่าของตัวแปรที่ปลอดภัยของ Hercules (อ่าน)
  • ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการอ้างอิงค่าของตัวแปร
  • เมื่อมีการอ่านตัวแปร หากตรวจพบการเปลี่ยนแปลงค่าของมัน ฟังก์ชัน callback ที่ตั้งไว้ในระหว่างการเริ่มต้นจะถูกเรียก (นี่ขึ้นอยู่กับนโยบาย)
int HerculesGetVar(HERCULES seq, void *data); 
  • พารามิเตอร์
    • seq: รหัสของตัวแปรที่ปลอดภัย
    • data: ที่อยู่ของบัฟเฟอร์ข้อมูลที่จะอ่าน คุณต้องตั้งค่าบัฟเฟอร์ที่มีขนาดเท่ากับขนาดที่ตั้งค่าเมื่อสร้างตัวแปร
  • ค่าที่ส่งกลับ
    • คืนค่า 0 หากอ่านค่าได้สำเร็จ หมายเลขบวกสำหรับพารามิเตอร์ที่ไม่ถูกต้อง และหมายเลขลบหากตรวจพบการดัดแปลง
    • หากคุณไม่ได้ตั้งค่าฟังก์ชัน callback ในระยะเริ่มต้น คุณสามารถอ้างอิงค่าที่ส่งกลับนี้ได้

SetVar

  • ตั้งค่าของตัวแปรที่ปลอดภัยของ Hercules (เขียน)
  • ในคลาสเทมเพลต C++ จะถูกเรียกใช้อัตโนมัติเมื่อกำหนดค่าตัวแปร
void HerculesSetVar(HERCULES seq, const void *data);
  • พารามิเตอร์
    • seq: รหัสของตัวแปรที่ปลอดภัย
    • data: ที่อยู่ของบัฟเฟอร์ข้อมูลที่จะตั้งค่า คุณต้องตั้งค่าบัฟเฟอร์ที่มีขนาดเท่ากับขนาดที่ตั้งค่าเมื่อสร้างตัวแปร
  • ค่าที่ส่งกลับ: ไม่มี

RemoveVar

  • ลบตัวแปรที่ปลอดภัยของ Hercules (Release)
  • ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการปล่อยตัวแปร
void HerculesRemoveVar(HERCULES seq);
  • พารามิเตอร์: รหัสของตัวแปรที่จะถูกปล่อยออก
  • ค่าที่ส่งกลับ: ไม่มี