我一直反对用分支判断校验和的对错。
因为解密者可以反汇编后,把分支改为无条件跳转。
这样就跳过了验证过程。
正确的方法是把校验和去异或其他的重要数据。
最后校验和再经过处理后为0。
那么用0异或任何数据都不会改变。
假如校验和错误,那么再经过处理后就不为0。
那么用这个不为0异或数据就会发生变化。
例如文字处理,那么就会出现乱码,而不会提前校验和出错。
例如采样电压,那么就会出现跳变,无法使用。
故最好不要用分支来判断校验和的真伪。
我一直反对用分支判断校验和的对错。
因为解密者可以反汇编后,把分支改为无条件跳转。
这样就跳过了验证过程。
正确的方法是把校验和去异或其他的重要数据。
最后校验和再经过处理后为0。
那么用0异或任何数据都不会改变。
假如校验和错误,那么再经过处理后就不为0。
那么用这个不为0异或数据就会发生变化。
例如文字处理,那么就会出现乱码,而不会提前校验和出错。
例如采样电压,那么就会出现跳变,无法使用。
故最好不要用分支来判断校验和的真伪。
不错不错日后用是上!
虽然我觉得在软核上没必要这么做,但是用在单片机上还是不错的,谢谢啦!