gpt4 book ai didi

c++ - 如何检查应用程序本身的校验和?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:18 24 4
gpt4 key购买 nike

我想知道是否可以通过检查其校验和以某种方式检查我的应用程序是否被修改。

所以,例如:

int main()
{
const std::string checksum = "98123abc1239";
std::string myChecksum = calculateChecksumOfThisApp();
if(checksum != myChecksum)
std::cerr << "This application is invalid. Please check if the download has been successful." << std::endl;
}

显然,这里的问题是编译我的应用程序、获取可执行文件的校验和并将其插入我的 checksum 更改了应用程序的校验和。

我可以将校验和外部存储在某个文件中,但我希望其他人无法操纵 exe 的附带好处。他们可以再次计算校验和并将其放入校验和文件中,这样一无所获。

有什么方法可以创建这样的自检吗?

最佳答案

最简单的解决方法是让校验和例程知道校验和本身的存储位置,并在计算校验和时跳过字节。

如果计算位置太麻烦,您可以在校验和前加上一个魔术字符串并识别它。只需确保校验和程序不会按字面意义存储魔术字符串,因为您不想转义该拷贝。

关于c++ - 如何检查应用程序本身的校验和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42747127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com