Π‘ΡΠ²ΡΠ΅ΠΌ Π½Π°ΡΠΊΠΎΡΠΎ Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Kaitai Struct 0.9 - Π΅Π·ΠΈΠΊ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ/Π°ΡΠ΄ΠΈΠΎ/Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π°ΡΡ ΠΈΠ²ΠΈ, ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π΄Ρ.). ΠΡΠΏΡΠ΅ΠΊΠΈ Π½Π΅ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½ΠΎΠΌΠ΅Ρ 0.9, ΡΠΎΠ²Π° Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π° Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 2.5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΡΠ΅Π· ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π΅Π·ΠΈΠΊΡΡ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π° Π² ΡΡΠ»ΠΎ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈ:
- ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π³ΠΎΡΠΎΠ² ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (C++, C#, Construct, Go, Java, JavaScript, Lua, Nim, Perl, PHP, Python, Ruby) ΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ» ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (.ksy), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ GraphViz ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠΈΠΌ ΠΎΡ ΡΠΎΠ²Π΅ΠΊΠ° ΡΠΎΡΠΌΠ°Ρ Π² HTML;
- ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π΅Π½ Π²ΠΈΠ·ΡΠ°Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»: Π£Π΅Π± IDE, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°, ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Visual Studio Code, Ρ ΠΎΠ±ΠΈΡΠΈΡΠ΅, ΠΠ΅Π»Π΅Ρ, ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Hiew, ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° Binary Ninja;
- ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Kaitai Struct Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π·Π° ΠΠ΅ΠΉΠ²ΡΠ½, Π·Π° Gradle, Π·Π° Python, Π·Π° JavaScript/WebPack
- Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΡΠΎΡΠΌΠ°ΡΠΈ, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° 156 ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΡΠ°Π·ΠΈ Π²Π΅ΡΡΠΈΡ (ΠΈ ΠΡΠ΅ 78 ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ° Π² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅).
- Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ ΠΠ°ΠΉΡΠ°ΠΉ ΠΊΠΎΠΌΠΏΡΠ΅Ρ
- ΠΌΠΎΠ΄ΡΠ» Π·Π° FUSE - Kaitai FS, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ksy ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ ΡΠΎΡΠΌΠ°Ρ
ΠΠ·ΠΈΠΊ ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Ρ ΠΎΡ GitHub ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 400 Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° / ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ, Π²Π°ΡΠΈΡΠ°ΡΠΈ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ³ΡΠΈ Π·Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΡΠ²ΠΎΡΠ²ΡΡΡΠ²Π°ΠΌ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠ°ΡΠ΅Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ.
Π‘ΡΠ΅Π΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° 0.9 ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅:
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ Π΅Π·ΠΈΡΠΈ (Python ΡΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Construct, Nim, Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² HTML)
- ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠΎΠ΄Π΅ΡΠ΅Π½ C++ (ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, Π½ΡΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠΏΡΠ°Π²Ρ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΡΠ΅ΡΠΎΠ²Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ)
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠ΅Π· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠ°ΡΠΎ foo::bar::baz
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ (Π²Π°Π»ΠΈΠ΄Π΅Π½)
- ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π² Π±Π°ΠΉΡΠΎΠ²Π΅ ΠΈ Π±ΠΈΡΠΎΠ²Π΅ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ sizeof ΠΈ bitsizeof)
- ΡΠΎΡΠΌΠ°Π»Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° Π΅Π·ΠΈΠΊ Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ° JSON ΡΡ Π΅ΠΌΠΈ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅Π³Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru