GOLANG_BOOKS Telegram 996
πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/golang_books/996
Create:
Last Update:

πŸ‘£ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° диска: парсим MBR ΠΈ GPT Π½Π° Go

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСхничСский Π³Π°ΠΉΠ΄ β€” ΠΊΠ°ΠΊ Π½Π° языкС Go Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой инструмСнт для Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² диска (Π°Π½Π°Π»ΠΎΠ³ `fdisk -l`), работая Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с «сырыми» Π±Π°ΠΉΡ‚Π°ΠΌΠΈ.

πŸ“Œ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°:
β€’ Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 512 Π±Π°ΠΉΡ‚ с диска (MBR)
β€’ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Ρ‚ΠΈΠΏ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: MBR ΠΈΠ»ΠΈ GPT
β€’ ΠŸΠ°Ρ€ΡΠΈΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ структуры (MBRPartition, GPTHeader ΠΈ Π΄Ρ€.)
β€’ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅: смСщСниС, Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΈΠΏ, имя (для GPT)

πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:
1. MBR (Master Boot Record)
β€’ Π”ΠΎ 4 основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ β€” 2 Π’Π‘
β€’ Π’Π°Π±Π»ΠΈΡ†Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ сСкторС (512 Π±Π°ΠΉΡ‚)
β€’ КаТдая запись β€” 16 Π±Π°ΠΉΡ‚, с полями CHS, LBA, Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ
β€’ Π’ ΠΊΠΎΠ½Ρ†Π΅ сигнатура 0x55AA

2. GPT (GUID Partition Table)
β€’ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ стандарт с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ >2 Π’Π‘
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ GUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎ 128 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ основной ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ + Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Π² UTF‑16

πŸ“– ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° Π² Go:
β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ описаны Ρ‡Π΅Ρ€Π΅Π· struct с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ полями
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ binary.Read для чтСния Π±Π»ΠΎΠΊΠΎΠ²
β€’ Π•ΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ всСх Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, смСщСниС ΠΈ, ΠΏΡ€ΠΈ GPT, имя Ρ€Π°Π·Π΄Π΅Π»Π°.

πŸ’‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
β€’ ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ устроСна Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° дисков
β€’ Π£Ρ‡ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ… Π² Go
β€’ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для систСмного программирования, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, диагностики ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ

πŸ§ͺ Автор Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:
β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC
β€’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΈ логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²
β€’ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм
β€’ РСализация Π² WebAssembly для запуска Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

πŸ“Ž Π§ΠΈΡ‚Π°Ρ‚ΡŒ

BY Golang Books




Share with your friend now:
tgoop.com/golang_books/996

View MORE
Open in Telegram


Telegram News

Date: |

As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. Each account can create up to 10 public channels Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select β€œNew Channel” from the drop-down menu. But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree."
from us


Telegram Golang Books
FROM American