using System.Diagnostics; using WhiteMagic; using WhiteMagic.ProcessEnvironment; using Xunit; namespace WhiteMagicTest.ProcessEnvironment; public sealed class ManagedPebTests { [Fact] public void Read_current_process_peb_fields_returns_plausible_values() { using var magic = Magic.OpenInProcess(); var peb = new ManagedPeb(magic.Memory); Assert.NotEqual(IntPtr.Zero, peb.ReadPebAddress()); Assert.NotEqual(IntPtr.Zero, peb.ReadImageBaseAddress()); byte beingDebugged = peb.ReadBeingDebugged(); Assert.True(beingDebugged == 0 || beingDebugged == 1); Assert.NotEqual(IntPtr.Zero, peb.ReadLdrAddress()); // The in-process test process is native to the host architecture, so // it is not running under WOW64. Assert.False(peb.ReadIsWow64Process()); } }