создание проекта
This commit is contained in:
parent
edc749eab2
commit
b8cbe95d2b
146
README.md
146
README.md
|
|
@ -18,31 +18,55 @@
|
|||
|
||||
## 🚀 Быстрый старт
|
||||
|
||||
### Сборка
|
||||
|
||||
```bash
|
||||
# Клонирование репозитория
|
||||
git clone https://github.com/artradeskz/ndisasm-ru.git
|
||||
cd ndisasm-ru
|
||||
|
||||
# Сборка
|
||||
make
|
||||
```
|
||||
|
||||
### Использование
|
||||
|
||||
```bash
|
||||
./ndisasm-ru -b 32 файл.bin
|
||||
# Запуск
|
||||
./ndisasm-ru -b 64 файл.elf
|
||||
```
|
||||
|
||||
### Пример
|
||||
---
|
||||
|
||||
Входные байты: `B8 01 00 00 00`
|
||||
## 📖 Пример вывода
|
||||
|
||||
| Оригинальный ndisasm | ndisasm-ru |
|
||||
|---|---|
|
||||
| `mov eax,0x1` | `переместить еаикс,0x1` |
|
||||
| `add eax,0x2` | `прибавить еаикс,0x2` |
|
||||
| `cmp eax,ebx` | `сравнить еаикс,ебикс` |
|
||||
| `jmp 0x1234` | `переход 0x1234` |
|
||||
Ниже приведён фрагмент дизассемблирования самого `ndisasm-ru` в 64-битном режиме. Хорошо видно, как инструкции и регистры переводятся на русский язык:
|
||||
|
||||
```bash
|
||||
$ ./ndisasm-ru -b 64 -o 0x81380 -e 0x81380 ndisasm-ru | head -20
|
||||
00081380 B957040000 переместить есикс,0x457
|
||||
00081385 488D154C6A0000 загрузить_адрес рдикс,[rel 0x87dd8]
|
||||
0008138C 488D355D6F0000 загрузить_адрес рсиай,[rel 0x882f0]
|
||||
00081393 488D3D4B6A0000 загрузить_адрес рдиай,[rel 0x87de5]
|
||||
0008139A E87F010000 вызвать 0x8151e
|
||||
0008139F F30F1EFA endbr64
|
||||
000813A3 50 втолкнуть раикс
|
||||
000813A4 58 вытолкнуть раикс
|
||||
000813A5 50 втолкнуть раикс
|
||||
000813A6 E8B5540000 вызвать 0x86860
|
||||
000813AB E860FEFFFF вызвать 0x81210
|
||||
000813B0 F30F1EFA endbr64
|
||||
000813B4 50 втолкнуть раикс
|
||||
000813B5 58 вытолкнуть раикс
|
||||
000813B6 488D3DC3720000 загрузить_адрес рдиай,[rel 0x88680]
|
||||
000813BD 50 втолкнуть раикс
|
||||
000813BE 31C0 исключающее_или еаикс,еаикс
|
||||
000813C0 E805000000 вызвать 0x813ca
|
||||
000813C5 E8E6FFFFFF вызвать 0x813b0
|
||||
000813CA F30F1EFA endbr64
|
||||
```
|
||||
|
||||
**Что мы видим в этом выводе:**
|
||||
- `mov ecx,0x457` → `переместить есикс,0x457`
|
||||
- `lea rdx,[rel 0x87dd8]` → `загрузить_адрес рдикс,[rel 0x87dd8]`
|
||||
- `call 0x8151e` → `вызвать 0x8151e`
|
||||
- `push rax` → `втолкнуть раикс`
|
||||
- `pop rax` → `вытолкнуть раикс`
|
||||
- `xor eax,eax` → `исключающее_или еаикс,еаикс`
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -108,30 +132,16 @@ ndisasm-ru/
|
|||
| `r8` – `r15` | `р8` – `р15` |
|
||||
| `eax` | `еаикс` |
|
||||
| `ebx` | `ебикс` |
|
||||
| ... | ... |
|
||||
| `ecx` | `есикс` |
|
||||
| `edx` | `едикс` |
|
||||
| `esi` | `есиай` |
|
||||
| `edi` | `едиай` |
|
||||
| `esp` | `есипи` |
|
||||
| `ebp` | `ебипи` |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Сборка из исходников
|
||||
|
||||
```bash
|
||||
# Клонирование репозитория
|
||||
git clone https://github.com/artradeskz/ndisasm-ru.git
|
||||
cd ndisasm-ru
|
||||
|
||||
# Сборка
|
||||
make clean
|
||||
make
|
||||
|
||||
# Проверка
|
||||
echo -n -e "\xB8\x01\x00\x00\x00" > test.bin
|
||||
./ndisasm-ru -b 32 test.bin
|
||||
# Ожидаемый вывод: 00000000 B801000000 переместить еаикс,0x1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📖 Использование
|
||||
## 🔧 Использование
|
||||
|
||||
### Основные опции
|
||||
|
||||
|
|
@ -179,55 +189,6 @@ echo -n -e "\xB8\x01\x00\x00\x00" > test.bin
|
|||
|
||||
---
|
||||
|
||||
|
||||
Я добавил пример вывода дизассемблирования самого `ndisasm-ru`. Вот обновлённый раздел `README.md` с этим примером:
|
||||
|
||||
---
|
||||
|
||||
## 📖 Пример вывода
|
||||
|
||||
Ниже приведён фрагмент дизассемблирования самого `ndisasm-ru` в 64-битном режиме. Хорошо видно, как инструкции и регистры переводятся на русский язык:
|
||||
|
||||
```bash
|
||||
$ ./ndisasm-ru -b 64 -o 0x81380 -e 0x81380 ndisasm-ru | head -20
|
||||
00081380 B957040000 переместить есикс,0x457
|
||||
00081385 488D154C6A0000 загрузить_адрес рдикс,[rel 0x87dd8]
|
||||
0008138C 488D355D6F0000 загрузить_адрес рсиай,[rel 0x882f0]
|
||||
00081393 488D3D4B6A0000 загрузить_адрес рдиай,[rel 0x87de5]
|
||||
0008139A E87F010000 вызвать 0x8151e
|
||||
0008139F F30F1EFA endbr64
|
||||
000813A3 50 втолкнуть раикс
|
||||
000813A4 58 вытолкнуть раикс
|
||||
000813A5 50 втолкнуть раикс
|
||||
000813A6 E8B5540000 вызвать 0x86860
|
||||
000813AB E860FEFFFF вызвать 0x81210
|
||||
000813B0 F30F1EFA endbr64
|
||||
000813B4 50 втолкнуть раикс
|
||||
000813B5 58 вытолкнуть раикс
|
||||
000813B6 488D3DC3720000 загрузить_адрес рдиай,[rel 0x88680]
|
||||
000813BD 50 втолкнуть раикс
|
||||
000813BE 31C0 исключающее_или еаикс,еаикс
|
||||
000813C0 E805000000 вызвать 0x813ca
|
||||
000813C5 E8E6FFFFFF вызвать 0x813b0
|
||||
000813CA F30F1EFA endbr64
|
||||
```
|
||||
|
||||
**Что мы видим в этом выводе:**
|
||||
- `mov ecx,0x457` → `переместить есикс,0x457`
|
||||
- `lea rdx,[rel 0x87dd8]` → `загрузить_адрес рдикс,[rel 0x87dd8]`
|
||||
- `call 0x8151e` → `вызвать 0x8151e`
|
||||
- `push rax` → `втолкнуть раикс`
|
||||
- `pop rax` → `вытолкнуть раикс`
|
||||
- `xor eax,eax` → `исключающее_или еаикс,еаикс`
|
||||
|
||||
---
|
||||
|
||||
Этот пример наглядно демонстрирует, как `ndisasm-ru` переводит реальный машинный код в читаемый синтаксис КВС.
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
## ⚠️ Ограничения
|
||||
|
||||
- Поддерживаются только инструкции x86-64, присутствующие в таблице перевода
|
||||
|
|
@ -247,13 +208,11 @@ $ ./ndisasm-ru -b 64 -o 0x81380 -e 0x81380 ndisasm-ru | head -20
|
|||
- **Исходный код:** https://git.nasm.us/nasm.git
|
||||
- **Лицензия:** BSD 2-Clause License
|
||||
|
||||
```
|
||||
Авторские права © 1996-2025 Авторы NASM. Все права защищены.
|
||||
|
||||
Распространение и использование разрешены при условии сохранения
|
||||
уведомления об авторских правах и списка условий.
|
||||
Подробнее: https://opensource.org/licenses/BSD-2-Clause
|
||||
```
|
||||
> Авторские права © 1996-2025 Авторы NASM. Все права защищены.
|
||||
>
|
||||
> Распространение и использование разрешены при условии сохранения
|
||||
> уведомления об авторских правах и списка условий.
|
||||
> Подробнее: https://opensource.org/licenses/BSD-2-Clause
|
||||
|
||||
### Модификация для КВС
|
||||
|
||||
|
|
@ -289,4 +248,5 @@ $ ./ndisasm-ru -b 64 -o 0x81380 -e 0x81380 ndisasm-ru | head -20
|
|||
|
||||
---
|
||||
|
||||
*ndisasm-ru — Русский дизассемблер для КВС*
|
||||
*ndisasm-ru — Русский дизассемблер для КВС*
|
||||
```
|
||||
Loading…
Reference in a new issue