Spaces:
Sleeping
Sleeping
| import UnityPy | |
| import sys | |
| import os | |
| def extract_assets(folder_path): | |
| meshes = [] | |
| textures = [] | |
| for root, dirs, files in os.walk(folder_path): | |
| for file_name in files: | |
| file_path = os.path.join(root, file_name) | |
| try: | |
| env = UnityPy.load(file_path) | |
| for obj in env.objects: | |
| if obj.type.name == "Mesh": | |
| meshes.append(obj.get_raw_data()) | |
| elif obj.type.name == "Texture2D": | |
| textures.append(obj.get_raw_data()) | |
| except Exception: | |
| continue | |
| return meshes, textures | |
| def inject_assets(folder_path, hp_meshes, hp_textures): | |
| modified_any = False | |
| for root, dirs, files in os.walk(folder_path): | |
| for file_name in files: | |
| file_path = os.path.join(root, file_name) | |
| try: | |
| env = UnityPy.load(file_path) | |
| file_modified = False | |
| m_idx = 0 | |
| t_idx = 0 | |
| for obj in env.objects: | |
| if obj.type.name == "Mesh" and m_idx < len(hp_meshes): | |
| obj.set_raw_data(hp_meshes[m_idx]) | |
| m_idx += 1 | |
| file_modified = True | |
| modified_any = True | |
| elif obj.type.name == "Texture2D" and t_idx < len(hp_textures): | |
| obj.set_raw_data(hp_textures[t_idx]) | |
| t_idx += 1 | |
| file_modified = True | |
| modified_any = True | |
| if file_modified: | |
| # SIMPAN FILE MENIMPA ASLINYA (UABE METHOD) AGAR CAB TETAP VALID | |
| with open(file_path, "wb") as f: | |
| f.write(env.file.save()) | |
| print(f"[UABE-PYTHON] 🎯 Biner {file_name} ditimpa! CAB aman!") | |
| except Exception: | |
| continue | |
| return modified_any | |
| if __name__ == "__main__": | |
| if len(sys.argv) < 3: | |
| sys.exit(1) | |
| dummy_dir = sys.argv[1] | |
| hp_dir = sys.argv[2] | |
| print("[UABE-PYTHON] Mengambil data biner murni dari Raksasa...") | |
| meshes, textures = extract_assets(hp_dir) | |
| print(f"[UABE-PYTHON] Menemukan {len(meshes)} Mesh dan {len(textures)} Texture. Menyuntikkan ke Dummy...") | |
| if inject_assets(dummy_dir, meshes, textures): | |
| print("[SUCCESS] Operasi UABE In-Place berhasil mutlak!") | |
| else: | |
| print("[FAIL] Gagal melakukan modifikasi biner.") | |
| sys.exit(1) |