内存代码校验,不能将校验值填回源代码再编译

如果想校验内存中的代码,来检测程序是否被下int3断点或被改代码,就不能将算出的校验值填回源代码再编译。

原因很简单,如果代码中有字符串常量的地址,或者有函数地址在函数表的地址,则它们在重新编译后很可能会发生改变。

这样,重新编译的程序得出的校验值(此次计算的校验值),总是和你填回源代码的校验值(之前计算的校验值)不同,达不到校验的目的。

所以,应该将校验值填回原来的可执行文件,而不是填回源代码再编译。

posted on 2017-08-03 22:45  .rdt  阅读(108)  评论(0)    收藏  举报

导航