// Decompiled with JetBrains decompiler // Type: MsGac.Fusion.Native.FusionApi // Assembly: CCCInstall, Version=2.0.3163.17516, Culture=neutral, PublicKeyToken=null // MVID: FB1048F0-5C3B-4430-944F-CD20B70875CD // Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Virus.Win32.Virut.ce-a5390b2b18d2a77666607470ebf93830056f4a617362a2ac03e16666a0bc6bad.exe using System; using System.Runtime.InteropServices; using System.Text; namespace MsGac.Fusion.Native { internal class FusionApi { private const uint IASSEMBLYCACHE_INSTALL_FLAG_REFRESH = 1; private const uint IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH = 2; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED = 1; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE = 2; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED = 3; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING = 4; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES = 5; private const uint IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND = 6; public static readonly Guid FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID = new Guid("8cedc215-ac4b-488b-93c0-a50a49cb2fb8"); public static readonly Guid FUSION_REFCOUNT_FILEPATH_GUID = new Guid("b02f9d65-fb77-4f7a-afa5-b391309f11c9"); public static readonly Guid FUSION_REFCOUNT_OPAQUE_STRING_GUID = new Guid("2ec93463-b0c3-45e1-8364-327e96aea856"); public static readonly Guid FUSION_REFCOUNT_MSI_GUID = new Guid("25df0fc1-7f97-4070-add7-4b13bbfd7cb8"); [DllImport("fusion.dll", CharSet = CharSet.Unicode, PreserveSig = false)] public static extern void GetCachePath( ASM_CACHE_FLAGS dwCacheFlags, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder pwzCachePath, ref uint pcchPath); [DllImport("fusion.dll", PreserveSig = false)] public static extern void CreateAssemblyCache(out IAssemblyCache ppAsmCache, uint dwReserved); [DllImport("fusion.dll", PreserveSig = false)] public static extern void CreateAssemblyEnum( out IAssemblyEnum ppEnum, IntPtr pUnkReserved, IAssemblyName pName, ASM_CACHE_FLAGS dwFlags, IntPtr pvReserved); [DllImport("fusion.dll", CharSet = CharSet.Unicode, PreserveSig = false)] public static extern void CreateAssemblyNameObject( out IAssemblyName ppName, string szAssemblyName, uint dwFlags, IntPtr pvReserved); [DllImport("fusion.dll", PreserveSig = false)] public static extern void CreateInstallReferenceEnum( out IInstallReferenceEnum ppRefEnum, IAssemblyName pName, uint dwFlags, IntPtr pvReserved); [DllImport("fusion.dll", CharSet = CharSet.Unicode, PreserveSig = false)] public static extern void CreateHistoryReader( string wzFilePath, out IHistoryReader ppHistReader); [DllImport("fusion.dll", CharSet = CharSet.Unicode, PreserveSig = false)] public static extern void GetHistoryFileDirectory([MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDir, ref uint pdwSize); [DllImport("fusion.dll", CharSet = CharSet.Unicode, PreserveSig = false)] public static extern void LookupHistoryAssembly( string pwzFilePath, ref System.Runtime.InteropServices.ComTypes.FILETIME pftActivationDate, string pwzAsmName, string pwzPublicKeyToken, string wzCulture, string pwzVerRef, out IntPtr pHistAsm); [DllImport("fusion.dll", PreserveSig = false)] public static extern void NukeDownloadedCache(); [DllImport("fusion.dll", PreserveSig = false)] public static extern void CreateApplicationContext(IAssemblyName pName, out IntPtr ppCtx); [DllImport("shfusion.dll", CharSet = CharSet.Unicode)] public static extern uint PolicyManager( IntPtr hWndParent, string pwzFullyQualifiedAppPath, string pwzAppName, int dwFlags); } }