微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么虚拟地址内存 0xXX 0x90 0x04 0x08 和 0xXX 0x80 0x04 0x08 具有相同的行为?

如何解决为什么虚拟地址内存 0xXX 0x90 0x04 0x08 和 0xXX 0x80 0x04 0x08 具有相同的行为?

以下字节完成 hello world(x86 LE,elf 文件代码部分):

[0xba,0x09,0x00,0x00],// edx len
[0xb9,0xa4,0x90,0x04,0x08],// ecx msg
[0xbb,0x01,// mov ebx 1
[0xb8,// mov eax 4
[0xcd,0x80],// int 80h
[0xbb,0x03,// mov ebx 0
[0xb8,// mov eax 1
[0xcd,// int 80h
[0x00,[0x48,0x69,0x20,0x57,0x6f,0x72,0x6c,0x64,0x0a]// data : "Hi World\n"

效果很好。我知道0xa4 0x00 0x00 0x00是数据的偏移量,0x00 0x90 0x04 0x08是虚拟内存地址的地址,结合给0xa4 0x90 0x04 0x08。

但是为什么如果我将虚拟内存地址更改为 0x00 0x80 0x04 0x08(即 0xa4 0x80 0x04 0x08),它仍然有效?

[0xba,0x80,// ecx msg   <= change address here and still works,why ??
[0xbb,0x0a]// data : "Hi World\n"

高清文件

00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 03 00 01 00 00 00  80 80 04 08 34 00 00 00  |............4...|
00000020  f8 00 00 00 00 00 00 00  34 00 20 00 02 00 28 00  |........4. ...(.|
00000030  05 00 04 00 01 00 00 00  00 00 00 00 00 80 04 08  |................|
00000040  00 80 04 08 a2 00 00 00  a2 00 00 00 05 00 00 00  |................|
00000050  00 10 00 00 01 00 00 00  a4 00 00 00 a4 90 04 08  |................|
00000060  a4 90 04 08 09 00 00 00  09 00 00 00 06 00 00 00  |................|
00000070  00 10 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  ba 09 00 00 00 b9 a4 90  04 08 bb 01 00 00 00 b8  |................|
00000090  04 00 00 00 cd 80 bb 03  00 00 00 b8 01 00 00 00  |................|
000000a0  cd 80 00 00 48 69 20 57  6f 72 6c 64 0a           |....Hi World.|
000000ad
00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 03 00 01 00 00 00  80 80 04 08 34 00 00 00  |............4...|
00000020  f8 00 00 00 00 00 00 00  34 00 20 00 02 00 28 00  |........4. ...(.|
00000030  05 00 04 00 01 00 00 00  00 00 00 00 00 80 04 08  |................|
00000040  00 80 04 08 a2 00 00 00  a2 00 00 00 05 00 00 00  |................|
00000050  00 10 00 00 01 00 00 00  a4 00 00 00 a4 90 04 08  |................|
00000060  a4 90 04 08 09 00 00 00  09 00 00 00 06 00 00 00  |................|
00000070  00 10 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  ba 09 00 00 00 b9 a4 80  04 08 bb 01 00 00 00 b8  |................|
00000090  04 00 00 00 cd 80 bb 03  00 00 00 b8 01 00 00 00  |................|
000000a0  cd 80 00 00 48 69 20 57  6f 72 6c 64 0a           |....Hi World.|
000000ad

两者都有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。