x86无意义的小代码还是?

时间:2016-04-14 19:50:12

标签: assembly x86 reverse-engineering

我在学校有一个项目任务,这是臭名昭着的x86炸弹。在代码中的某一点,编译器执行此指令:

  

mov 0x1c(%esp),%eax

接着是

  

和$ 0xf,%eax

然后将%eax放回到使用此指令取出的位置:

  

mov%eax,0x1c(%esp)

你认为这是由编辑器自动完成的事情,还是由教师完成的事情让我迷惑并让我更难弄清楚发生了什么?因为根据我的理解,这部分代码绝对没有任何意义。从堆栈中取4字节字,在最后4位使用和指令,二进制数" 1111"并将其重新放回堆栈上的相同位置。这对我来说似乎毫无意义。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

支持@lurker和@RossRidge的指令;

  

和$ 0xf,%eax

用于屏蔽除%eax内容的最后4位之外的所有内容。