5.2.5 所长所短

“Xor大法是最早使用同时也是现在最常见的编码方法。”老师总结道,“它最大的好处是编码和解码都比较简单,而且也可以避开一定的字符,比如ASCII为0的字符,用Xor方法经过编码后就会变成其他的值,从而避免被截断。”

“该方法也有一定的适应性,比如刚才宇强同学说的,ShellCode里面如果有0x97,异或Key=0x97,正好变为非法的0;那我们还可尝试改变Key的值,直至完全合法为止。”

“嗯,是啊!”大家领会到了。

“当然,这种方法的缺点也很明显,当限制字符较多或限制字符是个较大范围时,那很有可能找不到合适的Key来符合限制要求。在这种情况下,我们就需用其他算法来实现编码和解码了。”

古风很郁闷的问道:“优缺点都明白了,但刚才decode代码本身还有0x00呢,怎么解决呢?”

“关键是要知其然,更要知其所以然。真正清楚后,解决起来就简单了。”