using System; using System.Runtime.InteropServices; class P{ [DllImport("kernel32.dll",CharSet=CharSet.Unicode,SetLastError=true)] static extern IntPtr LoadLibraryW(string n); [DllImport("kernel32.dll",CharSet=CharSet.Ansi,SetLastError=true)] static extern IntPtr GetProcAddress(IntPtr h,string n); static void Main(){ string[] dlls={"efsrpc.dll","efslsaext.dll","srvcli.dll","netapi32.dll","cryptsvc.dll"}; string[] fns={"EfsRpcOpenFileRaw","EfsRpcEncryptFileSrv","EfsRpcDecryptFileSrv","EfsRpcQueryUsersOnFile","EfsRpcFileKeyInfo","EfsRpcDuplicateEncryptionInfoFile"}; foreach(string d in dlls){ IntPtr h=LoadLibraryW(d); Console.WriteLine("DLL "+d+" h="+h); if(h==IntPtr.Zero) continue; foreach(string f in fns){ if(GetProcAddress(h,f)!=IntPtr.Zero) Console.WriteLine(" FOUND "+f); } } }}