Начинающий
- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 31
- Реакции
- 0
Наткнулся тут на интересную тему у буржуев. Чел пытается прогрузить все Блюпринт-классы в UE5, чтобы не бегать по уровням при дампе SDK для Ready or Not. Вроде подход логичный, через AssetRegistry, но, как я понял, объекты в самом массиве не появляются.
Короче, лог пишет, что он там под 170к ассетов подцепил, а профита ноль. Может кто копал в сторону UE5 дамперов, в чем там затык? Поделитесь мыслями, если шарите в реверсе анрила, а то автор поста там пока в тупике.
Код:
static void LoadAllClasses()
{
static UEObject AssetRegistryHelpers = ObjectArray::FindObject("AssetRegistryHelpers AssetRegistry.Default__AssetRegistryHelpers");
static UEFunction GetAssetRegistry = ObjectArray::FindObject<UEFunction>("Function AssetRegistry.AssetRegistryHelpers.GetAssetRegistry", EClassCastFlags::Function);
static UEFunction GetAllAssets = ObjectArray::FindObject<UEFunction>("Function AssetRegistry.AssetRegistry.GetAllAssets", EClassCastFlags::Function);
if (!AssetRegistryHelpers || !GetAssetRegistry || !GetAllAssets)
{
std::cerr << "[-] LoadAllClasses: Required AssetRegistry objects not found!\n";
return;
}
void* AssetRegistryPtr = nullptr;
AssetRegistryHelpers.ProcessEvent(GetAssetRegistry, &AssetRegistryPtr);
if (!AssetRegistryPtr)
{
std::cerr << "[-] LoadAllClasses: GetAssetRegistry returned null!\n";
return;
}
UEObject AssetRegistry(AssetRegistryPtr);
struct
{
TArray<uint8> OutAssetData;
bool bIncludeOnlyOnDiskAssets;
bool ReturnValue;
} Params;
Params.bIncludeOnlyOnDiskAssets = false;
AssetRegistry.ProcessEvent(GetAllAssets, &Params);
std::cerr << std::format("[+] Loaded {} assets!\n", Params.OutAssetData.Num());
}
Короче, лог пишет, что он там под 170к ассетов подцепил, а профита ноль. Может кто копал в сторону UE5 дамперов, в чем там затык? Поделитесь мыслями, если шарите в реверсе анрила, а то автор поста там пока в тупике.
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.