เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบชเบฐเบšเบฒเบเบ”เบตเบ—เบธเบเป†เบ—เปˆเบฒเบ™.

เบžเบงเบเป€เบฎเบปเบฒ, Viktor Antipov เปเบฅเบฐ Ilya Aleshin, เบกเบทเป‰เบ™เบตเป‰เบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™ USB เบœเปˆเบฒเบ™ Python PyUSB เปเบฅเบฐเป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบชเบฐเบงเบฐเบเปเบฒเบเป‰เบญเบ™เบเบฑเบš.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ›เบฐเบงเบฑเบ”เบชเบฒเบ”

เปƒเบ™เบ›เบต 2019, เบ”เบณเบฅเบฑเบ”เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™เบ‚เบญเบ‡เบชเบฐเบซเบฐเบžเบฑเบ™เบฅเบฑเบ”เป€เบŠเบ เบชเบฐเบšเบฑเบšเป€เบฅเบเบ—เบต 224 โ€œเบงเปˆเบฒเบ”เป‰เบงเบเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ•เบดเบ”เบชเบฐเบซเบผเบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบขเบฒเบชเบนเบšเบ”เป‰เบงเบเบงเบดเบ—เบตเบเบฒเบ™เบฅเบฐเบšเบธเบ•เบปเบงเบ•เบปเบ™ เปเบฅเบฐ เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป„เบซเบผเบงเบฝเบ™เบ‚เบญเบ‡เบชเบดเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบ•เบดเบ”เบชเบฐเบซเบผเบฒเบเบ”เป‰เบงเบเบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเบ•เบปเบ™. เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เบฐโ€‹เบžเบฑเบ™โ€‹เบขเบฒโ€‹เบชเบนเบšโ€ เป„เบ”เป‰โ€‹เบกเบตโ€‹เบœเบปเบ™โ€‹เบšเบฑเบ‡โ€‹เบ„เบฑเบšโ€‹เปƒเบŠเป‰.
เป€เบญเบเบฐเบชเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฐเบ—เบดเบšเบฒเบเบงเปˆเบฒ เบ™เบฑเบšเปเบ•เปˆเบงเบฑเบ™เบ—เบต 1 เบเปเบฅเบฐเบเบปเบ” 2019 เป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เป„เบ›, เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบ•เบดเบ”เบ›เป‰เบฒเบเปƒเบชเปˆเบขเบฒเบชเบนเบšเปเบ•เปˆเบฅเบฐเบŠเบญเบ‡. เปเบฅเบฐเบœเบนเป‰เบˆเบฑเบ”เบˆเปเบฒเบซเบ™เปˆเบฒเบเป‚เบ”เบเบเบปเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบญเบเบฐเบชเบฒเบ™เบเบฒเบ™เป‚เบญเบ™เป€เบ‡เบดเบ™เบ—เบปเปˆเบงเป„เบ› (UDD). เบฎเป‰เบฒเบ™เบ„เป‰เบฒ, เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฒเบ™เบ‚เบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เป‰เบฒเบเบŠเบทเปˆเบœเปˆเบฒเบ™เบšเบฑเบ™เบŠเบตเป€เบ‡เบดเบ™เบชเบปเบ”.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบ™เบฑเบšเปเบ•เปˆเบงเบฑเบ™เบ—เบต 1 เบเปเบฅเบฐเบเบปเบ” 2020 เป€เบ›เบฑเบ™เบ•เบปเป‰เบ™เป„เบ›, เบซเป‰เบฒเบกเบˆเบณเปœเปˆเบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบขเบฒเบชเบนเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เป‰เบฒเบเบŠเบทเปˆ. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ–เบปเบ‡เบขเบฒเบชเบนเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบซเบกเบฒเบเบ”เป‰เบงเบเบšเบฒเป‚เบ„เบ” Datamatrix เบžเบดเป€เบชเบ”. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™ - เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™ - เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒ Datamatrix เบˆเบฐเบšเปเปˆเบ—เปเบฒเบกเบฐเบ”เบฒ, เปเบ•เปˆเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบšเปเปˆเปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ”เบชเบตเบ”เปเบฒเปƒเบ™เบชเบตเบ‚เบฒเบง, เปเบ•เปˆเปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™.

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบชเบฐโ€‹เปเบเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹, เปเบฅเบฐโ€‹เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบซเบฑเบ™โ€‹เบญเบญเบโ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เบชเปˆเบงเบ™โ€‹เปƒเบซเบเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™ reflashed / retrainedโ€‹, เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เป„เบ”เป‰โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹เบเบฑเบš barcode เบ™เบตเป‰โ€‹. เป€เบซเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบˆเบฑเบšเบซเบปเบงเบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฎเป‰เบฒเบ™เบ„เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเบขเบนเปˆเปƒเบ™เบญเบฒเบ™เบฒเป€เบ‚เบ”เบ—เบตเปˆเบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡. เบซเบผเบฒเบเบชเบดเบšเบžเบฑเบ™เบšเบฑเบ™เบŠเบตเป€เบ‡เบดเบ™เบชเบปเบ” - เปเบฅเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบซเบผเบฒเบ.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”? เบกเบตเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบ—เปเบฒเบญเบดเบ”: เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ reflash เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ›เบฑเบšเบ•เบปเบงเบชเบฐเปเบเบ™. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡: เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเปเบฅเบฐ, เบ”เบตเบเบงเปˆเบฒ, เบเบงเบกเป€เบญเบปเบฒเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบง.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”, เปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ: เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เป€เบ‡เบดเบ™เปƒเบ™เบเบฒเบ™เบขเป‰เบฝเบกเบขเบฒเบกเบงเบดเบชเบฐเบงเบฐเบเบญเบ™, เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบงเบšเบ„เบธเบกเปเบฅเบฐเบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™. เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบ›เบฐเบŠเบฒเบŠเบปเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบฒเบเปเบฅเบฐ, เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบเบปเบ‡เบเบฑเบšเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบ”เบตเบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™, เบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡. เบœเบนเป‰เบ‚เบฒเบเบšเบฒเบ‡เบ„เบปเบ™เบšเปเปˆเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบท flashing เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เปเบฅเบฐโ€‹เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบซเบกเบปเบ”โ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เบ„เบดเบ”โ€‹เบ”เป‰เบงเบโ€‹เบซเบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹.

เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเบชเปเบฒเบฅเบฑเบš Debian 9.x OS (เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เป€เบ‡เบดเบ™เบชเบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ Debian).

เปเบเป‰โ€‹เป„เบ‚ riddleโ€‹: เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™ flash เป€เบ„เบทเปˆเบญเบ‡โ€‹เบชเบฐโ€‹เปเบเบ™โ€‹

Victor Antipov เบฅเบฒเบเบ‡เบฒเบ™.

เบ›เบฐเป‚เบซเบเบ”เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ•เป‰ Windows, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบš IE. เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบชเบฒเบกเบฒเบ”เบเบฐเบžเบดเบšเปเบฅเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฅเบฐเบšเบปเบšเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ Debian, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ usb-redirector เปƒเบ™ Debian เปเบฅเบฐเบฅเบนเบเบ„เป‰เบฒ usb-redirector เปƒเบ™ Windows. เบเบฒเบ™เปƒเบŠเป‰ usb-redirector utilities, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบปเปˆเบ‡เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡ Linux เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡ Windows.

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบœเบนเป‰เบ‚เบฒเบ Windows เป„เบ”เป‰เป€เบซเบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ flashed เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบปเบเบเบฐเบ•เบด. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเบซเบผเบธเบšเบ—เปเบฒเบญเบดเบ”: เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ‚เบถเป‰เบ™เบเบฑเบš OS, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฐเบžเบดเบš.

เบ•เบปเบโ€‹เบฅเบปเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ flashing เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Windows, เปเบฅเบฐเป€เบญเบปเบฒ dump เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ Linux.

เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบชเปˆ WireShark เปเบฅเบฐ ... เบฎเบนเป‰เบชเบถเบเป€เบชเบเปƒเบˆ (เบ‚เป‰เบญเบเบˆเบฐเบเบปเบเป€เบงเบฑเป‰เบ™เบšเบฒเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ, เบžเบงเบเบกเบฑเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆ).

เบชเบดเปˆเบ‡เบ—เบตเปˆ dump เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒ:

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ—เบตเปˆเบขเบนเปˆ 0000-0030, เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบ Wireshark, เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ USB.

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เบชเปˆเบงเบ™ 0040-0070.

เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบˆเบฒเบเบเบญเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบญเบฑเบ™เบ”เบฝเบงเบเบปเบเป€เบงเบฑเป‰เบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ MOCFT. เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฒเบเป€เบ›เบฑเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบˆเบฒเบเป„เบŸเบฅเปŒเป€เบŸเบตเบกเปเบง, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบˆเบปเบ™เบเปˆเบงเบฒเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบญเบš (เป„เบŸเบฅเปŒเป€เบŸเบตเบกเปเบงเบ–เบทเบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ):

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบชเบฑเบ™เบเบฒเบฅเบฑเบ fd 3e 02 01 fe เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™, เป€เบŠเบฑเปˆเบ™ Ilya, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบขเบนเปˆเปƒเบ™เบเบญเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เป„เบŸเบฅเปŒเป€เบŸเบตเบกเปเบงเป„เบ”เป‰เบ–เบทเบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ):

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เปเบกเปˆเบ™เบซเบเบฑเบ‡เบˆเบฐเปเบˆเป‰เบ‡? เบงเปˆเบฒเบชเบญเบ‡ bytes เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบปเบ‡เบ—เบตเปˆ. เบ•เบฑเบ™เบ•เปเปˆเป„เบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบทเบ™เบขเบฑเบ™เบ™เบตเป‰, เปเบ•เปˆเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบ•เบฑเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ:

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบเบญเบšเบ™เบตเป‰เบเบฑเบ‡ stupefying, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ„เบปเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ (เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ) เปเบฅเบฐ, oddly เบžเบฝเบ‡เบžเป, เบกเบตเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป„เบŸเบฅเปŒ. เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ bytes เป‚เบญเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ 1024 bytes เป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™. เบญเบตเบเป€เบ—เบทเปˆเบญ เปœเบถเปˆเบ‡ เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒ bytes เบ—เบตเปˆเป€เบซเบผเบทเบญ เปเบฒเบ เบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”.

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เป€เบ›เบฑเบ™เบŠเบทเปˆเบซเบผเบดเป‰เบ™ BBS เป€เบเบปเปˆเบฒ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบšเปเปˆเบกเบตเป‚เบ›เบฃเป‚เบ•เบ„เปเบชเบปเปˆเบ‡ 1024 bytes. เบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบชเบถเบเบชเบฒเบฎเบฒเบ”เปเบงเปเบฅเบฐเบกเบฒเปƒเบ™เบ—เบปเปˆเบง 1K Xmodem protocol. เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบปเปˆเบ‡ 1024, เปเบ•เปˆเบกเบตเบ‚เปเป‰เบ„เบงเบ™เบฅเบฐเบงเบฑเบ‡: เบ—เปเบฒเบญเบดเบ”เบžเบฝเบ‡เปเบ•เปˆ 128, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เป‚เบ›เป‚เบ•เบ„เบญเบ™เป„เบ”เป‰เป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™ bytes เบ—เบตเปˆเบชเบปเปˆเบ‡เบ•เปเปˆ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ—เบฑเบ™เบ—เบตเบกเบตเบเบฒเบ™เป‚เบญเบ™ 1024 bytes. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเบถเบเบชเบฒเป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ, เปเบฅเบฐเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ X-modem.

เบกเบตเบชเบญเบ‡เบ•เบปเบงเปเบ›เบ‚เบญเบ‡เป‚เบกเป€เบ”เบฑเบก.

เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เบฎเบนเบšเปเบšเบšเบŠเบธเบ” XMODEM เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ CRC8 (XMODEM เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš):

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบฎเบนเบšเปเบšเบšเปเบžเบฑเบเป€เบเบฑเบ” XMODEM เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ CRC16 (XmodemCRC):

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™, เบเบปเบเป€เบงเบฑเป‰เบ™ SOH, เบˆเปเบฒเบ™เบงเบ™เบŠเบธเบ”เปเบฅเบฐ CRC เปเบฅเบฐเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบŠเบธเบ”.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบชเบฒเบเบชเบปเปˆเบ‡เบ—เบตเบชเบญเบ‡ (เปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เป„เบ”เป‰เป€เบซเบฑเบ™เป„เบŸเบฅเปŒ firmware, เปเบ•เปˆ indented เปเบฅเป‰เบงเป‚เบ”เบ 1024 bytes):

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ‚เป‰เบญเบเป€เบซเบฑเบ™ header fd 3e 02 เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบ, เปเบ•เปˆเบชเบญเบ‡ bytes เบ•เปเปˆเป„เบ›เป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเป‰เบง: เบกเบฑเบ™เปเบกเปˆเบ™ 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 โ€“ เป€เบฅเบตเปˆเบก
01 FE โ€“ เป€เบ„เบปเบฒเป€เบ•เบตเบชเบฒเบเบชเบปเปˆเบ‡
เป‚เบญเบ™เบเป‰เบฒเบ (34 เบ•เบฑเบ™, 1024 bytes เป‚เบญเบ™)
fd 3e 1024 bytes เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ (เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™ 30 byte block).
เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบฐเบšเบปเบšเบชเบฒเบเบชเบปเปˆเบ‡
fd 25

เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เป€เบซเบผเบทเบญโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบญเบ”โ€‹เบ„เปˆเบญเบ‡โ€‹เบเบฑเบš 1024 bytesโ€‹.

เบเบญเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ•เบฑเบ™เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบ™เบงเปƒเบ”:

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

fd 25 โ€“ เบชเบฑเบ™เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ•เบฑเบ™. เบ•เปเปˆเป„เบ› 2f 52 - เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบชเบนเบ‡เป€เบ–เบดเบ‡ 1024 bytes เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”. 2f 52, เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบเป‚เบ›เบฃเป‚เบ•เบ„เป, เป€เบ›เบฑเบ™ checksum CRC 16-bit.

เบชเปเบฒเบฅเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เป€เบงเบฅเบฒเป€เบเบปเปˆเบฒ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™ C เบ—เบตเปˆเบ”เบถเบ‡ 1024 bytes เบˆเบฒเบเป„เบŸเบฅเปŒเปเบฅเบฐเบ„เบดเบ”เป„เบฅเปˆ CRC 16-bit. เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ„เบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™ CRC 16-bit. Stupor เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ - เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบกเบฒเบ™เบชเบฒเบกเบกเบทเป‰. เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒเบ™เบตเป‰เบ‚เป‰เบญเบเบžเบฐเบเบฒเบเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™, เบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™ checksum. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เบชเบถเบเบชเบฒเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒ X-modem เปƒเบŠเป‰เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ checksum เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ - CRC-CCITT (XModem). เบ‚เป‰เบญเบเบšเปเปˆเบžเบปเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” C เบ‚เบญเบ‡เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ™เบตเป‰, เปเบ•เปˆเบ‚เป‰เบญเบเบžเบปเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบ„เบดเบ”เป„เบฅเปˆ checksum เบ™เบตเป‰เบญเบญเบ™เป„เบฅเบ™เปŒ. เป‚เบ”เบเป„เบ”เป‰เป‚เบญเบ™ 1024 bytes เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ›เบซเบฒเบซเบ™เป‰เบฒเป€เบงเบฑเบš, เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เบ‚เป‰เบญเบเป€เบซเบฑเบ™ checksum เบ—เบตเปˆเบเบปเบ‡เบเบฑเบš checksum เบˆเบฒเบเป„เบŸเบฅเปŒ.

เป‚เบซเป‰เบ! riddle เบชเบธเบ”เบ—เป‰เบฒเบเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚, เบ•เบญเบ™เบ™เบตเป‰เบ‚เป‰เบญเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡. เบ•เปเปˆเป„เบ›, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เปˆเบฒเบเบ—เบญเบ”เบ„เบงเบฒเบกเบฎเบนเป‰เบ‚เบญเบ‡เบ‚เป‰เบญเบ (เปเบฅเบฐเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เบเบฑเบš Ilya, เบœเบนเป‰เบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš Python.

เบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™

Ilya Aleshin เบกเบตโ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™.

เป‚เบ”เบเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ‚เป‰เบญเบ "เบ”เบตเปƒเบˆเบซเบผเบฒเบ."

เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™? เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. ๏Š เบˆเบฒเบเบเบฒเบ™เป€เบญเบปเบฒเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบญเบญเบเบˆเบฒเบเบžเบญเบ” USB.

เป€เบ›เบตเบ”เปƒเบŠเป‰ USB-pcap https://desowin.org/usbpcap/tour.html

เป€เบฅเบทเบญเบเบžเบญเบ”เบ—เบตเปˆเบญเบธเบ›เบฐเบเบญเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเป„เบŸเบฅเปŒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ” dump เป„เบ”เป‰.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบญเบšเปเบง EZConfigScanning เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบชเปเบฒเบฅเบฑเบš Windows.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เปƒเบ™เบกเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒเบฅเบฒเบเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™. เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบเบฑเบšเบ—เบตเบก? เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เป„เบ”เป‰เบขเบนเปˆเปƒเบช?
เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบญเบธเบ›เบฐเบเบญเบ™เป„เบ”เป‰เบ–เบทเบ polled เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบ™เบตเป‰เป€เบฅเบฑเบเบ™เป‰เบญเบเบ•เปเปˆเบกเบฒ). เปเบฅเบฐเป„เบ”เป‰เบกเบตเบเบฒเบ™เบเบถเบเบญเบปเบšเบฎเบปเบก barcode เบˆเบฒเบเป€เบญเบเบฐเบชเบฒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบฒเบ‡เบเบฒเบ™. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบตเบกเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบฅเป‰เบง. เป€เบ›เบตเบ” dump.pcap เบœเปˆเบฒเบ™ wireshark.

เบšเบฅเบฑเบญเบเป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบก EZConfigScanning. เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเปเบกเปˆเบ™เบซเบกเบฒเบเป€เบ›เบฑเบ™เบชเบตเปเบ”เบ‡.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เป€เบซเบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เป€เบ›เบฑเบ™เป€เบ—เบทเปˆเบญเบ—เบณเบญเบดเบ”, เบ‚เป‰เบญเบเป€เบชเบเปƒเบˆ. เบกเบฑเบ™เบšเปเปˆเบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเบšเปˆเบญเบ™เปƒเบ”เบ—เบตเปˆเบˆเบฐเบ‚เบธเบ”เบ•เปเปˆเป„เบ›.

เบฅเบฐเบ”เบปเบกเบชเบฐเปเบญเบ‡เปœเป‰เบญเบเปœเบถเปˆเบ‡ เปเบฅเบฐ เปเบฅเบฐ เปเบฅเบฐ... เบญเป‰เบฒเบง! เปƒเบ™เบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ เบญเบญเบ - เบ™เบตเป‰ inเปเบฅเบฐ in เบกเบฑเบ™ เบญเบญเบ.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰ googled เบงเปˆเบฒ URB_INTERRUPT เปเบกเปˆเบ™เบซเบเบฑเบ‡. เบ‚เป‰เบญเบเบžเบปเบšเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เปเบฅเบฐเบกเบต 4 เบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง: เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก, เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡, isochronous, bulk. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆเบ›เบฒเบเบ—เบฒเบ‡เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบญเบธเบ›เบฐเบเบญเบ™ USB เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเบœเปˆเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ "lsusb โ€“v" เบซเบผเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ pyusb.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบญเบธเบ›เบฐเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบต VID เบ™เบตเป‰. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบซเบฒเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบ VID:PID.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™: เบ„เปเบฒเบชเบฑเปˆเบ‡ P_INFO. เบซเบผเบท DEFALT, เบ—เบตเปˆเบขเบนเปˆเบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ endpoint=03 เปเบฅเบฐเบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบš endpoint=86. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ›เบฑเบ™ hex.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เปเบฅเป‰เบง, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบ kernel ...

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

...เปเบฅเบฐเบ‚เบฝเบ™เปƒเบชเปˆเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ”เป‰เบงเบเบ—เบตเปˆเบขเบนเปˆ 0x03,

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

... เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเปˆเบฒเบ™เบ„เปเบฒเบ•เบญเบšเบˆเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ 0x86.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ„เปเบฒเบ•เบญเบšเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡:

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.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบเบดเปˆเบ‡เปƒเบซเบเปˆ! เบ›เปˆเบฝเบ™เบšเบฒเป‚เบ„เบ”เบฅเบฐเบšเบปเบšเป€เบ›เบฑเบ™ hex. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบฒเบ™เบเบถเบเบญเบปเบšเบฎเบปเบกเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบก.

เปเบกเปˆเบ™เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบŸเบตเบกเปเบง? เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ„เบทเบเบฑเบ™, เปเบ•เปˆเบกเบต nuance เป€เบ›เบฑเบ™.

เป‚เบ”เบเป„เบ”เป‰เป€เบญเบปเบฒเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเบฐเบžเบดเบš, เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ›เบฐเบกเบฒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš. เบ™เบตเป‰เปเบกเปˆเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบš XMODEM, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ—เบปเปˆเบงเป„เบ›: http://microsin.net/adminstuff/others/xmodem-protocol-overview.html เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบญเปˆเบฒเบ™เบกเบฑเบ™.

เบŠเบญเบเบซเบฒเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบญเบšเปเบกเปˆเบ™ 1024, เปเบฅเบฐเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เปเป‰เบกเบนเบ™ URB เปเบกเปˆเบ™ 64.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™ - 1024/64 โ€“ เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบš 16 เป€เบชเบฑเป‰เบ™โ€‹เปƒเบ™โ€‹เบ•เบฑเบ™โ€‹, เบญเปˆเบฒเบ™โ€‹เป„เบŸเบฅโ€‹เปŒ firmware 1 เบ•เบปเบงโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เปเบฅเบฐโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เป€เบ›เบฑเบ™ block เป„เบ”เป‰โ€‹. เบเบฒเบ™เบ•เบทเปˆเบก 1 เปเบ–เบงเปƒเบ™เบšเบฅเบฑเบญเบเบ—เบตเปˆเบกเบตเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบžเบดเป€เบชเบ” fd3e02 + เบ•เบปเบงเป€เบฅเบเบšเบฅเบฑเบญเบ.
เบ•เปเปˆเป„เบ› 14 เปเบ–เบงเบ–เบทเบเป€เบชเบตเบกเบ”เป‰เบงเบ fd25 +, เป‚เบ”เบเปƒเบŠเป‰ XMODEM.calc_crc() เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆ checksum เบ‚เบญเบ‡เบ—เปˆเบญเบ™เป„เบกเป‰เบ—เบฑเบ‡เบซเบกเบปเบ” (เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒ "FF โ€“ 1" เปเบกเปˆเบ™ CSUM) เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เปเบ–เบงเบ—เบต 16 เปเบกเปˆเบ™เป€เบชเบตเบก. เบเบฑเบš fd3e.

เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบญเปˆเบฒเบ™เป„เบŸเบฅเปŒเป€เบŸเบตเบกเปเบง, เบ•เบตเบ•เบฑเบ™, เบ•เบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบˆเบฒเบเปเบเปˆเบ™เปเบฅเบฐเบชเบปเปˆเบ‡เบกเบฑเบ™เป„เบ›เบซเบฒเบญเบธเบ›เบฐเบเบญเบ™. เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ. เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เป‚เบซเบกเบ”เป€เบŸเบตเบกเปเบง,
ะพั‚ะฟั€ะฐะฒะธะฒ ะตะผัƒ NEWAPP = โ€˜\xfd\x0a\x16\x4e\x2c\x4e\x45\x57\x41\x50\x50\x0dโ€™.
เบ—เบตเบกเบ™เบตเป‰เบกเบฒเบˆเบฒเบเปƒเบช?? เบˆเบฒเบเบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบšเบฅเบฑเบญเบเบ—เบฑเบ‡เปเบปเบ”เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เป„เบ”เป‰เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เบตเบ”เบˆเบณเบเบฑเบ” 64:

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบ”เบต, เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เปƒเบ™เป‚เบซเบกเบ”เบเบฐเบžเบดเบš 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, เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™: เบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบš.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เปˆเบญเบ™เป„เบกเป‰เบ—เบฑเบ‡เปเบปเบ”เป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบชเบณเป€เบฅเบฑเบ”เบเบฒเบ™เป‚เบญเบ™เบเป‰เบฒเบ END_TRANSFER = 'xfdx01x04'.

เบ”เบต, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ•เบฑเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบ—เปเบฒเบกเบฐเบ”เบฒ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป€เบŸเบตเบกเปเบงเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบต, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบˆเบฑเบ”เปเบ–เบšเบ„เบงเบฒเบกเบ„เบทเบšเบซเบ™เป‰เบฒเบœเปˆเบฒเบ™ tqdm.

เบงเบฝเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบซเบผเบทเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒ flashed เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เบกเบทเป‚เบ”เบเบšเปเปˆเบกเบตเบœเบนเป‰เบ‚เบฒเบ

เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบซเปเปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™เบชเบฐเบ„เบดเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบกเบฐเบซเบฒเบŠเบปเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™, เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบšเปˆเบญเบ™เป€เบเบฑเบšเป€เบ‡เบดเบ™เบŠเป‰เบฒเบฅเบปเบ‡, เปเบฅเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เป‚เบ”เบเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเปเบฅเบฐเบœเบปเบกเบขเบนเปˆเป€เบ—เบดเบ‡เบซเบปเบงเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบžเบฑเบ”เบ—เบฐเบ™เบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบเบฑเบ‡เบšเบฑเบ™เบฅเบธเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเปเบเบ™เป„เบ”เป‰เบ–เบทเบ reflashed เปเบฅเบฐ retrained เบชเบนเบ™เบเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบšเบ„เบธเบกเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เบšเปเบฅเบดเบชเบฑเบ”เป„เบ”เป‰เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเปเบฅเบฐเป€เบ‡เบดเบ™, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบญเบฑเบ™เบฅเป‰เปเบฒเบ„เปˆเบฒเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบงเบดเบชเบฐเบงเบฐเบเปเบฒเบเป‰เบญเบ™เบเบฑเบšเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ™เบตเป‰.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™