在通过JNI加载DLL文件之前,如何防止修改Java中的DLL文件?

在通过JNI加载DLL文件之前,如何防止修改Java中的DLL文件?,java,java-native-interface,locking,Java,Java Native Interface,Locking,在验证dll文件的签名证书之前,我需要防止对其进行任何形式的修改(因此不存在争用条件,在这种情况下,有人可以在验证和实际dll加载之间的任何点交换dll)。Java中是否有任何方法可以防止写入已确定的文件?首先加载该文件,然后检查签名?如果不匹配则中止?仍然竞争条件:dll被篡改->加载dll->有人放回正确的dll->已验证OK否。加载DLL后,它会被操作系统锁定,无法替换,即使可以,您正在调用的DLL也是您加载的DLL。好的,谢谢澄清,但加载后可以替换该文件(以某种令人讨厌的方式),我可能正

在验证dll文件的签名证书之前,我需要防止对其进行任何形式的修改(因此不存在争用条件,在这种情况下,有人可以在验证和实际dll加载之间的任何点交换dll)。Java中是否有任何方法可以防止写入已确定的文件?

首先加载该文件,然后检查签名?如果不匹配则中止?仍然竞争条件:dll被篡改->加载dll->有人放回正确的dll->已验证OK否。加载DLL后,它会被操作系统锁定,无法替换,即使可以,您正在调用的DLL也是您加载的DLL。好的,谢谢澄清,但加载后可以替换该文件(以某种令人讨厌的方式),我可能正在验证不同文件的证书,对吗?错,出于我已经提到的所有原因。