- 帖子
- 3852
- 积分
- 13044
- 威望
- 16780
- 金钱
- 36761
- 在线时间
- 1139 小时
|
今天来学习下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
因为异或指令的这种特性,所以使有时候我们可以用它来加密一些信息。
今天因为事情比较多,也没什么准备,那么接下来留两个小作业。
小作业:
1. 假如此时eax = 00201011h
执行 NOT eax指令后,求eax = ?
2.假如此时bl = 00101011B
执行xor bl, 00000000b
求bl = ? |
|