Не могли бы вы объяснить, что делает функция mmap? - PullRequest
0 голосов
/ 27 февраля 2019

Что делает этот ассемблерный код?Я проанализировал код и остановился в этот момент.EDX является аргументомECX - длина аргумента.ESI является аргументом.Я прав?Но в любом случае я не могу понять, что он делает.

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

1 Ответ

0 голосов
/ 27 февраля 2019

Он вызывает mmap(NULL, 0x1000, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0), который создает одну страницу виртуальной памяти и возвращает виртуальный адрес страницы.Если вы хотите узнать больше о том, что делает mmap, см. https://linux.die.net/man/2/mmap.

...