Exemplo n.º 1
0
        public static uint LdrLoadDll(IntPtr pathToFile, uint dwFlags, ref Data.Native.UNICODE_STRING moduleFileName, ref IntPtr moduleHandle)
        {
            object[] parameters = { pathToFile, dwFlags, moduleFileName, moduleHandle };
            var      result     = (uint)Generic.DynamicApiInvoke("ntdll.dll", "LdrLoadDll", typeof(Delegates.LdrLoadDll), ref parameters);

            moduleHandle = (IntPtr)parameters[3];
            return(result);
        }
Exemplo n.º 2
0
        public static IntPtr LoadModuleFromDisk(string dllPath)
        {
            var uModuleName = new Data.Native.UNICODE_STRING();

            Native.RtlInitUnicodeString(ref uModuleName, dllPath);

            var hModule = IntPtr.Zero;

            _ = Native.LdrLoadDll(IntPtr.Zero, 0, ref uModuleName, ref hModule);

            return(hModule);
        }
Exemplo n.º 3
0
 public static void RtlInitUnicodeString(ref Data.Native.UNICODE_STRING destinationString, [MarshalAs(UnmanagedType.LPWStr)] string sourceString)
 {
     object[] parameters = { destinationString, sourceString };
     Generic.DynamicApiInvoke("ntdll.dll", "RtlInitUnicodeString", typeof(Delegates.RtlInitUnicodeString), ref parameters);
     destinationString = (Data.Native.UNICODE_STRING)parameters[0];
 }