你能解释一下 mmap 函数的作用吗?
Could you explain what mmap function do?
这段汇编代码是做什么的?我已经分析了代码并在这一刻停止了。 EDX 是 arg prot。 ECX 是 arg 长度。 ESI 是 arg 标志。我对吗?但无论如何我不明白它是做什么的。
seg000:00000057 push ebp
seg000:00000058 xor ebp, ebp
seg000:0000005A xor edi, edi
seg000:0000005C
seg000:0000005C
seg000:0000005C dec edi
seg000:0000005D mov esi, 22h
seg000:00000062 mov edx, 7
seg000:00000067 mov ecx, 1000h
seg000:0000006C xor ebx, ebx
seg000:0000006E mov eax, 0C0h
seg000:00000073 int 80h ;mmap
seg000:00000075 pop ebp
seg000:00000076 mov edi, eax
它调用 mmap(NULL, 0x1000, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
创建单个虚拟内存页面和 returns 该页面的虚拟地址。如果您想了解更多有关 mmap 的功能,请参阅 https://linux.die.net/man/2/mmap。
这段汇编代码是做什么的?我已经分析了代码并在这一刻停止了。 EDX 是 arg prot。 ECX 是 arg 长度。 ESI 是 arg 标志。我对吗?但无论如何我不明白它是做什么的。
seg000:00000057 push ebp
seg000:00000058 xor ebp, ebp
seg000:0000005A xor edi, edi
seg000:0000005C
seg000:0000005C
seg000:0000005C dec edi
seg000:0000005D mov esi, 22h
seg000:00000062 mov edx, 7
seg000:00000067 mov ecx, 1000h
seg000:0000006C xor ebx, ebx
seg000:0000006E mov eax, 0C0h
seg000:00000073 int 80h ;mmap
seg000:00000075 pop ebp
seg000:00000076 mov edi, eax
它调用 mmap(NULL, 0x1000, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
创建单个虚拟内存页面和 returns 该页面的虚拟地址。如果您想了解更多有关 mmap 的功能,请参阅 https://linux.die.net/man/2/mmap。