梦想成为安全研究员

电脑技术 电脑技术 47 人阅读 | 0 人回复 | 2025-05-15

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
安全研究员就是那些专找操作系统漏洞的黑客,我觉得逆向编译也很有趣,想加入他们的大家庭。

我在今年年初,就发现了一个Windows的秘密,原来当代码段有4个或8个空值时,在不同版本的Window时结果会不一样。

4个空值在x86架构,其实就是一条CPU指令,什么指令呢?
  1. ADD     BYTE PTR DS:[EAX], 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会运行完空值之后的所有代码,不会报错。
eax.png


这是我准备踏入安全研究员行列的第一个发现和成果,但是我还不具备他们的专业水准和能力,只能利用空档开发些小程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐