1

Тема: Створення анонімного файлу в nasm

Доброго часу доби, браття! У мене з'явилося завдання створити анонімний файл. Прогаю на лінуксі в nasm. Файл треба створити за допомогою системного виклику. Я вже куча всього прочитав, не розумію як його робити. Чи можна його створити, як наприклад звичайний файл (mov eax,8...) чи там щось хитромудре справді, що чайникам дуже важко зрозуміти?( Допоможіть, підскажіть будь-ласка.

2

Re: Створення анонімного файлу в nasm

Схоже вам потрібно те, що робить mmap із виставленим прапорцем MAP_ANONYMOUS, якщо я все вірно зрозумів. Впринципі, якщо так, то можете прямо mmap і викликати, лише глядіть за прапорцем, його тре буде виставити вірно.

Подякували: leofun011

3

Re: Створення анонімного файлу в nasm

wander написав:

Схоже вам потрібно те, що робить mmap із виставленим прапорцем MAP_ANONYMOUS, якщо я все вірно зрозумів. Впринципі, якщо так, то можете прямо mmap і викликати, лише глядіть за прапорцем, його тре буде виставити вірно.

Так, а як його викликати в nasm? Бо в інеті я знаходжу все це в c оно, я просто не дуже досвідчений в ассемблері, а в інтернеті по цьому нічого не знайшов про ассемблер і mmap(

4

Re: Створення анонімного файлу в nasm

Щось ви дуже погано шукали. Вбиваємо в гуглі linux syscall reference, клацаємо на перше покликання syscalls64. Знаходимо поле Search, куди вводимо слово mmap, отримуємо результат:

| Name     | rax  | rdi                | rsi               | rdx      | r10       | r8     | r9       | 
|----------|------|--------------------|-------------------|----------|-----------|--------|----------|
| sys_mmap | 0x09 | unsigned long addr | unsigned long len | int prot | int flags | int fd | long off |

Що, власне, відповідає функції:

void* mmap(void* addr, size_t length, int prot, int flags, int fd, off_t offset);

Все, що вам залишилось зробити - це вписати необхідні значення у відповідні регістри з таблички.

Подякували: Tarpan87, Looser, leofun013

5

Re: Створення анонімного файлу в nasm

Зараз вам пан Looser скаже, що то не для x64, а для x86, де взяти значення константи MAP_ANONYMOUS та іншу лабуду, з яка з його початкового питання випливає.

6

Re: Створення анонімного файлу в nasm

Tarpan87 написав:

Зараз вам пан Looser скаже, що то не для x64, а для x86, де взяти значення константи MAP_ANONYMOUS та іншу лабуду, з яка з його початкового питання випливає.

Прихований текст

Пан Ілон Маск a.k.a "Клоун" вже показував, як макаки бавляться в ігри, скоро вони вже будуть кодити на жабоскріптах, але поки цього ще не сталося у пана Looser ще є шанси  :)

Подякували: Tarpan871