From 2d11ddee665e8425708bbda876060b2958de5d07 Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Wed, 31 Jul 2024 08:48:01 +0200 Subject: [newosldr] Running kernel as separate image instead. Signed-off-by: Amlal EL Mahrouss --- Boot/Sources/ProgramLoader.cxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'Boot/Sources/ProgramLoader.cxx') diff --git a/Boot/Sources/ProgramLoader.cxx b/Boot/Sources/ProgramLoader.cxx index 4ea0d4c6..fabd1c63 100644 --- a/Boot/Sources/ProgramLoader.cxx +++ b/Boot/Sources/ProgramLoader.cxx @@ -39,13 +39,13 @@ namespace Boot if (firstBytes[0] == kMagMz0 && firstBytes[1] == kMagMz1) { - writer.Write("newosldr: MZ executable detected.\r"); + writer.Write("newosldr: Windows executable detected.\r"); ExecHeaderPtr hdrPtr = (ldr_find_exec_header(firstBytes)); ExecOptionalHeaderPtr optHdr = (ldr_find_opt_exec_header(firstBytes)); // Parse PE32+ - fStartAddress = (VoidPtr)((UIntPtr)optHdr->mImageBase + optHdr->mBaseOfCode + optHdr->mAddressOfEntryPoint); + fStartAddress = (VoidPtr)(optHdr->mAddressOfEntryPoint); fStackPtr = new Char[optHdr->mSizeOfStackReserve]; writer.Write("newosldr: Major Linker: ").Write(optHdr->mMajorLinkerVersion).Write("\r"); @@ -112,4 +112,9 @@ namespace Boot { CopyMem(fBlobName, name, StrLen(name)); } + + bool ProgramLoader::IsValid() + { + return fStartAddress != nullptr; + } } // namespace Boot -- cgit v1.2.3