API ของเฮอร์คิวลิส
HerculesPlugin¶
นี่คือรายการของคลาสและ API พื้นฐานทั้งหมด
API ทั้งหมดสามารถใช้ได้หลังจากที่ SDK Hive ถูกเริ่มต้นแล้ว
อุปกรณ์ที่ถูกเจลเบรค¶
- แพลตฟอร์มที่รองรับ: iOS
- ตรวจสอบว่าอุปกรณ์ iOS ถูกเจลเบรคหรือไม่.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ: คืนค่า 0 หากอยู่ในสถานะเฟิร์มแวร์ดั้งเดิม และค่าที่ไม่เป็นศูนย์หากเป็นอุปกรณ์ที่ถูกเจลเบรค
อุปกรณ์ที่มีการรูท¶
- แพลตฟอร์มที่รองรับ: Android
- ตรวจสอบว่าอุปกรณ์ Android ถูกรูทหรือไม่
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ: คืนค่า 0 หากไม่ใช่รูท, ค่าที่ไม่เป็นศูนย์หากอุปกรณ์ถูกรูท.
IsEmulator¶
- แพลตฟอร์มที่รองรับ: Android
- ตรวจสอบว่าอุปกรณ์ Android เป็นอีมูเลเตอร์หรือไม่.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ
- คืนค่า 0 สำหรับอุปกรณ์มือถือ และค่าที่ไม่เป็นศูนย์สำหรับอีมูเลเตอร์
- อีมูเลเตอร์ปลอมตัวเป็นอุปกรณ์มือถือ ดังนั้นอาจคืนค่า 0 สำหรับอีมูเลเตอร์บางตัว
IsUnofficialBuild¶
- แพลตฟอร์มที่รองรับ: iOS
- ตรวจสอบว่า iOS build เป็น build ที่ไม่เป็นทางการ (build ที่ไม่ได้ดาวน์โหลดจาก App Store)
- มันตรวจสอบว่า build นั้นถูกเข้ารหัสด้วย Fairplay และลงนามแล้ว Build ที่ดาวน์โหลดจาก AppStore และ TestFlight ถือว่าเป็น build ที่เป็นทางการ
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งคืน: 0 สำหรับการสร้างอย่างเป็นทางการ, 1 สำหรับการสร้างที่ติดตั้งจากภายนอก หากไม่สามารถตรวจสอบการสร้างได้ จะส่งคืนค่า 2 หรือสูงกว่า
GetFunnels¶
- แพลตฟอร์มที่รองรับ: Android
- รับฟunnel ที่แอปถูกติดตั้งอยู่
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งคืน: ค่าต่างๆ เช่น ADB, Google Play Store, หรือ Amazon Appstore จะถูกส่งคืนเป็นเส้นทางที่แอปถูกติดตั้ง หรือชื่อแพ็คเกจของแอปที่ติดตั้งจะถูกส่งคืนหากติดตั้งผ่านตลาดอื่นหรือแอปสำรวจไฟล์
GetCertDesc¶
- แพลตฟอร์มที่รองรับ: Android, iOS
- ดึงข้อมูลใบรับรองของแอปที่ลงนามแล้ว.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งคืน
- Android: คืนค่าชื่อทั่วไปของ APK keystore.
- iOS: คืนค่าข้อมูลใบรับรองที่เกี่ยวข้องกับโปรไฟล์การจัดเตรียม แอปที่ดาวน์โหลดจาก App Store จะคืนค่าเป็นค่าว่าง หากแอปถูกแคร็ก จะมีการแสดงชื่อใบรับรองของนักพัฒนาที่แคร็กหรือชื่อใบรับรองส่วนบุคคลของผู้ใช้ ขึ้นอยู่กับวิธีการติดตั้ง.
GetTeamId¶
- แพลตฟอร์มที่รองรับ: iOS
- รับ ID ทีมของบัญชีเจ้าของโปรไฟล์การจัดเตรียม.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ
- รหัสทีมของบัญชีนักพัฒนา Apple ที่ลงนามในแอป ซึ่งเป็นการรวมกันของตัวอักษรและตัวเลข
- หากแอปถูกแคร็ก อาจถูกลงนามใหม่ด้วยบัญชีอื่นและอาจแตกต่างจากค่าที่แสดงเป็นตัวหนาด้านล่าง
GetCertHash¶
- แพลตฟอร์มที่รองรับ: Android
- รับแฮชลายเซ็นที่ใช้กับ APK.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งคืน
- ค่าแฮชลายเซ็น APK ค่าแฮช SHA1 เป็นสตริง 40 หลักในรูปแบบเลขฐานสิบหก
- คีย์การเซ็นอาจเปลี่ยนแปลงหลังจากอัปโหลดไปยัง Google Play Store หรือ Amazon หลังจากตรวจสอบค่าแฮชของคีย์ลายเซ็นที่ใช้แล้ว คุณสามารถเปรียบเทียบได้ หากแตกต่างจากค่าแฮชที่ตรวจสอบก่อนหน้านี้ นี่สามารถถือว่าเป็นการบรรจุใหม่
GetProxyStatus¶
- แพลตฟอร์มที่รองรับ: Android, iOS
- ตรวจสอบว่าอุปกรณ์มีการตั้งค่า proxy หรือไม่และส่งคืนผลลัพธ์
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ: คืนค่าที่ไม่เป็นศูนย์หากตั้งค่าพร็อกซีเรียบร้อยแล้ว
GetVPNStatus¶
- แพลตฟอร์มที่รองรับ: Android, iOS
- ตรวจสอบว่าอุปกรณ์เชื่อมต่อกับ VPN หรือไม่และส่งคืนผลลัพธ์
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งคืน: คืนค่าที่ไม่เป็นศูนย์หากการเชื่อมต่อ VPN ทำงานอยู่.
HerculesPrefs¶
เวอร์ชันที่เข้ารหัสของคลาส PlayerPrefs ของเอนจิน Unity.
แตกต่างจาก Unity, มันจะไม่ถูกบันทึกโดยอัตโนมัติเมื่อคุณออกจากเกม, ดังนั้นคุณต้องเรียกใช้ฟังก์ชัน Save.
หากคุณย้ายข้อมูลเกมไปยังอุปกรณ์อื่นหลังจากสำรองข้อมูลอุปกรณ์ของคุณ, ข้อมูลที่เข้ารหัสอาจถูกคัดลอกด้วย.
URL อ้างอิง: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
GetInt, GetFloat, GetString¶
- รับค่าที่เก็บไว้ในไฟล์การตั้งค่าที่เข้ารหัส.
-
พารามิเตอร์
- key: ค่าของคีย์ที่ต้องการดึงข้อมูล
- defaultValue: ค่าพื้นฐานที่จะถูกส่งคืนหากไม่มีค่า
-
ค่าที่ส่งกลับ
- ค่าที่ถูกเก็บไว้ หากไม่มีค่าที่เก็บไว้หรือค่าถูกดัดแปลง จะส่งค่าดีฟอลต์กลับ
- บัฟเฟอร์ที่ส่งกลับโดย API HerculesPrefsGetString ของ C++ ต้องถูกปล่อยด้วย API HerculesFreeMem
SetInt, SetFloat, SetString¶
- เข้ารหัสและจัดเก็บคีย์และค่า
- หากคุณออกจากแอปโดยไม่เรียกใช้ API Save การตั้งค่าจะแสดงหายไป
- พารามิเตอร์
- key: คีย์ของค่าที่จะถูกเก็บ
- value: ค่าที่จะถูกเก็บ
- ค่าที่ส่งกลับ: ไม่มี
HasKey¶
- ตรวจสอบว่ามีคีย์หรือไม่
- พารามิเตอร์: คีย์ที่จะถูกทดสอบ.
- ค่าที่ส่งกลับ: ส่งกลับ true (C#) หรือ 1 (C++) หากมีคีย์.
ลบคีย์¶
- ลบคีย์.
- พารามิเตอร์: คีย์ที่จะถูกลบออก
- ค่าที่ส่งกลับ: ไม่มี
ลบทั้งหมด¶
- ลบคีย์ทั้งหมด.
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ: ไม่มี
บันทึก¶
- เนื้อหาที่เปลี่ยนแปลงจะถูกเข้ารหัสอีกครั้งและบันทึกเป็นไฟล์ เนื้อหาที่บันทึกจะถูกโหลดเมื่อโมดูลถูกเริ่มต้น
- พารามิเตอร์: ไม่มี
- ค่าที่ส่งกลับ: ไม่มี
ตัวแปรที่ปลอดภัย (C/C++)¶
นี่คือตัวแปร API ที่ปลอดภัยซึ่งสามารถใช้ได้เฉพาะใน C/C++ เท่านั้น
ใน C# จะถูกเรียกใช้ภายในเมื่อใช้คลาสตัวแปรที่ปลอดภัย (HerculesVar)
แนะนำให้ดูคู่มือเกี่ยวกับตัวแปรที่ปลอดภัยเพื่อเรียนรู้วิธีการใช้งาน
AddString¶
- เพิ่มตัวแปรที่ปลอดภัยของ Hercules ในรูปแบบสตริง (จัดสรรแล้ว)
- พารามิเตอร์: ตัวชี้สำหรับสตริงต้นฉบับ.
- ค่าที่ส่งกลับ: รหัสของตัวแปรที่สร้างขึ้นอย่างปลอดภัย.
AddVar¶
- เพิ่มตัวแปรที่ปลอดภัยของ Hercules (จัดสรรแล้ว)
- พารามิเตอร์
- data: ที่อยู่ของค่าตั้งต้นที่จะถูกอ้างอิงเมื่อสร้างตัวแปร
- length: ขนาดของตัวแปรที่จะถูกสร้าง กำหนดขนาดของพารามิเตอร์ข้อมูล
- ค่าที่ส่งกลับ: ID ของตัวแปรที่ปลอดภัยที่ถูกสร้างขึ้น
FreeMem¶
- ปลดปล่อยบัฟเฟอร์ที่จัดสรรโดย HerculesGetString API.
- พารามิเตอร์: ที่อยู่ของบัฟเฟอร์ที่จัดสรรโดย API บางตัว。
- ค่าที่ส่งกลับ: ไม่มี
GetString¶
- อ่านค่าของสตริงที่ปลอดภัยของ Hercules (อ่าน)
- ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการอ้างอิงค่าของตัวแปร
- หากตรวจพบการดัดแปลงค่าขณะอ่านสตริง ฟังก์ชันเรียกกลับที่ตั้งค่าไว้ในระหว่างการเริ่มต้นจะถูกเรียก
- ค่าที่ส่งกลับ
- คืนค่าบัฟเฟอร์สตริงหากอ่านค่าได้สำเร็จ หรือคืนค่า nullptr หากไม่สำเร็จ
- บัฟเฟอร์ที่ส่งคืนต้องถูกปล่อยผ่าน API HerculesFreeMem
- พารามิเตอร์: รหัสของตัวแปรที่ปลอดภัย
GetVar¶
- อ่านค่าของตัวแปรที่ปลอดภัยของ Hercules (อ่าน)
- ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการอ้างอิงค่าของตัวแปร
- เมื่อมีการอ่านตัวแปร หากตรวจพบการเปลี่ยนแปลงค่าของมัน ฟังก์ชัน callback ที่ตั้งไว้ในระหว่างการเริ่มต้นจะถูกเรียก (นี่ขึ้นอยู่กับนโยบาย)
- พารามิเตอร์
- seq: รหัสของตัวแปรที่ปลอดภัย
- data: ที่อยู่ของบัฟเฟอร์ข้อมูลที่จะอ่าน คุณต้องตั้งค่าบัฟเฟอร์ที่มีขนาดเท่ากับขนาดที่ตั้งค่าเมื่อสร้างตัวแปร
- ค่าที่ส่งกลับ
- คืนค่า 0 หากอ่านค่าได้สำเร็จ หมายเลขบวกสำหรับพารามิเตอร์ที่ไม่ถูกต้อง และหมายเลขลบหากตรวจพบการดัดแปลง
- หากคุณไม่ได้ตั้งค่าฟังก์ชัน callback ในระยะเริ่มต้น คุณสามารถอ้างอิงค่าที่ส่งกลับนี้ได้
SetVar¶
- ตั้งค่าของตัวแปรที่ปลอดภัยของ Hercules (เขียน)
- ในคลาสเทมเพลต C++ จะถูกเรียกใช้อัตโนมัติเมื่อกำหนดค่าตัวแปร
- พารามิเตอร์
- seq: รหัสของตัวแปรที่ปลอดภัย
- data: ที่อยู่ของบัฟเฟอร์ข้อมูลที่จะตั้งค่า คุณต้องตั้งค่าบัฟเฟอร์ที่มีขนาดเท่ากับขนาดที่ตั้งค่าเมื่อสร้างตัวแปร
- ค่าที่ส่งกลับ: ไม่มี
RemoveVar¶
- ลบตัวแปรที่ปลอดภัยของ Hercules (Release)
- ในคลาสเทมเพลต C++ จะถูกเรียกโดยอัตโนมัติเมื่อมีการปล่อยตัวแปร
- พารามิเตอร์: รหัสของตัวแปรที่จะถูกปล่อยออก
- ค่าที่ส่งกลับ: ไม่มี