Section 8 of the whitemagic-foundation change. - 8.1: reference Iced 1.21.0 behind IcedAssembler:IAssembler. The default StubAssembler path never touches Iced; only constructing IcedAssembler pulls it into a behavioral path. - 8.2: IcedAssembler.Assemble bridges Intel-syntax text onto Iced's fluent Assembler by reflection (Iced ships no text parser). Registers, immediates and labels are supported with origin-relative encoding; memory operands throw NotSupportedException. - 8.3: IcedAssembler.GetPrologueLength decodes arbitrary instructions via Iced's Decoder. DetourManager.PrologueLengthResolver (new delegate) defaults to the built-in PrologueDecoder and is swappable to the Iced resolver, threaded into each Detour. This lifts the "partial boundary safety" caveat on the hooking slice when Iced is opted in. Also gitignore test-run TestResults artifacts. Tests: 221 passing, 4 skipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
795 B
XML
26 lines
795 B
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net8.0-windows</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<Platforms>x86;x64;AnyCPU</Platforms>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<InternalsVisibleTo Include="WhiteMagicTest" />
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
Optional Iced backend (task 8.x). Isolated behind IAssembler: the default
|
|
StubAssembler path never touches Iced, keeping the common configuration free of any
|
|
behavioral dependency on it. Only callers that construct IcedAssembler pull it in.
|
|
-->
|
|
<ItemGroup>
|
|
<PackageReference Include="Iced" Version="1.21.0" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|