Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚.

ΠœΡ‹, Π’ΠΈΠΊΡ‚ΠΎΡ€ Антипов ΠΈ Илья АлСшин, сСгодня расскаТСм ΠΎ своСм ΠΎΠΏΡ‹Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с USB-дСвайсами Ρ‡Π΅Ρ€Π΅Π· Python PyUSB ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ рСвСрс-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π΅.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ

Π’ 2019 Π³ΠΎΠ΄Ρƒ вступило Π² силу ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠŸΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π Π€ β„– 224 «Об ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠŸΡ€Π°Π²ΠΈΠ» ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Π°Π±Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ срСдствами ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ особСнностях внСдрСния государствСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚ΠΎΠΌ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ срСдствами ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π°Π±Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈΒ».
Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ с 1 июля 2019 Π³ΠΎΠ΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ обязаны ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠ°Ρ‡ΠΊΡƒ Ρ‚Π°Π±Π°ΠΊΠ°. А прямыС Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡŽ с ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π£ΠŸΠ”). Магазинам, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· кассу.

Π’Π°ΠΊΠΆΠ΅ с 1 июля 2020 Π³ΠΎΠ΄Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π½Π΅ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠ°Ρ‡ΠΊΠΈ сигарСт Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄ΠΎΠΌ Datamatrix. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ – Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ – Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Datamatrix Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, Π° инвСрсный. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Π±Π΅Π»ΠΎΠΌ, Π° Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ΠœΡ‹ протСстировали наши сканСры, ΠΈ оказалось, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΡ… Ρ‡Π°ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ/ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ просто Π½Π΅ Π² состоянии Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этим ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ событий Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» Π½Π°ΠΌ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²Π½ΡƒΡŽ боль, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ нашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ разбросаны ΠΏΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. НСсколько дСсятков тысяч касс – ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π§Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π΄Π²Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ: ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²Π°ΡŽΡ‚ ΠΈ Π΄ΠΎΠ½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ сканСры. Π’Ρ‚ΠΎΡ€ΠΎΠΉ: Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΈ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ сразу ΠΌΠ½ΠΎΠ³ΠΎ сканСров Π·Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π°ΠΌ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»: ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Ρ‹Π΅Π·Π΄Ρ‹ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², Π΄Π° ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс Π² Ρ‚Π°ΠΊΠΎΠΌ случаС слоТно. Но самоС Π³Π»Π°Π²Π½ΠΎΠ΅ – Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π±Ρ‹ люди, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ мноТСство ошибок ΠΈ, скорСС всСго, Π½Π΅ ΡƒΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΈΡΡŒ Π² срок.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ всСм Ρ…ΠΎΡ€ΠΎΡˆ, Ссли Π±Ρ‹ Π½Π΅ ΠΎΠ΄Π½ΠΎ Π½ΠΎ. Π£ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ² Π½Π΅ оказалось Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π°ΠΌ инструмСнтов ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ для всСх Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… ОБ. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сроки ΠΏΠΎΠ΄ΠΆΠΈΠΌΠ°Π»ΠΈ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ своСй Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ.

Π”Π°Π»ΡŒΡˆΠ΅ расскаТСм, ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ инструмСнты для Ρ€ΡƒΡ‡Π½Ρ‹Ρ… сканСров ΠΏΠΎΠ΄ ОБ Debian 9.x (Ρƒ нас всС кассы Π½Π° Debian).

Π Π°Π·Π³Π°Π΄Π°Ρ‚ΡŒ Π·Π°Π³Π°Π΄ΠΊΡƒ: ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ сканСр

РассказываСт Π’ΠΈΠΊΡ‚ΠΎΡ€ Антипов.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставил Π²Π΅Π½Π΄ΠΎΡ€, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ Windows, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с IE. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ сканСр.

Π’Π°ΠΊ ΠΊΠ°ΠΊ цСлСвая систСма Ρƒ нас Debian, Ρ‚ΠΎ поставили Π½Π° Debian usb-redirector server, Π½Π° Windows usb-redirector client. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ usb-redirector сдСлали проброс сканСра с Linux ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π½Π° Windows ΠΌΠ°ΡˆΠΈΠ½Ρƒ.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΎΡ‚ Π²Π΅Π½Π΄ΠΎΡ€Π° ΠΏΠΎΠ΄ Windows ΡƒΠ²ΠΈΠ΄Π΅Π»Π° сканСр ΠΈ Π΄Π°ΠΆΠ΅ Π΅Π³ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠΈΠ»Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сдСлали ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: ΠΎΡ‚ ОБ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ зависит, Π΄Π΅Π»ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ.

Ок. На Windows-машинС запустили ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ, Π½Π° Linux-машинС сняли dump.

Π—Π°ΠΏΠΈΡ…Π½ΡƒΠ»ΠΈ dump Π² WireShark и… взгрустнули (Ρ‡Π°ΡΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ dump я ΠΎΠΏΡƒΡ‰Ρƒ, ΠΎΠ½ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ интСрСса Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚).

Π§Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π» dump:

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

АдрСса 0000-0030, судя ΠΏΠΎ Wireshark, – слуТСбная информация USB.

Нас интСрСсовала Ρ‡Π°ΡΡ‚ΡŒ 0040-0070.

Из ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ понятно, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ символов MOCFT. Π­Ρ‚ΠΈ символы оказались символами ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, ΠΊΠ°ΠΊ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π΄ΠΎ окончания ΠΊΠ°Π΄Ρ€Π° (Π²Ρ‹Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ):

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΈ символы fd 3e 02 01 fe, Π»ΠΈΡ‡Π½ΠΎ я, ΠΊΠ°ΠΊ ΠΈ Илья, понятия Π½Π΅ ΠΈΠΌΠ΅Π».

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°Π΄Ρ€ (слуТСбная информация здСсь ΡƒΠ΄Π°Π»Π΅Π½Π°, Π²Ρ‹Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ):

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π§Ρ‚ΠΎ стало ясно? Π§Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° – нСкая константа. ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ это ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ, Π½ΠΎ Π΄ΠΎ окончания Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ:

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Π΄Ρ€ Ρ‚ΠΎΠΆΠ΅ Π²Π²Π΅Π» Π² ступор, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ смСнилась константа (Π²Ρ‹Π΄Π΅Π»ΠΈΠ») ΠΈ, ΠΊΠ°ΠΊ Π½ΠΈ странно, имСлась Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π°. Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π», Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ 1024 Π±Π°ΠΉΡ‚Π°. Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ – я снова Π½Π΅ Π·Π½Π°Π».

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ, ΠΊΠ°ΠΊ старый BBS-Π½ΠΈΠΊ, я пСрСсмотрСл стандартныС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. 1024 Π±Π°ΠΉΡ‚Π° Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π». Начал ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ‡Π°ΡΡ‚ΡŒ ΠΈ наткнулся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» 1К Xmodem. Он позволял ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ 1024, Π½ΠΎ c нюансом: ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ лишь 128, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ отсутствии ошибок ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π» количСство ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚. Π£ мСня ΠΆΠ΅ сразу Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° 1024 Π±Π°ΠΉΡ‚Π°. РСшил ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π₯-ΠΌΠΎΠ΄Π΅ΠΌ.

Π’Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ ΠΌΠΎΠ΄Π΅ΠΌΠ° Π±Ρ‹Π»ΠΎ Π΄Π²Π΅.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° XMODEM с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CRC8 (ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ XMODEM):

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° XMODEM с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ CRC16 (XmodemCRC):

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π‘ Π²ΠΈΠ΄Ρƒ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ SOH, Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ CRC ΠΈ Π΄Π»ΠΈΠ½Ρ‹ посылки.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π» Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (ΠΈ снова ΡƒΠ²ΠΈΠ΄Π΅Π» Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π½ΠΎ ΡƒΠΆΠ΅ с отступом Π² 1024 Π±Π°ΠΉΡ‚Π°):

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π£Π²ΠΈΠ΄Π΅Π» Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ fd 3e 02, Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° Π±Π°ΠΉΡ‚Π° ΡƒΠΆΠ΅ измСнились: Π±Ρ‹Π»ΠΎ 01 fe, Π° стало 02 fd. Π’ΡƒΡ‚ я Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ нумСруСтся 02 ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ понял: ΠΏΠ΅Ρ€Π΅Π΄ΠΎ ΠΌΠ½ΠΎΠΉ нумСрация Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. ΠŸΠ΅Ρ€Π²Π°Ρ 1024 ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° – 01, вторая – 02, Ρ‚Ρ€Π΅Ρ‚ΡŒΡ – 03 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ (Π½ΠΎ Π² hex, СстСствСнно). Но Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ с fe Π½Π° fd? Π“Π»Π°Π·Π° Π²ΠΈΠ΄Π΅Π»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π½Π° 1, ΠΌΠΎΠ·Π³ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π», Ρ‡Ρ‚ΠΎ программисты ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ с 0, Π° Π½Π΅ с 1. Но Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ 1, Π° Π½Π΅ 0? ΠžΡ‚Π²Π΅Ρ‚Π° Π½Π° этот вопрос я Ρ‚Π°ΠΊ ΠΈ Π½Π΅ нашСл. Π—Π°Ρ‚ΠΎ понял, ΠΊΠ°ΠΊ считаСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ – это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ FF –(минус) Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π»ΠΎΠΊ обозначался ΠΊΠ°ΠΊ = 02 (FF-02) = 02 FD. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°ΠΌΠΏΠ° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΎ мою Π΄ΠΎΠ³Π°Π΄ΠΊΡƒ.

Π’ΠΎΠ³Π΄Π° стала Π²Ρ‹Ρ€ΠΈΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ:

Начало ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
fd 3e 02 – Start
01 FE – счСтчик ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° (34 Π±Π»ΠΎΠΊΠ°, пСрСдаСтся 1024 Π±Π°ΠΉΡ‚Π°)
fd 3e 1024 Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹Π΅ Π½Π° Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ 30 Π±Π°ΠΉΡ‚).
ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ
fd 25

ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для выравнивания Π΄ΠΎ 1024 Π±Π°ΠΉΡ‚Π°.

Как выглядит ΠΊΠ°Π΄Ρ€ окончания ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±Π»ΠΎΠΊΠ°:

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

fd 25 – сигнал ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±Π»ΠΎΠΊΠ°. Π”Π°Π»Π΅Π΅ 2f 52 – остатки Ρ„Π°ΠΉΠ»Π° Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 1024 Π±Π°ΠΉΡ‚Π°. 2f 52, судя ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ, – ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма 16-bit CRC.

По старой памяти сдСлал Π½Π° Π‘ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π΄Π΅Ρ€Π³Π°Π»Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° 1024 Π±Π°ΠΉΡ‚Π° ΠΈ считала 16-bit CRC. Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ это Π½Π΅ 16-bit CRC. Π‘Π½ΠΎΠ²Π° ступор – ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° Ρ‚Ρ€ΠΈ дня. ВсС это врСмя я пытался ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅, Ссли Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма. Π˜Π·ΡƒΡ‡Π°Ρ англоязычныС сайты, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ для X-ΠΌΠΎΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свой подсчСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы – CRC-CCITT (XModem). Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π½Π° C Π΄Π°Π½Π½ΠΎΠ³ΠΎ подсчСта я Π½Π΅ нашСл, Π½ΠΎ нашСл сайт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² online считал Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму. ΠŸΠ΅Ρ€Π΅ΠΊΠΈΠ½ΡƒΠ² Π½Π° Π²Π΅Π±-страничку 1024 Π±Π°ΠΉΡ‚Π° своСго Ρ„Π°ΠΉΠ»Π°, сайт ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΌΠ½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму, которая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпала с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммой ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

Π£Ρ€Π°! ПослСдняя Π·Π°Π³Π°Π΄ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΊΡƒ. Π”Π°Π»Π΅Π΅ я ΠΏΠ΅Ρ€Π΅Π΄Π°Π» свои знания (Π° ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ мСня Π² Π³ΠΎΠ»ΠΎΠ²Π΅) ИльС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°ΠΊΠΎΠΌ с ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтариСм – Python.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

РассказываСт Илья АлСшин.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ инструкции, я ΠΎΡ‡Π΅Π½ΡŒ «обрадовался».

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, с Π½Π°Ρ‡Π°Π»Π°.  Π‘ΠΎ снятия Π΄Π°ΠΌΠΏΠ° с USB ΠΏΠΎΡ€Ρ‚Π°.

ЗапускаСм USB-pcap https://desowin.org/usbpcap/tour.html

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠΎΡ€Ρ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ устройство, ΠΈ Ρ„Π°ΠΉΠ», ΠΊΡƒΠ΄Π° сохраним dump.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ сканСр ΠΊ машинС, Π³Π΄Π΅ установлСно Ρ€ΠΎΠ΄Π½ΠΎΠ΅ ПО EZConfigScanning для Windows.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π’ Π½Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° устройство. Но ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ? Π“Π΄Π΅ ΠΈΡ… Π²Π·ΡΡ‚ΡŒ?
ΠŸΡ€ΠΈ стартС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ автоматичСски (это ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). И Π΅Ρ‰Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄Ρ‹ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² оборудования. DEFALT. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ наша ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

НСобходимыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ dump.pcap Ρ‡Π΅Ρ€Π΅Π· wireshark.

Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΈ стартС EZConfigScanning. ΠšΡ€Π°ΡΠ½Ρ‹ΠΌ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ мСста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π£Π²ΠΈΠ΄Π΅Π² всС это Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, я ΡƒΠΏΠ°Π» Π΄ΡƒΡ…ΠΎΠΌ. ΠšΡƒΠ΄Π° ΠΊΠΎΠΏΠ°Ρ‚ΡŒ дальшС – нСпонятно.

НСмного ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠ³ΠΎ ΡˆΡ‚ΡƒΡ€ΠΌΠ° ΠΈ-ΠΈ-и… Ага! Π’ Π΄Π°ΠΌΠΏΠ΅ out – это in, Π° in это out.

ΠŸΠΎΠ³ΡƒΠ³Π»ΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ URB_INTERRUPT. Выяснил, Ρ‡Ρ‚ΠΎ это ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. И Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² 4: control, interrupt, isochronous, bulk. О Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

А endpoint адрСса Π² интСрфСйсС USB-дСвайса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΈΠ±ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«lsusb –vΒ», Π»ΠΈΠ±ΠΎ срСдствами pyusb.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ Π½Π°ΠΉΡ‚ΠΈ всС устройства с Ρ‚Π°ΠΊΠΈΠΌ VID. МоТно ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ VID:PID.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Выглядит это Ρ‚Π°ΠΊ:

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π˜Ρ‚Π°ΠΊ, Ρƒ нас появилась нуТная информация: ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ P_INFO. ΠΈΠ»ΠΈ DEFALT, адрСса, ΠΊΡƒΠ΄Π° Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ endpoint=03 ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ endpoint=86. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСвСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² hex.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π’Π°ΠΊ ΠΊΠ°ΠΊ устройство Ρƒ нас ΡƒΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π΅Π³ΠΎ ΠΎΡ‚ ядра…

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

…и Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ запись Π² endpoint c адрСсом 0x03,

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

… Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ ΠΈΠ· endpoint с адрСсом 0x86.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚:

P_INFOfmt: 1
mode: app
app-present: 1
boot-present: 1
hw-sn: 18072B44CA
hw-rev: 0x20
cbl: 4
app-sw-rev: CP000116BBA
boot-sw-rev: CP000014BAD
flash: 3
app-m_name: Voyager 1450g
boot-m_name: Voyager 1450g
app-p_name: 1450g
boot-p_name: 1450g
boot-time: 16:56:02
boot-date: Oct 16 2014
app-time: 08:49:30
app-date: Mar 25 2019
app-compat: 289
boot-compat: 288
csum: 0x6986

Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² dump.pcap.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ систСмныС ΡˆΡ‚Ρ€ΠΈΡ…ΠΊΠΎΠ΄Ρ‹ Π² hex. ВсС, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» обучСния Π³ΠΎΡ‚ΠΎΠ².

Как Π±Ρ‹Ρ‚ΡŒ с ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ? Π’Ρ€ΠΎΠ΄Π΅, всС Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ Π΅ΡΡ‚ΡŒ нюанс.

Бняв ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄Π°ΠΌΠΏ процСсса ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ поняли, с Ρ‡Π΅ΠΌ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ. Π’ΠΎΡ‚ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€ΠΎ XMODEM, которая ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ это ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ происходит, ΠΏΡƒΡΡ‚ΡŒ ΠΈ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ…: http://microsin.net/adminstuff/others/xmodem-protocol-overview.html Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Π² Π² Π΄Π°ΠΌΠΏ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Π΄Ρ€Π° – 1024, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ URB-data – 64.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ – 1024/64 – ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ 16 строк Π² Π±Π»ΠΎΠΊΠ΅, Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΏΠΎ 1 символу ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π±Π»ΠΎΠΊ. Дополняя 1 строку Π² Π±Π»ΠΎΠΊΠ΅ спСцсимволами fd3e02 + Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ°.
14 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк дополняСм fd25 +, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ XMODEM.calc_crc() вычисляСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму всСго Π±Π»ΠΎΠΊΠ° (ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ β€œFF – 1” – это CSUM) ΠΈ послСднюю, 16-ю, строку дополняСм fd3e.

Казалось Π±Ρ‹, всС, Ρ‡ΠΈΡ‚Π°ΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π±Π΅ΠΉ Π½Π° Π±Π»ΠΎΠΊΠΈ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΠΉ сканСр ΠΎΡ‚ ядра ΠΈ засылай Π² дСвайс. Но Π½Π΅ всС Ρ‚Π°ΠΊ просто. Π‘ΠΊΠ°Π½Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎ пСрСвСсти Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ,
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² Π΅ΠΌΡƒ NEWAPP = ‘\xfd\x0a\x16\x4e\x2c\x4e\x45\x57\x41\x50\x50\x0d’.
ΠžΡ‚ΠΊΡƒΠ΄Π° эта ΠΊΠΎΠΌΠ°Π½Π΄Π°?? Из Π΄Π°ΠΌΠΏΠ°.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Но ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² сканСр Ρ†Π΅Π»Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΈΠ·-Π·Π° ограничСния Π² 64:

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

Ну ΠΈ сканСр Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ NEWAPP Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ hex. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ придСтся ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ bytes_array

[253, 10, 22, 78, 44, 78, 69, 87, 65, 80, 80, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

И ΡƒΠΆΠ΅ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² сканСр.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚:

[2, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Если ΡΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ со ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ ΠΏΡ€ΠΎ XMODEM, станСт понятно: Π΄Π°Π½Π½Ρ‹Π΅ приняты.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС Π±Π»ΠΎΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹, Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ END_TRANSFER = ‘xfdx01x04’.

Ну Π° Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти Π±Π»ΠΎΠΊΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… людСй Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π΅ нСсут, сдСлаСм ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π² скрытом Ρ€Π΅ΠΆΠΈΠΌΠ΅. И Π½Π° всякий случай Ρ‡Π΅Ρ€Π΅Π· tqdm ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ прогрСсбар.

Π—Π°Π΄Π°Ρ‡Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±Π΅Π· Π²Π΅Π½Π΄ΠΎΡ€Π° Ρ€ΡƒΡ‡Π½Ρ‹Π΅ сканСры ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π»ΠΈ

БобствСнно, дальшС Π΄Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ. ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² скрипты для массового тираТирования Π² Ρ‡Π΅Ρ‚ΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° кассах, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π˜Ρ‚ΠΎΠ³

ΠŸΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ сил ΠΈ волос Π½Π° Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΌΡ‹ сумСли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΡƒΠ»ΠΎΠΆΠΈΠ»ΠΈΡΡŒ Π² срок. ΠŸΡ€ΠΈ этом сканСры ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ, ΠΌΡ‹ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌ вСсь процСсс. Компания сэкономила врСмя ΠΈ срСдства, Π° ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ бСсцСнный ΠΎΠΏΡ‹Ρ‚ рСвСрс-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° оборудования Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com