From 2336f4391a1223c0aa3b872088fefaf82a5a8b84 Mon Sep 17 00:00:00 2001 From: german Date: Wed, 25 Feb 2026 18:54:30 +0400 Subject: [PATCH] Binary structure DOCUMENTATION --- BINARY.md | 33 +++++++++++++++++++++++++++++++++ hello_world.exe | Bin 0 -> 32 bytes hello_world.hex | 1 + test/syscall_test.exe | Bin 36 -> 36 bytes 4 files changed, 34 insertions(+) create mode 100644 BINARY.md create mode 100644 hello_world.exe create mode 100644 hello_world.hex diff --git a/BINARY.md b/BINARY.md new file mode 100644 index 0000000..294951a --- /dev/null +++ b/BINARY.md @@ -0,0 +1,33 @@ +# Структура файла +Файл содержит заголовок, сигнатуру и исполняемый код. +В качестве порядка размещения байт используется **LITTLE-ENDIAN** в не зависимости от платформы. +## Заголовок +Его структура следующая: +- Сигнатура (16 BIT) это текст MZ (0x4D5A) +- Размер памяти под файл (32 BIT) +- Размер стека (16 BIT) +Пример записи заголовка на **BASH**: +```bash +touch hello_world.hex +echo "4d5a240000002000" > hello_world.hex +touch hello_world.exe +xxd -r -p hello_world.hex hello_world.exe +``` +## Структура +Файл содержит исполняемые команды. Подробнее [здесь](https://gitlabor.ru/German/ntsys/src/branch/main/BINCOM.md). +Пример записи структуры на **BASH**: +```bash +touch hello_world.hex +echo "0248656c6c6f2c20776f726c64210a000001001a00022a00" >> hello_world.hex +touch hello_world.exe +xxd -r -p hello_world.hex hello_world.exe +``` +# Пример +Выполните следующий скрипт: +```bash +touch hello_world.hex +echo "4d5a2400000020000248656c6c6f2c20776f726c64210a000001001a00022a00" > hello_world.hex +touch hello_world.exe +xxd -r -p hello_world.hex hello_world.exe +ntsys hello_world.exe +``` diff --git a/hello_world.exe b/hello_world.exe new file mode 100644 index 0000000000000000000000000000000000000000..9366637ac373e5a14b9768168b6ab55b86ed126b GIT binary patch literal 32 ncmeZ`Qej|VP+(y4NX^N~*HI|XFUm<#UM00`^>=l}o!