c# -从self计算md5来检查文件是否被修改
本文关键字:文件 检查 是否 修改 md5 self 计算 | 更新日期: 2023-09-27 18:09:45
我想检查一下我的程序是否被修改(破解)。
所以我想要程序计算md5从self exe和比较。
if(GetMD5FromSelf() != "hash")
Application.Exit(); //modified so exit
但是当我将哈希值设置为string时,文件的md5将被更改。
有什么办法可以做到吗?
你可以这样做,
选项1
你可以在线存储哈希值,这可能更安全,因为如果有人要改变你的程序,他们也可以改变哈希值。
选项2
你可以在你的应用程序的末尾添加4个字节和一个字符串,并保存校验和,注意不要在你的校验和中包含这些,只验证你自己的文件大小,而不是4个字节和字符串。
<<p> 代码片段/em> List<byte> total = new List<byte>(File.ReadAllBytes(System.Reflection.Assembly.GetEntryAssembly().Location));
byte[] totalByteArray = total.ToArray();
int OwnSize = 115200;//Size of you exe file without checksum
int Md5Length = BitConverter.ToInt32(totalByteArray, OwnSize+4);
string NormalFileNameString = Encoding.ASCII.GetString(totalByteArray, OwnSize, Md5Length);