Ice*_*ire 5 c++ executable checksum
我想知道是否可以通过检查其校验和以某种方式检查我的应用程序是否修改。
因此,例如:
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;
}
Run Code Online (Sandbox Code Playgroud)
显然,这里的问题是编译我的应用程序、获取可执行文件的校验和并将其插入到我checksum更改的应用程序校验和中。
我可以将校验和外部存储在某个文件中,但我希望其他人无法操作 exe 的附带好处。他们可以再次计算校验和并将其放入校验和文件中,因此不会从中获得任何好处。
有没有办法创建这样的自检?
最简单的解决方法是让校验和例程知道校验和本身的存储位置,并在计算校验和时跳过字节。
如果计算位置太麻烦,您可以在校验和前面加上一个魔术字符串并识别它。只需确保校验和过程不会按字面意思存储魔术字符串,因为您不想转义该副本。
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |