diff --git a/README.md b/README.md index b34bd23..fdc9e70 100644 --- a/README.md +++ b/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 β€” Русский дизассСмблСр для ΠšΠ’Π‘* \ No newline at end of file +*ndisasm-ru β€” Русский дизассСмблСр для ΠšΠ’Π‘* +``` \ No newline at end of file