文章转自 http://www.mcany.cn/article/289.htm
博主 没落的残阳
这节来学习下NOT求反指令和XOR异或指令。这两个指令以后用的也很广泛,而且很多人都对这
个不是很了解。
NOT指令就是取反,那么16进制取反我在上上节课在讲解求数值的补码的时候已经说过了。。
16进制数值取反是用15-相应16进制数值相应位。举个例子
00403020H 取反 = FFBFCFDFh
15-0=F
15-0=F
15-4=B
15-0=F
15-3=C
15-0=F
15-2=D
15-0=F
就是用15减去相应的16进制数值的相应位,大家是否想起来在上上节课时候我讲解的取补码的那节课程,取
补码是取反后+1。
那么NOT 指令也就是相应的取反。
假如此时eax = 00403020h
执行NOT eax后
eax = FFBFCFDFh
一般的格式 NOT 寄存器/内存单元
很简单吧。
那么我们来看下XOR 异或语句,在上节免杀课程上,讲解的“巧用算法加密特征码”,就是简单
的利用了异或算法。。
XOR 就是相同为0, 相异为 1。
举例
al = 00001010B
执行
xor al, 11111111B后
al = 11110101B
那么此时我们在将al的结果在同11111111B进行一次异或就可以取得之前的值。
al = 11110101B
xor al,11111111B
执行后
al = 00001010B
因为异或指令的这种特性,所以使有时候我们可以用它来加密一些信息。