Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查加载内存后是否更改了DLL_C#_Visual Studio_Dll_Process_Hook - Fatal编程技术网

C# 检查加载内存后是否更改了DLL

C# 检查加载内存后是否更改了DLL,c#,visual-studio,dll,process,hook,C#,Visual Studio,Dll,Process,Hook,我正在尝试找到一种快速有效的方法,允许dll检查内存中的代码是否已更改 我想在THISLIB.DLL类中插入一个函数,该函数使用如下内容: var assembly = Assembly.GetExecutingAssembly(); Module[] thisModule = assembly.GetLoadedModules(); foreach (Module i in thisModule) { if (i.Name == "THISLIB.dll") {

我正在尝试找到一种快速有效的方法,允许dll检查内存中的代码是否已更改

我想在THISLIB.DLL类中插入一个函数,该函数使用如下内容:

var assembly = Assembly.GetExecutingAssembly();
Module[] thisModule = assembly.GetLoadedModules();
foreach (Module i in thisModule)
{
    if (i.Name == "THISLIB.dll")
    {
        ModuleHandle m= i.ModuleHandle;
        byte[] dllMemory = new byte[??? HOW GET THISLIB.DLL MEMORY SIZE ???];
        dllMemory = ??? HOW GET THISLIB.DLL MEMORY DATA ???
    }
}                

我需要检查HASH(内存THISLIB.DLL)是否等于HASH(文件系统THISLIB.DLL)

使用filesystemwatcher检查dll文件更新。将文件作为ByTestStream读入以访问字节。您不能只检查文件访问/创建时间吗?或者使用一些FileSystemWatcher?这已经内置到CLR中,它可以验证程序集的强名称。只需使用Project+属性和签名。如果您在完全信任的情况下运行,并且仍然希望验证强名称,请使用google strongNameSignatureReferenceEx。我需要一个解决方案,为我提供加载到内存中的DLL字节数组。。。