CorrM / Unreal-Finder-Tool

Useful tool to help you fetch and dump Unreal Engine 4 Games information.
GNU General Public License v3.0
431 stars 169 forks source link

Crash on SaveStruct #49

Closed fake-cheater closed 5 years ago

fake-cheater commented 5 years ago
void Package::SaveStructs(const fs::path & path) const
{
    extern IGenerator* generator;
    std::string name = GenerateFileName(FileContentType::Structs, *this);

    std::ofstream os(path / name);//on here

    PrintFileHeader(os, true);

    if (!constants.empty())
    {
        PrintSectionHeader(os, "Constants");
        for (auto&& c : constants) { PrintConstant(os, c); }

        os << "\n";
    }

    if (!Enums.empty())
    {
        PrintSectionHeader(os, "Enums");
        for (auto&& e : Enums) { PrintEnum(os, e); os << "\n"; }

        os << "\n";
    }

    if (!ScriptStructs.empty())
    {
        PrintSectionHeader(os, "Script Structs");
        for (auto&& s : ScriptStructs) { PrintStruct(os, s); os << "\n"; }
    }

    PrintFileFooter(os);
    os.close();
}
Call Stack:

KernelBase.dll!00007ff9781a9129()   unknow
    vcruntime140.dll!00007ff963cb486d() unknow
    UnrealFinderTool.exe!std::filesystem::_Check_convert_result(const __std_fs_convert_result _Result)  54  C++
    UnrealFinderTool.exe!std::filesystem::_Convert_narrow_to_wide(const __std_code_page _Code_page, const std::basic_string_view<char, std::char_traits<char> > _Input)  71 C++
    [inline] UnrealFinderTool.exe!std::filesystem::_Convert_stringoid_to_wide(const std::basic_string_view<char, std::char_traits<char> >)  264 C++
    [inline] UnrealFinderTool.exe!std::filesystem::_Convert_Source_to_wide(const std::basic_string<char, std::char_traits<char>, std::allocator<char> > &)  362 C++
    [inline] UnrealFinderTool.exe!std::filesystem::path::{ctor}(const std::basic_string<char, std::char_traits<char>, std::allocator<char> > &)  783    C++

UnrealFinderTool.exe!Package::SaveClasses(const std::filesystem::path & path) 807 C++ UnrealFinderTool.exe!Package::Save(const std::filesystem::path & path) 113 C++ UnrealFinderTool.exe!SdkGenerator::ProcessPackages::l2::(UEObject * obj, ParallelOptions &) 261 C++ [inline] UnrealFinderTool.exe!std::_Func_class<void, unsigned int64 &, ParallelOptions &>::operator()(unsigned int64 &) 124 C++ UnrealFinderTool.exe!ParallelWorker<std::vector<unsigned int64, std::allocator >, unsigned __int64>::Worker() 108 C++ [external]

CorrM commented 5 years ago

for now u can wait next release, i changed who information wrote on the disk.

fake-cheater commented 5 years ago

for now u can wait next release, i changed who information wrote on the disk.

thanks~~~

fake-cheater commented 5 years ago

w I dump NineTrials, there were a lot of things that might be unicodestring object names. some object name: 髼He緥n_classes.h 髼He緥n_functions.cpp 纎IQ_parameters.h ... some class struct FPointerToUberGraphFrame UberGraphFrame; // 0x05E8(0x0010) (ZeroConstructor, Transient, DuplicateTransient) float 鹹≧惁; // 0x05F8(0x0004) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) unsigned char UnknownData00[0x4]; // 0x05FC(0x0004) MISSED OFFSET class UAnimMontage €b齹檮YGY; // 0x0600(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) struct FName ; // 0x0608(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) struct FName 裇\≧\O; // 0x0610(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) struct FName 6e≧\O; // 0x0618(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) float 芉Y鰁魰; // 0x0620(0x0004) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) unsigned char UnknownData01[0x4]; // 0x0624(0x0004) MISSED OFFSET class UUserWidget CrossHair; // 0x0628(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, InstancedReference, IsPlainOldData) class UClass 芉胈{|媁; // 0x0630(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) struct FName 裇\≧\O g髞 g瓄; // 0x0638(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) class UClass* ArrowItemClass; // 0x0640(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) bool PreCanFire; // 0x0648(0x0001) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) unsigned char UnknownData02[0x7]; // 0x0649(0x0007) MISSED OFFSET struct FName 裇\≧\O g髞鄀瓄; // 0x0650(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) struct FName 裇\≧\O鄀瓄; // 0x0658(0x0008) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData) struct FName 02; // 0x0660(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) struct FName 03; // 0x0668(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) struct FName 6e≧\O g瓄; // 0x0670(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData) struct FName 6e≧\O鄀瓄; // 0x0678(0x0008) (Edit, BlueprintVisible, ZeroConstructor, DisableEditOnInstance, IsPlainOldData)

CorrM commented 5 years ago

i wish this game is free. if free give me link. i love to try it by my self

CorrM commented 5 years ago

Closed until get more information.