Decrypt Globalmetadatadat ((better)) • Full Version
How to Decrypt Global-metadata.dat: A Guide for Unity Game Modders
If you’ve ever dipped your toes into the world of Unity game modding or reverse engineering, you’ve likely hit a brick wall known as global-metadata.dat. This file is the backbone of Unity’s IL2CPP (Intermediate Language To C++) scripting backend, and without decrypting or "dumping" it, the game’s code remains an unreadable mess of machine instructions.
In this guide, we’ll break down what this file is, why developers protect it, and the tools you can use to decrypt it. What is global-metadata.dat?
In a standard Unity game, the logic is stored in a Assembly-CSharp.dll file. This is easy to decompile. However, to increase performance and security, many developers use IL2CPP. When a game is compiled with IL2CPP: The C# code is converted into C++ code.
The C++ is compiled into a native machine code binary (like libil2cpp.so on Android or GameAssembly.dll on Windows).
The Metadata: All the names of classes, methods, and fields are stripped from the binary and tucked away into global-metadata.dat.
To reconstruct the code, you need both the executable binary and the metadata file to work in harmony. Why is it "Encrypted"?
Technically, a standard global-metadata.dat isn't encrypted—it’s just packed in a proprietary binary format. However, many game developers (especially in the mobile space) apply custom encryption or obfuscation to this file to prevent hackers from seeing how their game works.
If you try to load a protected metadata file into a tool like Il2CppDumper and get an error like "mismatch signature" or "invalid header," you’re dealing with an encrypted file. Tools You’ll Need Before you start, gather these essential tools:
Il2CppDumper: The gold standard for extracting information from IL2CPP files.
DnSpy: For viewing the "dummy" DLLs created after decryption.
GG (GameGuardian) or a Debugger: Sometimes necessary to "dump" the file from memory while the game is running.
Hex Editor (e.g., HxD): To manually inspect the file header. How to Decrypt and Dump Global-metadata.dat
There are two main ways to handle a protected file: Static Analysis and Memory Dumping. Method 1: The Memory Dump (Easiest)
Even if the file is encrypted on your hard drive, the game must decrypt it in the device's RAM to run. Launch the game on an emulator or rooted device.
Use a tool like GameGuardian or Frida to search for the decrypted metadata header in the game’s memory.
The signature for a standard metadata file starts with the hex values: AF 1B B1 FA.
Once found, "dump" that segment of memory to a new file. This file is now decrypted. Method 2: Manual Header Repair
Often, "encryption" is just the developer changing the first few bytes of the file to throw off automated tools. Open your global-metadata.dat in a Hex Editor.
Check the first 4 bytes. If they aren't AF 1B B1 FA, the tool will fail.
Advanced modders use a disassembler (like IDA Pro) on the libil2cpp.so file to find the MetadataCache::Initialize function. This function contains the logic the game uses to "unlock" the metadata. Method 3: Using Il2CppDumper
Once you have a decrypted file (or if the file wasn't encrypted to begin with): Run Il2CppDumper.exe. Select the executable file (.so or .dll). Select your global-metadata.dat.
The tool will output a DummyDll folder. You can load these folders into dnSpy to read the game's class structures and method names. Is it Legal?
Decrypting files for interoperability or educational research is often a gray area, but distributing copyrighted game code or using these methods to cheat in online games violates most Terms of Service. Always check your local laws and the game's EULA before proceeding.
Decrypting global-metadata.dat is the "Master Key" to Unity modding. Whether you use a memory dumper to bypass encryption or manually reverse the initialization logic in the game's binary, getting that metadata is the only way to turn machine code back into something human-readable.
To decrypt or extract information from a global-metadata.dat file—typically used in Unity games built with the IL2CPP scripting backend—you generally need to dump the data from memory while the game is running. This is because the file on disk is often obfuscated or encrypted. Popular Tools for Decryption & Extraction
Il2CppDumper: The standard tool for extracting metadata. It uses GameAssembly.dll (or libil2cpp.so) and the global-metadata.dat file to reconstruct the original C# class structures.
Il2CppMetadataExtractor: A Frida-based script that dumps the decrypted metadata directly from memory, which is helpful if the file on disk is heavily encrypted.
Zygisk-Il2CppDumper: Useful for Android games, this tool can bypass protection to dump a valid metadata file from a running process.
Cpp2IL: An alternative to Il2CppDumper that attempts to convert the binary code back into readable IL (Intermediate Language) code. Step-by-Step Recovery Process
Decrypting a Unity application's global-metadata.dat file is a core step in reverse engineering
projects, as this file contains the metadata (classes, methods, fields) required to make sense of the game's binary code. Step 1: Memory Dumping (Preferred Method)
If a file is encrypted on disk, the easiest way to get a decrypted version is to dump it from the device's RAM while the game is running, as the game must decrypt it to function. Il2CppMetadataExtractor (Frida script). on your PC and a Frida-server on your Android device/emulator. Launch the target Unity application.
Run the script via CLI. It will automatically search the application's memory for the global-metadata.dat header and save a decrypted copy to your machine. Step 2: Automated Decryption Plugins
Some games use known, standardized encryption methods (like XOR) that specialized inspectors can handle automatically. Il2CppInspector global-metadata.dat and the binary file ( libil2cpp.so GameAssembly.dll ) into the tool. Check for existing loader plugins or built-in support for games like Genshin Impact Call of Duty: Mobile
If supported, the tool will output a deobfuscated metadata file. Step 3: Manual Decryption (Advanced) decrypt globalmetadatadat
If automated tools fail, you must locate the decryption logic within the game's binary. WordPress.com Open the game's binary file ( libil2cpp.so GameAssembly.dll ) in your disassembler. Search for the string "global-metadata.dat" Follow the cross-references (X) to find the function that loads this file.
Trace the code immediately following the file-read operation to identify the decryption algorithm (often a simple XOR or a custom routine). WordPress.com Step 4: Verification and Usage Once you have a decrypted file, you can use it with Il2CppDumper to generate dummy DLLs and a script.json for further analysis in Ghidra. Sign of Success : The file should start with the magic hex bytes AF 1B B1 FA Sign of Failure Il2CppDumper
returns an error like "Index was outside the bounds of the array," the metadata format may be modified or still partially encrypted.
Decrypting global-metadata.dat: A Guide to Unity IL2CPP Reverse Engineering
In the world of Unity game modding and security, the global-metadata.dat file is a critical component of the IL2CPP (Intermediate Language To C++) scripting backend. It contains essential metadata—like class, method, and string names—that allows the game binary to function. Because this file is a "map" for reverse engineers, many developers encrypt or obfuscate it to protect their code. Understanding the Metadata Challenge
Standard tools like Il2CppDumper rely on finding specific "magic bytes" (the IL2CPP header AF 1B B1 FA) to parse the file. When a developer encrypts the file, these headers are scrambled, causing tools to fail with "unrecognized format" errors. Common Decryption Methods
Depending on the level of protection, you can use several strategies to retrieve a decrypted version of the file. 1. Memory Dumping (The "Golden" Method)
Since the game must eventually decrypt the metadata to run, the easiest way to get the clean file is to dump it from the device's RAM while the game is active.
Frida Scripts: You can use a Frida script like the Il2CppMetadataExtractor to automatically locate and dump the decrypted metadata directly from memory.
GameGuardian (Android): On rooted devices, you can search for the IL2CPP magic bytes in the game's memory space and manually dump the surrounding data block. 2. Analyzing the Loader in IDA or Ghidra
If memory dumping is blocked by anti-cheat, you must find the decryption logic within the game's primary binary (often GameAssembly.dll on Windows or libil2cpp.so on Android).
Locating the Entry Point: Look for the function il2cpp::vm::MetadataCache::Initialize. This is where the game loads and processes the metadata.
Identifying the Logic: Developers often insert a "shim" function just before the metadata is used. If you find a function that takes the encrypted buffer and returns a pointer to a new one, that is your decryption routine.
XOR Keys: Many games use a simple XOR cipher. If you find a "weird string" or constant being used in a loop within the initialization code, it is likely the XOR key. 3. Targeted Decryption Scripts
For popular games with known encryption schemes, the community often releases specific decryptors. Finding loaders for obfuscated global-metadata.dat files
Decrypting GlobalMetadata.dat: Uncovering Hidden Insights
Introduction
In the realm of data analysis and cybersecurity, encountering encrypted files like GlobalMetadata.dat is not uncommon. These files often contain crucial information that can provide valuable insights into system operations, user behavior, or even hidden threats. Decrypting such files is essential for understanding their contents and making informed decisions. In this article, we'll delve into the process of decrypting GlobalMetadata.dat, exploring methods, tools, and best practices.
Understanding GlobalMetadata.dat
GlobalMetadata.dat is a file that stores metadata about a particular system, application, or dataset. This metadata can include information such as:
- System configuration data
- User activity logs
- File system structure
- Application settings
The contents of GlobalMetadata.dat can vary depending on the source and purpose of the file. In some cases, it might be encrypted to protect sensitive information or prevent unauthorized access.
Methods for Decrypting GlobalMetadata.dat
Several approaches can be employed to decrypt GlobalMetadata.dat, depending on the encryption method used and the resources available. Here are a few common methods:
- Using a decryption key: If the file was encrypted using a specific key, obtaining this key can be the most straightforward way to decrypt the file.
- Brute-force attack: This method involves trying all possible combinations of passwords or keys until the correct one is found. However, this approach can be time-consuming and may not be feasible for complex encryption.
- Frequency analysis: Analyzing the frequency of bytes or patterns in the file can help identify the encryption algorithm used.
- Using decryption tools: Specialized software, such as cryptographic tools or data analysis suites, can aid in decrypting
GlobalMetadata.dat.
Tools for Decrypting GlobalMetadata.dat
Some popular tools for decrypting files like GlobalMetadata.dat include:
- OpenSSL: A widely-used cryptographic library with a range of encryption and decryption tools.
- CryptTool: A software utility for encrypting and decrypting files using various algorithms.
- Autopsy's File Carving Tool: A digital forensics tool that can help extract data from encrypted files.
Step-by-Step Decryption Guide
Here's a basic guide to decrypting GlobalMetadata.dat using OpenSSL:
- Install OpenSSL: Ensure OpenSSL is installed on your system.
- Determine the encryption algorithm: Identify the encryption algorithm used to encrypt
GlobalMetadata.dat. - Obtain the decryption key: If possible, obtain the decryption key or password.
- Run the decryption command: Use OpenSSL to decrypt the file, specifying the algorithm and key.
Example command:
openssl enc -d -aes-256-cbc -in GlobalMetadata.dat -out decrypted_data
Best Practices and Precautions
When working with encrypted files like GlobalMetadata.dat, keep in mind:
- Handle with care: Encrypted files may contain sensitive information; handle them with care to avoid data breaches or system compromise.
- Use secure methods: Ensure that decryption methods used are secure and compliant with relevant regulations.
- Document everything: Keep detailed records of the decryption process, including tools used and results.
Conclusion
Decrypting GlobalMetadata.dat requires a combination of technical expertise, specialized tools, and attention to detail. By understanding the methods, tools, and best practices outlined in this article, you'll be well-equipped to uncover the hidden insights within this file. Whether for cybersecurity, data analysis, or system administration, mastering the art of decryption can help you make informed decisions and stay ahead of emerging threats.
Decrypting global-metadata.dat is a core step in reverse engineering Unity games that use the IL2CPP (Intermediate Language to C++) scripting backend. This file acts as a blueprint, containing the names and definitions of all classes, methods, and variables used in the game. Why Decrypt This File?
When developers use IL2CPP, the game's logic is converted into machine code, which is difficult for humans to read. The global-metadata.dat file holds the keys to understanding that code. However, many developers encrypt or obfuscate this file to prevent modding, hacking, or intellectual property theft. Decrypting it allows researchers and modders to:
Restore Method Names: Map generic memory addresses back to human-readable function names (e.g., GetPlayerHealth). How to Decrypt Global-metadata
Analyze Game Logic: Understand how the game handles security, networking, or mechanics.
Create Mods: Modify game behavior by hooking into specific functions. Common Decryption Methods
Decryption techniques vary based on how the developer protected the file:
Memory Dumping: Instead of cracking the encryption algorithm, researchers run the game and use tools to "dump" the decrypted metadata directly from the device's RAM while the game is running.
Algorithm Analysis: Experts use disassemblers like IDA Pro or Ghidra to find the specific C++ function responsible for loading the metadata. They then reverse-engineer the math to write a standalone decryptor. Specialised Tools:
Il2CppDumper: The industry-standard tool for extracting information from global-metadata.dat.
Custom Scripts: Community-made repositories, such as those on GitHub, often contain specific C++ or Python scripts tailored for popular games like Mobile Legends. Legal and Ethical Considerations
Decrypting game files often violates a software's End User License Agreement (EULA) and may lead to bans in online games. It is primarily performed for:
Security Research: Identifying vulnerabilities in a game's code.
Interoperability: Enabling games to run on unsupported platforms or hardware.
Educational Purposes: Learning how professional-grade software is structured.
aimardcr/MLBB-Metadata: A simple code to decrypt ... - GitHub
global-metadata.dat file is a core component of Unity games compiled using
. It acts as a database for all the "symbolic" data of the game, including class names, method names, and field names. Because this file is essential for reverse-engineering the game's logic, many developers encrypt or obfuscate it to prevent tools like Il2CppDumper Il2CppInspector from reading it directly. WordPress.com Popular Articles and Resources on Decryption Reverse Engineering Adventures (Katy's Code) : This is the most comprehensive series on the topic. Finding Loaders for Obfuscated global-metadata.dat
: Explains how to identify if a file is encrypted and how to find the specific code in the game's binary that decrypts it at runtime. Honkai Impact 3rd Case Study (Part 1)
: A deep dive into identifying a custom decryption function within a real-world game binary. League of Legends: Wild Rift Case Study
: Discusses "scrambled" metadata where field orders are rearranged, requiring a different approach than standard decryption. Decryption Techniques & Tools (GitHub & Community) IroniaTheMaster's Decrypt-global-metadata.dat Wiki : A collection of methods, including using
to dump the decrypted file directly from the device's memory while the game is running. Il2CppMetadataExtractor (CameroonD)
: A Frida script specifically designed to automatically locate and dump the decrypted global-metadata.dat from memory on Android. WordPress.com Why the File is Encrypted Finding loaders for obfuscated global-metadata.dat files
Unity's global-metadata.dat file is a critical IL2CPP component containing metadata like type definitions and string literals, often analyzed via tools like Il2CppDumper, Il2CppInspector, and Cpp2IL. When encrypted or obfuscated, analysis involves identifying initialization routines in the game binary that process the file into memory. You can find more information on the official Unity documentation website.
Decrypting GlobalMetadata.dat: Unraveling the Enigma of Encrypted Data
In the realm of digital forensics and cybersecurity, encrypted files and data have become a significant challenge for investigators and analysts. One such enigmatic file that has garnered attention in recent years is GlobalMetadata.dat. This encrypted file has piqued the interest of many, and in this article, we will delve into the world of decryption, exploring the methods and techniques to crack the code of GlobalMetadata.dat.
What is GlobalMetadata.dat?
GlobalMetadata.dat is a file commonly associated with various applications and systems, including games, software, and even malware. Its primary purpose is to store metadata, such as user information, game progress, or configuration settings, in a compact and secure format. The .dat extension indicates that the file contains binary data, which is often encrypted to prevent unauthorized access.
The Encryption Conundrum
The encryption used in GlobalMetadata.dat files is typically designed to protect the data from being read or modified by unauthorized parties. This encryption can be based on various algorithms, such as AES (Advanced Encryption Standard), RSA, or custom schemes. The encryption key, which is required to decrypt the data, is often not stored in the file itself, making it a challenging task to access the contents.
Decrypting GlobalMetadata.dat: Methods and Techniques
Over the years, researchers and analysts have developed several methods to decrypt GlobalMetadata.dat files. Here, we will discuss some of the most common approaches:
- Reverse Engineering: One of the most effective ways to decrypt
GlobalMetadata.datis to reverse-engineer the encryption algorithm used. This involves analyzing the file's structure, identifying the encryption scheme, and then developing a custom decryptor. Reverse engineering requires a deep understanding of programming languages, data structures, and cryptography. - Key Extraction: In some cases, the encryption key is stored in a separate location, such as a registry key or another file. Analysts can attempt to extract the key from these sources and use it to decrypt the
GlobalMetadata.datfile. - Brute-Force Attack: A brute-force attack involves trying all possible combinations of passwords or encryption keys until the correct one is found. This method can be time-consuming and computationally intensive but may be effective if the encryption key is weak or has a limited keyspace.
- Cryptanalysis: Cryptanalysis is the science of analyzing encrypted data to deduce the encryption key or algorithm. This approach requires a deep understanding of cryptography and mathematical techniques, such as frequency analysis or differential cryptanalysis.
Tools and Software for Decrypting GlobalMetadata.dat
Several tools and software have been developed to aid in the decryption of GlobalMetadata.dat files. Some of these tools include:
- OllyDbg: A popular debugger that allows analysts to reverse-engineer and analyze binary files, including encrypted ones.
- IDA Pro: A powerful disassembler and debugger that can be used to analyze and reverse-engineer
GlobalMetadata.datfiles. - Cryptool: A cryptographic analysis tool that provides a range of functions for decrypting and analyzing encrypted data.
Challenges and Limitations
Decrypting GlobalMetadata.dat files can be a challenging and time-consuming process. Some of the limitations and challenges include:
- Lack of Documentation: The encryption algorithm and key used to encrypt
GlobalMetadata.datfiles may not be publicly documented, making it difficult for analysts to develop effective decryption methods. - Custom Encryption Schemes: Some applications and systems use custom encryption schemes that are not widely recognized or supported by decryption tools.
- Data Corruption: Decrypting
GlobalMetadata.datfiles can result in data corruption or loss if the decryption process is not performed correctly.
Conclusion
Decrypting GlobalMetadata.dat files requires a deep understanding of cryptography, programming, and data analysis. While various methods and techniques have been developed to crack the code of these encrypted files, the process can be challenging and time-consuming. As technology continues to evolve, it is likely that new encryption schemes and decryption methods will emerge, making the field of digital forensics and cybersecurity an ongoing cat-and-mouse game.
Future Directions
The study of GlobalMetadata.dat files and their decryption has significant implications for various fields, including:
- Digital Forensics: Developing effective methods for decrypting
GlobalMetadata.datfiles can aid in digital forensic investigations, allowing analysts to access critical data. - Cybersecurity: Understanding the encryption schemes and decryption methods used for
GlobalMetadata.datfiles can inform the development of more secure encryption algorithms and protection mechanisms. - Data Recovery: Decrypting
GlobalMetadata.datfiles can also aid in data recovery efforts, allowing individuals to access and recover critical data.
As researchers and analysts continue to explore the world of encrypted data, it is essential to stay up-to-date with the latest developments and advancements in the field. By doing so, we can better understand the complexities of encrypted files like GlobalMetadata.dat and develop more effective methods for decrypting and analyzing them.
This report covers the methods and tools used to decrypt or extract the global-metadata.dat file, a critical component of Unity games compiled with IL2CPP that stores class, method, and string information. Overview of global-metadata.dat
In Unity IL2CPP builds, the global-metadata.dat file contains the metadata (names of classes, methods, etc.) that would otherwise be lost during the conversion to native C++ code. Developers often encrypt or obfuscate this file to prevent reverse engineering. Common Decryption and Extraction Methods
Because encryption methods vary by game, there is no single universal script for decryption. Instead, researchers use several established techniques:
IL2CPP Tutorial: Finding loaders for obfuscated global-metadata.dat files
The concept of decrypting global metadata has sparked intense interest and debate in recent years, especially as the world becomes increasingly interconnected and data-driven. Metadata, often described as "data about data," provides context and meaning to the vast amounts of information generated daily. It includes details such as the date and time of creation, file type, and even the device used to create or access the data.
6. Conclusion: The Decrypted Verdict
We conclude that globalmetadatadat is not a file; it is a state of being. We live in a panopticon where the walls are transparent, but the floor plans are public record.
Decrypting globalmetadatadat yields one shocking output: Privacy is dead, not because they read your diary, but because they mapped your hallway.
The string globalmetadatadat serves as a mnemonic for future engineers: When you design a protocol, the metadata is the message.
The Concept of Decrypting Global Metadata
Decrypting global metadata refers to the process of making metadata accessible and usable across different systems, platforms, and jurisdictions. This involves several challenges, including:
- Interoperability: Ensuring that metadata standards are compatible across different systems and platforms.
- Security: Protecting metadata from unauthorized access and breaches, while also ensuring that it is accessible for legitimate uses.
- Privacy: Balancing the need for metadata access with the requirement to protect user privacy and prevent misuse of personal information.
Considerations
- Legal and Ethical Permissions: Ensure you have the legal and ethical right to decrypt and access the data. Unauthorized access to encrypted data can be illegal.
- Data Integrity: Be cautious during the decryption process to avoid damaging the data.
- Security Risks: If the data is sensitive, ensure that the decryption process does not inadvertently expose it to security risks.
Current Trends
Today, the focus is on making metadata interoperable, secure, and accessible across different platforms and systems. Technologies like blockchain are being explored for secure metadata management, while standards like Dublin Core and Schema.org are being adopted for enhancing metadata interoperability.
Appendix: A Fictional Hexdump
00000000 47 4c 4f 42 41 4c 4d 45 54 41 44 41 54 41 44 41 |GLOBALMETADATADA|
00000010 54 0a 31 39 32 2e 31 36 38 2e 31 2e 31 20 2d 3e |T.192.168.1.1 ->|
00000020 2038 2e 38 2e 38 2e 38 20 5b 30 33 3a 30 30 5d | 8.8.8.8 [03:00]|
Interpretation: The router spoke to Google at 3 AM. The payload is absent. The narrative is complete.
In the world of Unity game modding and reverse engineering, global-metadata.dat
is the "Rosetta Stone". If you’ve ever tried to crack open a modern Unity game and found only a cryptic soup of C++ code instead of readable C# scripts, this file is the reason why—and the key to fixing it. What is global-metadata.dat? When developers build games using Unity’s
(Intermediate Language to C++) scripting backend, their original C# code is converted into native C++ machine code. While this makes the game run faster and more securely, the native binary loses almost all human-readable info like class names and method signatures. global-metadata.dat file acts as the game's . It stores: Type definitions : Every class, struct, and interface in the game. Method signatures : The names of functions (e.g., Player.CalculateDamage String literals : Plaintext strings used in the code. The "Encryption" Problem
Because this file is a goldmine for hackers, many developers protect it. If you open a standard metadata file in a hex editor, you should see the "magic bytes" AF 1B B1 FA
at the very beginning. If those bytes are missing or scrambled, the file is encrypted or obfuscated Developers often use tools like
or custom XOR schemes to hide this data, forcing reverse engineers to "decrypt" it before they can even begin modding. How to "Decrypt" Global Metadata
Since the game itself must eventually read the file to run, the "decryption" usually involves capturing the data right as the game unlocks it in your computer's memory. Memory Dumping
: The most effective way is to run the game and use a "dumper" to snag the decrypted data directly from RAM. Tools like the Il2CppMetadataExtractor Frida script automate this process on Android. Reverse Engineering the Loader : Hardcore researchers use to find the LoadMetadataFile
function in the game's binary. By analyzing how the game's own code "unpacks" the file, you can recreate the decryption algorithm yourself. Specialized Converters : Some tools, like MetadataConverter2
, are designed for specific high-profile games (like those from HoYoverse) that use unique, proprietary encryption formats. Why go through the trouble? Once you have a decrypted global-metadata.dat , you can use Il2CppDumper
to reconstruct a "dummy" version of the game's original source code. This allows you to: Finding loaders for obfuscated global-metadata.dat files
Decrypting GlobalMetaData.dat - A Detailed Exploration
Introduction
The GlobalMetaData.dat file is a critical component in various software applications and systems, storing essential metadata used for global configurations, user settings, and more. However, the encryption of such files poses significant challenges for developers and users alike. In this detailed post, we'll explore the process of decrypting GlobalMetaData.dat and understanding its structure.
Understanding the File Structure
Before diving into the decryption process, let's first examine the structure of GlobalMetaData.dat. Typically, this file is encoded in a binary format, making it non-readable without proper decoding. A basic understanding of its structure includes:
- Header Section: Contains identifiers and version information about the data stored.
- Metadata Entries: These are key-value pairs or structured data holding various information.
Decryption Steps
Decrypting GlobalMetaData.dat involves several steps:
Deep Story: The Evolution of Metadata Management
The story of metadata management is a deep one, intertwined with the evolution of data storage, processing, and analysis technologies. From the early days of databases and file systems to the current era of big data and cloud computing, metadata has played a pivotal role in making data usable and valuable.
The Era of Big Data
The advent of big data and the proliferation of digital devices led to an explosion in the volume, variety, and velocity of data. This made traditional data management techniques inadequate, necessitating the development of new tools and technologies for metadata management.