梦想成为安全研究员
安全研究员就是那些专找操作系统漏洞的黑客,我觉得逆向编译也很有趣,想加入他们的大家庭。我在今年年初,就发现了一个Windows的秘密,原来当代码段有4个或8个空值时,在不同版本的Window时结果会不一样。
4个空值在x86架构,其实就是一条CPU指令,什么指令呢?
ADD BYTE PTR DS:, AL
因此,在不同版本的Windows,EAX的初始值也不一样,譬如:
1) 0x755A33B8 - Windows 7
2) 0xDFFCC - Windows 10
3) 0x0 - Windows XP(虚拟机)
只有在可以写入的内存区域,可执行文件里的代码段有空值才能继续运行,换言之,Windows XP(虚拟机)的0:0是不能写入的,而在Windows 7的0x755A33B8也一样不能写入,系统会报错。
大家可以看一看以下这个截图,当代码段0x401000开始是空值时,CPU指令是ADD,EAX初始值是0xDFFCC,是可以写入的,因此Windows会运行完空值之后的所有代码,不会报错。
这是我准备踏入安全研究员行列的第一个发现和成果,但是我还不具备他们的专业水准和能力,只能利用空档开发些小程序。
加油,祝你梦想成真! 加油~
页:
[1]