rkr35/drg

Find `GEngine`

Closed this issue · 3 comments

rkr35 commented
Find `GEngine`
rkr35 commented

UnrealEngine\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp

{
    FString GameEngineClassName;
    GConfig->GetString(TEXT("/Script/Engine.Engine"), TEXT("GameEngine"), GameEngineClassName, GEngineIni);

    UClass* EngineClass = StaticLoadClass( UEngine::StaticClass(), nullptr, *GameEngineClassName);

    if (EngineClass == nullptr)
    {
        UE_LOG(LogInit, Fatal, TEXT("Failed to load Engine class '%s'."), *GameEngineClassName);
    }

    // must do this here so that the engine object that we create on the next line receives the correct property values
    GEngine = NewObject<UEngine>(GetTransientPackage(), EngineClass);
    check(GEngine);

    GEngine->ParseCommandline();

    UE_LOG(LogInit, Log, TEXT("Initializing Game Engine..."));
    GEngine->Init(this);
    UE_LOG(LogInit, Log, TEXT("Initializing Game Engine Completed"));
}
rkr35 commented
00007FF6391A95E0 | 48:85C0                               | test rax,rax                                                           | if (EngineClass == nullptr)
00007FF6391A95E3 | 75 28                                 | jne fsd-win64-shipping.7FF6391A960D                                    |
00007FF6391A95E5 | 3975 B8                               | cmp dword ptr ss:[rbp-48],esi                                          |
00007FF6391A95E8 | 4C:8D05 E13CD502                      | lea r8,qword ptr ds:[7FF63BEFD2D0]                                     | 00007FF63BEFD2D0:L"Failed to load Engine class '%s'."
00007FF6391A95EF | 4D:8BCD                               | mov r9,r13                                                             |
00007FF6391A95F2 | 48:8D0D B721D502                      | lea rcx,qword ptr ds:[7FF63BEFB7B0]                                    | 00007FF63BEFB7B0:"Unknown"
00007FF6391A95F9 | 4C:0F454D B0                          | cmovne r9,qword ptr ss:[rbp-50]                                        |
00007FF6391A95FE | BA 020D0000                           | mov edx,D02                                                            |
00007FF6391A9603 | E8 6889A400                           | call fsd-win64-shipping.7FF639BF1F70                                   |
00007FF6391A9608 | E8 03ACA400                           | call fsd-win64-shipping.7FF639BF4210                                   |
00007FF6391A960D | 48:8975 30                            | mov qword ptr ss:[rbp+30],rsi                                          |
00007FF6391A9611 | E8 CA00C300                           | call fsd-win64-shipping.7FF639DD96E0                                   | GetTransientPackage()
00007FF6391A9616 | 48:897424 30                          | mov qword ptr ss:[rsp+30],rsi                                          |
00007FF6391A961B | 48:8BC8                               | mov rcx,rax                                                            |
00007FF6391A961E | 40:887424 28                          | mov byte ptr ss:[rsp+28],sil                                           |
00007FF6391A9623 | 45:33C9                               | xor r9d,r9d                                                            |
00007FF6391A9626 | 4C:8BC6                               | mov r8,rsi                                                             |
00007FF6391A9629 | 48:897424 20                          | mov qword ptr ss:[rsp+20],rsi                                          |
00007FF6391A962E | 48:8BD3                               | mov rdx,rbx                                                            | EngineClass
00007FF6391A9631 | E8 0A64FFFF                           | call fsd-win64-shipping.7FF63919FA40                                   | NewObject<UEngine>(GetTransientPackage(), EngineClass)
00007FF6391A9636 | 48:8BC8                               | mov rcx,rax                                                            |
00007FF6391A9639 | 48:8905 48C53104                      | mov qword ptr ds:[7FF63D4C5B88],rax                                    | GEngine = NewObject<UEngine>(GetTransientPackage(), EngineClass);
00007FF6391A9640 | E8 CB1B2F02                           | call fsd-win64-shipping.7FF63B49B210                                   |
00007FF6391A9645 | 48:8B0D 3CC53104                      | mov rcx,qword ptr ds:[7FF63D4C5B88]                                    | 00007FF63D4C5B88:&"˜Õh<ö\x7F"
00007FF6391A964C | 49:8BD7                               | mov rdx,r15                                                            |
00007FF6391A964F | 48:8B01                               | mov rax,qword ptr ds:[rcx]                                             |
00007FF6391A9652 | FF90 80020000                         | call qword ptr ds:[rax+280]                                            |
00007FF6391A9658 | 48:8B4D B0                            | mov rcx,qword ptr ss:[rbp-50]                                          |
rkr35 commented

48 8B 0D ?? ?? ?? ?? 49 8B D7 48 8B 01 FF 90 80 02 00 00