рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдирдорд╕реНрдХрд╛рд░.

рдЖрдореНрд╣реА, рд╡реНрд╣рд┐рдХреНрдЯрд░ рдЕрдБрдЯрд┐рдкреЛрд╡реНрд╣ рдЖрдгрд┐ рдЗрд▓реНрдпрд╛ рдЕрд▓реЗрд╢рд┐рди, рдЖрдЬ рдкрд╛рдпрдерди PyUSB рджреНрд╡рд╛рд░реЗ USB рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдЕрдиреБрднрд╡рд╛рдмрджреНрджрд▓ рдЖрдгрд┐ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдирд┐рдЕрд░рд┐рдВрдЧрдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ рдмреЛрд▓реВ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

prehistory

2019 рдордзреНрдпреЗ, рд░рд╢рд┐рдпрди рдлреЗрдбрд░реЗрд╢рдирдЪреНрдпрд╛ рд╕рд░рдХрд╛рд░рдЪрд╛ рдбрд┐рдХреНрд░реА рдХреНрд░рдорд╛рдВрдХ 224 тАЬрдУрд│рдЦрдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрд╕рд╣ рддрдВрдмрд╛рдЦреВ рдЙрддреНрдкрд╛рджрдирд╛рдВрд╡рд░ рд▓реЗрдмрд▓ рд▓рд╛рд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рдордВрдЬреБрд░реАрд╡рд░ рдЖрдгрд┐ рд╡рд╕реНрддреВрдВрдЪреНрдпрд╛ рдЕрднрд┐рд╕рд░рдгрд╛рд╡рд░ рджреЗрдЦрд░реЗрдЦ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рд░рд╛рдЬреНрдп рдорд╛рд╣рд┐рддреА рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рдУрд│рдЦ рд╕рд╛рдзрдирд╛рдВрд╕рд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд▓реЗрдмрд▓рд┐рдВрдЧрдЪреНрдпрд╛ рдЕрдзреАрди рдЖрд╣реЗ. рддрдВрдмрд╛рдЦреВ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рддтАЭ рд▓рд╛рдЧреВ рдЭрд╛рд▓рд╛.
рджрд╕реНрддрдРрд╡рдЬ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рдХреА 1 рдЬреБрд▓реИ 2019 рдкрд╛рд╕реВрди, рдЙрддреНрдкрд╛рджрдХрд╛рдВрдирд╛ рддрдВрдмрд╛рдЦреВрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреЕрдХрд╡рд░ рд▓реЗрдмрд▓ рд▓рд╛рд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдгрд┐ рдереЗрдЯ рд╡рд┐рддрд░рдХрд╛рдВрдирд╛ рд╣реА рдЙрддреНрдкрд╛рджрдиреЗ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рджрд╕реНрддрдРрд╡рдЬ (UDD) рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕реНрдЯреЛрдЕрд░реНрд╕, рдпрд╛рдордзреВрди, рдХреЕрд╢ рд░рдЬрд┐рд╕реНрдЯрд░рджреНрд╡рд╛рд░реЗ рд▓реЗрдмрд▓ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХреНрд░реАрдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рддрд╕реЗрдЪ, 1 рдЬреБрд▓реИ 2020 рдкрд╛рд╕реВрди, рд▓реЗрдмрд▓ рдирд╕рд▓реЗрд▓реНрдпрд╛ рддрдВрдмрд╛рдЦреВ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪреЗ рд╕рдВрдЪрд▓рди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рд╕рд░реНрд╡ рд╕рд┐рдЧрд╛рд░реЗрдЯ рдкреЕрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛рдореЕрдЯреНрд░рд┐рдХреНрд╕ рдмрд╛рд░рдХреЛрдбрдиреЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╢рд┐рд╡рд╛рдп - рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдореБрджреНрджрд╛ - рд╣реЗ рдирд┐рд╖реНрдкрдиреНрди рдЭрд╛рд▓реЗ рдХреА рдбреЗрдЯрд╛рдореЕрдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдорд╛рдиреНрдп рдирд╕реВрди рдЙрд▓рдЯ рдЕрд╕реЗрд▓. рдореНрд╣рдгрдЬреЗрдЪ, рдкрд╛рдВрдврд░реНтАНрдпрд╛рд╡рд░ рдХрд╛рд│рд╛ рдХреЛрдб рдирд╛рд╣реА, рддрд░ рдЙрд▓рдЯ.

рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реНрдХреЕрдирд░рдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЖрдгрд┐ рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рддреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХрд╛рдВрдирд╛ рд░рд┐рдлреНрд▓реЗрд╢/рдкреБрдиреНрд╣рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЕрдиреНрдпрдерд╛ рддреЗ рдпрд╛ рдмрд╛рд░рдХреЛрдбрд╕рд╣ рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдирд╛рд╣реАрдд. рдШрдЯрдирд╛рдВрдЪреНрдпрд╛ рдпрд╛ рд╡рд│рдгрд╛рдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рддреАрд╡реНрд░ рдбреЛрдХреЗрджреБрдЦреАрдЪреА рд╣рдореА рдорд┐рд│рд╛рд▓реА, рдХрд╛рд░рдг рдЖрдордЪреНрдпрд╛ рдХрдВрдкрдиреАрдЪреА рдмрд░реАрдЪ рд╕реНрдЯреЛрдЕрд░реНрд╕ рдЖрд╣реЗрдд рдЬреА рдореЛрдареНрдпрд╛ рдкреНрд░рджреЗрд╢рд╛рдд рд╡рд┐рдЦреБрд░рд▓реЗрд▓реА рдЖрд╣реЗрдд. рдЕрдиреЗрдХ рд╣рдЬрд╛рд░реЛ рд░реЛрдЦ рдиреЛрдВрджрдгреА тАУ рдЖрдгрд┐ рдЦреВрдк рдХрдореА рд╡реЗрд│.

рдХрд╛рдп рдХрд░рд╛рдпрдЪреЗ рд╣реЛрддреЗ? рджреЛрди рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд. рдкреНрд░рдердо: рдСрди-рд╕рд╛рдЗрдЯ рдЕрднрд┐рдпрдВрддреЗ рдореЕрдиреНрдпреБрдЕрд▓реА рд░рд┐рдлреНрд▓реЕрд╢ рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╕реНрдХреЕрдирд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛рдд. рджреБрд╕рд░реЗ: рдЖрдореНрд╣реА рджреВрд░рд╕реНрдердкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЛ рдЖрдгрд┐ рд╢рдХреНрдпрддреЛ рдПрдХрд╛рдЪ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реНрдХреЕрдирд░ рдХрд╡реНрд╣рд░ рдХрд░рддреЛ.

рдкрд╣рд┐рд▓рд╛ рдкрд░реНрдпрд╛рдп, рдЕрд░реНрдерд╛рддрдЪ, рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╡реНрд╣рддрд╛: рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдирд╛ рднреЗрдЯ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреИрд╕реЗ рдЦрд░реНрдЪ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓ рдЖрдгрд┐ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдгреЗ рдХрдареАрдг рд╣реЛрдИрд▓. рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рд▓реЛрдХ рдХрд╛рдо рдХрд░рддреАрд▓, рдореНрд╣рдгрдЬреЗрдЪ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрднрд╛рд╡реНрдпрдд: рдмрд░реНтАНрдпрд╛рдЪ рддреНрд░реБрдЯреА рдорд┐рд│рддреАрд▓ рдЖрдгрд┐ рдмрд╣реБрдзрд╛, рдЕрдВрддрд┐рдо рдореБрджрдд рдкреВрд░реНрдг рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

рджреБрд╕рд░рд╛ рдкрд░реНрдпрд╛рдп рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рд╛ рдЖрд╣реЗ, рдЬрд░ рдПрдХрд╛ рдЧреЛрд╖реНрдЯреАрд╕рд╛рдареА рдирд╛рд╣реА. рдХрд╛рд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рдВрдХрдбреЗ рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рд░рд┐рдореЛрдЯ рдлреНрд▓реЕрд╢рд┐рдВрдЧ рд╕рд╛рдзрдиреЗ рдирд╛рд╣реАрдд. рдЖрдгрд┐ рдбреЗрдбрд▓рд╛рдИрди рд╕рдВрдкрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдорд▓рд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдбреЛрдХреНрдпрд╛рдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛.

рдкреБрдвреЗ, рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдмрд┐рдпрди 9.x OS (рдЖрдордЪреА рд╕рд░реНрд╡ рд░реЛрдЦ рдиреЛрдВрджрдгреА рдбреЗрдмрд┐рдпрдирд╡рд░ рдЖрд╣реЗрдд) рд╕рд╛рдареА рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реНрдпрд╛ рд╕реНрдХреЕрдирд░рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдХрд╢реА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рддреЗ рд╕рд╛рдВрдЧреВ.

рдХреЛрдбреЗ рд╕реЛрдбрд╡рд╛: рд╕реНрдХреЕрдирд░ рдлреНрд▓реЕрд╢ рдХрд╕рд╛ рдХрд░рд╛рдпрдЪрд╛

рд╡реНрд╣рд┐рдХреНрдЯрд░ рдЕрдБрдЯрд┐рдкреЛрд╡реНрд╣ рд╕рд╛рдВрдЧрддрд╛рдд.

рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рдиреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реА рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреБрдХреНрддрддрд╛ Windows рдЕрдВрддрд░реНрдЧрдд рдЖрдгрд┐ рдлрдХреНрдд IE рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╕реНрдХреЕрдирд░ рдлреНрд▓реЕрд╢ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддреЗ.

рдЖрдордЪреА рдЯрд╛рд░реНрдЧреЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдмрд┐рдпрди рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рдбреЗрдмрд┐рдпрдирд╡рд░ рдпреВрдПрд╕рдмреА-рд░реАрдбрд┐рд░реЗрдХреНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдпреВрдПрд╕рдмреА-рд░реАрдбрд┐рд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рдпрдВрдЯ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ. usb-redirector рдпреБрдЯрд┐рд▓рд┐рдЯрд┐рдЬ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рд╕реНрдХреЕрдирд░рд▓рд╛ Linux рдорд╢реАрдирд╡рд░реВрди Windows рдорд╢реАрдирд╡рд░ рдкрд╛рдард╡рд▓реЗ.

рд╡рд┐рдВрдбреЛрдЬ рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рдХрдбреАрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдиреЗ рд╕реНрдХреЕрдирд░ рдкрд╛рд╣рд┐рд▓реЗ рдЖрдгрд┐ рддреЗ рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА рдкрд╣рд┐рд▓рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврд▓рд╛: рдХрд╛рд╣реАрд╣реА OS рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд╛рд╣реА, рд╣реА рдлреНрд▓реЕрд╢рд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреА рдмрд╛рдм рдЖрд╣реЗ.

рдареАрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рд╡рд┐рдВрдбреЛрдЬ рдорд╢реАрдирд╡рд░ рдлреНрд▓реЕрд╢рд┐рдВрдЧ рдЪрд╛рд▓рд╡рд▓реЗ рдЖрдгрд┐ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрдирд╡рд░реАрд▓ рдбрдВрдк рдХрд╛рдврд▓рд╛.

рдЖрдореНрд╣реА WireShark рдордзреНрдпреЗ рдбрдВрдк рднрд░рд▓рд╛ рдЖрдгрд┐... рджреБрдГрдЦреА рдЭрд╛рд▓реЛ (рдореА рдбрдВрдкрдЪреЗ рдХрд╛рд╣реА рддрдкрд╢реАрд▓ рд╡рдЧрд│реЗрди, рддреЗ рдХрд╛рд╣реА рд╕реНрд╡рд╛рд░рд╕реНрдп рдирд╛рд╣реАрдд).

рдбрдВрдкрдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд╛рдЦрд╡рд▓реЗ:

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдкрддреНрддреЗ 0000-0030, рд╡рд╛рдпрд░рд╢рд╛рд░реНрдХрдЪреНрдпрд╛ рдиреНрдпрд╛рдпрд╛рдиреЗ, USB рд╕реЗрд╡рд╛ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗрдд.

рдЖрдореНрд╣рд╛рд▓рд╛ рднрд╛рдЧ 0040-0070 рдордзреНрдпреЗ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ.

рдПрдХрд╛ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдлреНрд░реЗрдордордзреВрди MOCFT рдЕрдХреНрд╖рд░рд╛рдВрд╢рд┐рд╡рд╛рдп рдХрд╛рд╣реАрд╣реА рд╕реНрдкрд╖реНрдЯ рдирд╡реНрд╣рддреЗ. рд╣реЗ рд╡рд░реНрдг рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдЗрд▓рдордзреАрд▓ рд╡рд░реНрдг рдЖрд╣реЗрдд, рддрд╕реЗрдЪ рдлреНрд░реЗрдордЪреНрдпрд╛ рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рдЙрд░реНрд╡рд░рд┐рдд рд╡рд░реНрдг (рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдЗрд▓ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ):

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

fd 3e 02 01 fe рдЪрд┐рдиреНрд╣рд╛рдВрдЪрд╛ рдЕрд░реНрде рдХрд╛рдп рдЖрд╣реЗ, рдорд▓рд╛ рд╡реИрдпрдХреНрддрд┐рдХрд░рд┐рддреНрдпрд╛, рдЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдХрд▓реНрдкрдирд╛ рдирд╡реНрд╣рддреА.

рдореА рдЦрд╛рд▓реАрд▓ рдлреНрд░реЗрдо рдкрд╛рд╣рд┐рд▓реА (рд╕реЗрд╡рд╛ рдорд╛рд╣рд┐рддреА рдпреЗрдереЗ рдХрд╛рдврд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдЗрд▓ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ):

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдХрд╛рдп рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓реЗ? рдХреА рдкрд╣рд┐рд▓реЗ рджреЛрди рдмрд╛рдЗрдЯ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рд╕реНрдерд┐рд░ рдЖрд╣реЗрдд. рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдмреНрд▓реЙрдХреНрд╕рдиреА рдпрд╛рдЪреА рдкреБрд╖реНрдЯреА рдХреЗрд▓реА, рдкрд░рдВрддреБ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдмреНрд▓реЙрдХ рд╕рдВрдкрдгреНрдпрд╛рдкреВрд░реНрд╡реА:

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╣реА рдлреНрд░реЗрдо рджреЗрдЦреАрд▓ рд╕реНрддрдмреНрдз рдХрд░рдгрд╛рд░реА рд╣реЛрддреА, рдХрд╛рд░рдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдмрджрд▓рд▓рд╛ рд╣реЛрддрд╛ (рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реЗрд▓рд╛) рдЖрдгрд┐ рд╡рд┐рдЪрд┐рддреНрд░рдкрдгреЗ, рдлрд╛рдЗрд▓рдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рд╣реЛрддрд╛. рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдмрд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рд╡рд░реВрди 1024 рдмрд╛рдЗрдЯреНрд╕ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдЭрд╛рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. рдорд▓рд╛ рдкреБрдиреНрд╣рд╛ рдЙрд░рд▓реЗрд▓реНрдпрд╛ рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рдЕрд░реНрде рдХрд│рд▓рд╛ рдирд╛рд╣реА.

рд╕рд░реНрд╡ рдкреНрд░рдердо, рдЬреБрдиреЗ рдмреАрдмреАрдПрд╕ рдЯреЛрдкрдгрдирд╛рд╡ рдореНрд╣рдгреВрди, рдореА рдорд╛рдирдХ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХреЗрд▓реЗ. 1024 рдмрд╛рдЗрдЯ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдХреЛрдгрддрд╛рд╣реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдирд╛рд╣реА. рдореА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА рдЖрдгрд┐ 1K Xmodem рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдордзреНрдпреЗ рдЖрд▓реЛ. рдпрд╛рдиреЗ 1024 рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА, рдкрд░рдВрддреБ рд╕рд╛рд╡рдзрдЧрд┐рд░реАрдиреЗ: рдкреНрд░рдердо рдлрдХреНрдд 128, рдЖрдгрд┐ рдХреЗрд╡рд│ рддреНрд░реБрдЯреА рдирд╕рд▓реНрдпрд╛рд╕, рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдиреЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдмрд╛рдЗрдЯреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврд╡рд▓реА. рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рд▓рдЧреЗрдЪ резрежреирек рдмрд╛рдЗрдЯреНрд╕рдЪреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдЭрд╛рд▓реЗ. рдореА рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдгрд┐ рд╡рд┐рд╢реЗрд╖рддрдГ рдПрдХреНрд╕-рдореЙрдбреЗрдордЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдореЛрдбреЗрдордЪреЗ рджреЛрди рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ.

рдкреНрд░рдердо, CRC8 рд╕рдорд░реНрдердирд╛рд╕рд╣ XMODEM рдкреЕрдХреЗрдЬ рд╕реНрд╡рд░реВрдк (рдореВрд│ XMODEM):

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, CRC16 рд╕рдорд░реНрдерди (XmodemCRC) рд╕рд╣ XMODEM рдкреЕрдХреЗрдЯ рд╕реНрд╡рд░реВрдк:

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

SOH, рдкреЕрдХреЗрдЬ рдирдВрдмрд░ рдЖрдгрд┐ CRC рдЖрдгрд┐ рдкреЕрдХреЗрдЬрдЪреА рд▓рд╛рдВрдмреА рд╡рдЧрд│рддрд╛ рд╣реЗ рд╕рдорд╛рди рджрд┐рд╕рддреЗ.

рдореА рджреБрд╕рд▒реНрдпрд╛ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд╕реБрд░реВрд╡рд╛рддреАрд╕ рдкрд╛рд╣рд┐рд▓реЗ (рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдЗрд▓ рдкрд╛рд╣рд┐рд▓реА, рдкрд░рдВрддреБ рдЖрдзреАрдЪ 1024 рдмрд╛рдЗрдЯреНрд╕рдиреЗ рдЗрдВрдбреЗрдВрдЯ рдХреЗрд▓реЗрд▓реА):

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдореА рдкрд░рд┐рдЪрд┐рдд рд╣реЗрдбрд░ fd 3e 02 рдкрд╛рд╣рд┐рд▓реЗ, рдкрд░рдВрддреБ рдкреБрдвреАрд▓ рджреЛрди рдмрд╛рдЗрдЯреНрд╕ рдЖрдзреАрдЪ рдмрджрд▓рд▓реЗ рд╣реЛрддреЗ: рддреЗ 01 fe рд╣реЛрддреЗ, рдЖрдгрд┐ 02 fd рдЭрд╛рд▓реЗ. рдордЧ рдорд╛рдЭреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рджреБрд╕рд░рд╛ рдмреНрд▓реЙрдХ рдЖрддрд╛ 02 рдХреНрд░рдорд╛рдВрдХрд╛рд╡рд░ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдорд▓рд╛ рд╕рдордЬрд▓реЗ: рдорд╛рдЭреНрдпрд╛ рд╕рдореЛрд░ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдмреНрд▓реЙрдХрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА. рдкрд╣рд┐рд▓рд╛ 1024 рдЧрд┐рдпрд░ 01 рдЖрд╣реЗ, рджреБрд╕рд░рд╛ 02 рдЖрд╣реЗ, рддрд┐рд╕рд░рд╛ 03 рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╕реЗрдЪ (рдкрд░рдВрддреБ рд╣реЗрдХреНрд╕рдордзреНрдпреЗ, рдирдХреНрдХреАрдЪ). рдкрдг fe рддреЗ fd рдмрджрд▓ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп? рдбреЛрд│реНрдпрд╛рдВрдиреА 1 рдиреЗ рдШрдЯ рдкрд╛рд╣рд┐рд▓реА, рдореЗрдВрджреВрдиреЗ рдЖрдард╡рдг рдХрд░реВрди рджрд┐рд▓реА рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ 0 рд╡рд░реВрди рдореЛрдЬрддрд╛рдд, 1 рдирд╛рд╣реА. рдкрдг рдордЧ рдкрд╣рд┐рд▓рд╛ рдмреНрд▓реЙрдХ 1 рдХрд╛ рдЖрд╣реЗ, 0 рдирд╛рд╣реА? рдорд▓рд╛ рдЕрдЬреВрдирд╣реА рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рд╕рд╛рдкрдбрд▓реЗрд▓реЗ рдирд╛рд╣реА. рдкрдг рдорд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рджреБрд╕рд░рд╛ рдмреНрд▓реЙрдХ рдХрд╕рд╛ рдореЛрдЬрд▓рд╛ рдЬрд╛рддреЛ. рджреБрд╕рд░рд╛ рдмреНрд▓реЙрдХ FF - (рд╡рдЬрд╛) рдкрд╣рд┐рд▓реНрдпрд╛ рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдХрд╛рд╣реА рдирд╛рд╣реА. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рджреБрд╕рд░рд╛ рдмреНрд▓реЙрдХ = 02 (FF-02) = 02 FD рдореНрд╣рдгреВрди рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛. рдбрдВрдкрдЪреНрдпрд╛ рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд╛рдЪрдирд╛рдиреЗ рдорд╛рдЭреНрдпрд╛ рдЕрдВрджрд╛рдЬрд╛рдЪреА рдкреБрд╖реНрдЯреА рдХреЗрд▓реА.

рддреНрдпрд╛рдирдВрддрд░ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рдирдЪреЗ рдЦрд╛рд▓реАрд▓ рдЪрд┐рддреНрд░ рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реЗ:

рдкреНрд░рд╕рд╛рд░рдгрд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд
fd 3e 02 - рдкреНрд░рд╛рд░рдВрдн рдХрд░рд╛
01 FE - рдЯреНрд░рд╛рдиреНрд╕рдорд┐рд╢рди рдХрд╛рдЙрдВрдЯрд░
рд╣рд╕реНрддрд╛рдВрддрд░рдг (34 рдмреНрд▓реЙрдХ, 1024 рдмрд╛рдЗрдЯ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд)
fd 3e 1024 рдмрд╛рдЗрдЯреНрд╕ рдбреЗрдЯрд╛ (30 рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реЗрд▓рд╛).
рдкреНрд░рд╕рд╛рд░рдг рд╕рдорд╛рдкреНрдд
fd 25

рдЙрд░реНрд╡рд░рд┐рдд рдбреЗрдЯрд╛ 1024 рдмрд╛рдЗрдЯрд╢реА рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рд╛рдпрдЪрд╛ рдЖрд╣реЗ.

рдмреНрд▓реЙрдХ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдПрдВрдб рдлреНрд░реЗрдо рдХрд╢реА рджрд┐рд╕рддреЗ:

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

fd 25 - рдмреНрд▓реЙрдХ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╕рдорд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд┐рдЧреНрдирд▓. рдкреБрдвреАрд▓ 2f 52 - рдЙрд░реНрд╡рд░рд┐рдд рдлрд╛рдЗрд▓ 1024 рдмрд╛рдЗрдЯреНрд╕ рдкрд░реНрдпрдВрдд рдЖрдХрд╛рд░рд╛рдд рдЖрд╣реЗ. 2f 52, рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдиреБрд╕рд╛рд░, 16-рдмрд┐рдЯ CRC рдЪреЗрдХрд╕рдо рдЖрд╣реЗ.

рдЬреБрдиреНрдпрд╛ рдХрд╛рд│рд╛рд╕рд╛рдареА, рдореА C рдордзреНрдпреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╡рд▓рд╛ рдЬреНрдпрд╛рдиреЗ рдлрд╛рдЗрд▓рдордзреВрди 1024 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛рдврд▓реЗ рдЖрдгрд┐ 16-рдмрд┐рдЯ CRC рдЪреА рдЧрдгрдирд╛ рдХреЗрд▓реА. рд╣рд╛ 16-рдмрд┐рдЯ рд╕реАрдЖрд░рд╕реА рдирд╛рд╣реА рд╣реЗ рдкреНрд░реЛрдЧреНрд░реЕрдо рд▓рд╛рдБрдЪ рдХреЗрд▓реНрдпрд╛рдиреЗ рджрд┐рд╕реВрди рдЖрд▓реЗ. рдкреБрдиреНрд╣рд╛ рд╕реНрддрдмреНрдз - рд╕реБрдорд╛рд░реЗ рддреАрди рджрд┐рд╡рд╕. рд╣рд╛ рд╕рд░реНрд╡ рд╡реЗрд│ рдореА рдЪреЗрдХрд╕рдо рдирд╕рд▓реНрдпрд╛рд╕ рдХрд╛рдп рдЕрд╕реВ рд╢рдХрддреЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рд╣реЛрддреЛ. рдЗрдВрдЧреНрд░рдЬреА-рднрд╛рд╖реЗрдЪреНрдпрд╛ рд╕рд╛рдЗрдЯреНрд╕рдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рддрд╛рдирд╛, рдорд▓рд╛ рдЖрдврд│рд▓реЗ рдХреА рдПрдХреНрд╕-рдореЙрдбреЗрдо рд╕реНрд╡рддрдГрдЪреА рдЪреЗрдХрд╕рдо рдЧрдгрдирд╛ рд╡рд╛рдкрд░рддреЗ - CRC-CCITT (XModem). рдорд▓рд╛ рдпрд╛ рдЧрдгрдиреЗрдЪреА рдХреЛрдгрддреАрд╣реА C рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдврд│рд▓реА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдорд▓рд╛ рдПрдХ рд╕рд╛рдЗрдЯ рд╕рд╛рдкрдбрд▓реА рдЬреНрдпрд╛рдиреЗ рдпрд╛ рдЪреЗрдХрд╕рдордЪреА рдСрдирд▓рд╛рдЗрди рдЧрдгрдирд╛ рдХреЗрд▓реА. рдорд╛рдЭреНрдпрд╛ рдлрд╛рдЗрд▓рдЪреЗ 1024 рдмрд╛рдЗрдЯреНрд╕ рд╡реЗрдм рдкреГрд╖реНрдард╛рд╡рд░ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, рд╕рд╛рдЗрдЯрдиреЗ рдорд▓рд╛ рдПрдХ рдЪреЗрдХрд╕рдо рджрд╛рдЦрд╡рд▓рд╛ рдЬреЛ рдлрд╛рдЗрд▓рдордзреАрд▓ рдЪреЗрдХрд╕рдорд╢реА рдкреВрд░реНрдгрдкрдгреЗ рдЬреБрд│рддреЛ.

рд╣реБрд░реНрд░реЗ! рд╢реЗрд╡рдЯрдЪреЗ рдХреЛрдбреЗ рд╕реЛрдбрд╡рд▓реЗ рдЧреЗрд▓реЗ, рдЖрддрд╛ рдорд▓рд╛ рдорд╛рдЭреЗ рд╕реНрд╡рддрдГрдЪреЗ рдлрд░реНрдорд╡реЗрдЕрд░ рдмрдирд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ. рдкреБрдвреЗ, рдореА рдорд╛рдЭреЗ рдЬреНрдЮрд╛рди (рдЖрдгрд┐ рддреЗ рдлрдХреНрдд рдорд╛рдЭреНрдпрд╛ рдбреЛрдХреНрдпрд╛рддрдЪ рд░рд╛рд╣рд┐рд▓реЗ) рдЗрд▓реНрдпрд╛рдХрдбреЗ рджрд┐рд▓реЗ, рдЬреЛ Python рдпрд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреВрд▓рдХрд┐рдЯрд╢реА рдкрд░рд┐рдЪрд┐рдд рдЖрд╣реЗ.

рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рддрдпрд╛рд░ рдХрд░рдгреЗ

рдЗрд▓реНрдпрд╛ рдЕрд▓реЗрд╢рд┐рди рд╕рд╛рдВрдЧрддрд╛рдд.

рдпреЛрдЧреНрдп рд╕реВрдЪрдирд╛ рдорд┐рд│рд╛рд▓реНрдпрд╛рдореБрд│реЗ, рдореА рдЦреВрдк тАЬрдЖрдирдВрджреАтАЭ рдЭрд╛рд▓реЛ.

рдХреБрдареВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛рдпрдЪреА? рдмрд░реЛрдмрд░ рдЖрд╣реЗ, рд╕реБрд░реБрд╡рд╛рддреАрдкрд╛рд╕реВрди. яБК рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯрд╡рд░реВрди рдбрдВрдк рдШреЗрдгреНрдпрд╛рдкрд╛рд╕реВрди.

USB-pcap рд▓рд╛рдБрдЪ рдХрд░рд╛ https://desowin.org/usbpcap/tour.html

рдЬреНрдпрд╛ рдкреЛрд░реНрдЯрд▓рд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ рддреЗ рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ рдлрд╛рдИрд▓ рдЬрд┐рдереЗ рдЖрдореНрд╣реА рдбрдВрдк рд╕реЗрд╡реНрд╣ рдХрд░реВ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдЖрдореНрд╣реА рд╕реНрдХреЕрдирд░рд▓рд╛ рдорд╢реАрдирд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рддреЛ рдЬреЗрдереЗ Windows рд╕рд╛рдареА рдореВрд│ EZConfigScanning рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рддреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд▓рд╛ рдХрдорд╛рдВрдб рдкрд╛рдард╡рдгреНрдпрд╛рдЪреА рд╡рд╕реНрддреВ рд╕рд╛рдкрдбрддреЗ. рдкрдг рд╕рдВрдШрд╛рдВрдЪреЗ рдХрд╛рдп? рдореА рддреЗ рдХреБрдареЗ рдорд┐рд│рд╡реВ рд╢рдХрддреЛ?
рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рдЙрдкрдХрд░рдгреЗ рдЖрдкреЛрдЖрдк рдкреЛрд▓ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд (рдЖрдореНрд╣реА рд╣реЗ рдереЛрдбреНрдпрд╛ рд╡реЗрд│рд╛рдиреЗ рдкрд╛рд╣реВ). рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рдЙрдкрдХрд░рдгрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдЧрджрдкрддреНрд░рд╛рдВрдордзреВрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмрд╛рд░рдХреЛрдб рд╣реЛрддреЗ. DEFALT. рд╣реА рдЖрдордЪреА рдЯреАрдо рдЖрд╣реЗ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. wireshark рджреНрд╡рд╛рд░реЗ dump.pcap рдЙрдШрдбрд╛.

EZConfigScanning рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛ рдмреНрд▓реЙрдХ рдХрд░рд╛. рдЬреНрдпрд╛ рдард┐рдХрд╛рдгреА рддреБрдореНрд╣рд╛рд▓рд╛ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рд▓рд╛рд▓ рд░рдВрдЧрд╛рдд рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╣реЗ рд╕рд░реНрд╡ рдкреНрд░рдердордЪ рдмрдШреВрди рдорди рд╣рд░рдкрд▓реЗ. рдкреБрдвреЗ рдХреБрдареЗ рдЦреЛрджрд╛рдпрдЪреЗ рддреЗ рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА.

рдереЛрдбреЗрд╕реЗ рд╡рд┐рдЪрд╛рд░рдордВрдерди рдЖрдгрд┐ рдЖрдгрд┐... рдЕрд╣рд╛рд╣рд╛! рдбрдВрдк рдордзреНрдпреЗ рдмрд╛рд╣реЗрд░ - рдЖрд╣реЗ inрдЖрдгрд┐ in рддреЛ рдмрд╛рд╣реЗрд░.

рдореА URB_INTERRUPT рдХрд╛рдп рдЖрд╣реЗ рддреЗ рдЧреБрдЧрд▓ рдХреЗрд▓реЗ. рдорд▓рд╛ рдХрд│рд▓реЗ рдХреА рд╣реА рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рдкрджреНрдзрдд рдЖрд╣реЗ. рдЖрдгрд┐ рдЕрд╢рд╛ 4 рдкрджреНрдзрддреА рдЖрд╣реЗрдд: рдирд┐рдпрдВрддреНрд░рдг, рд╡реНрдпрддреНрдпрдп, рдЖрдпрд╕реЛрдХреНрд░реЛрдирд╕, рдмрд▓реНрдХ. рдЖрдкрдг рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╡рд╛рдЪреВ рд╢рдХрддрд╛.

рдЖрдгрд┐ USB рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреАрд▓ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрддреНрддреЗ рдПрдХрддрд░ тАЬlsusb тАУvтАЭ рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рдХрд┐рдВрд╡рд╛ pyusb рд╡рд╛рдкрд░реВрди рдорд┐рд│рд╡рддрд╛ рдпреЗрддрд╛рдд.

рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рд╡реНрд╣реАрдЖрдпрдбреАрд╕рд╣ рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгреЗ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддреБрдореНрд╣реА рд╡рд┐рд╢реЗрд╖рддрдГ VID:PID рджреНрд╡рд╛рд░реЗ рд╢реЛрдзреВ рд╢рдХрддрд╛.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рддрд░, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрд╡рд╢реНрдпрдХ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ: P_INFO рдХрдорд╛рдВрдб. рдХрд┐рдВрд╡рд╛ DEFALT, рдХрдорд╛рдВрдбреНрд╕ рдПрдВрдбрдкреЙрдЗрдВрдЯ=03 рдХреБрдареЗ рд▓рд┐рд╣рд╛рдпрдЪреНрдпрд╛ рдЖрдгрд┐ рдПрдВрдбрдкреЙрдЗрдВрдЯ=86 рдкреНрд░рддрд┐рд╕рд╛рдж рдХреБрдареЗ рдорд┐рд│рд╡рд╛рдпрдЪрд╛ рд╣реЗ рдкрддреНрддреЗ. рдлрдХреНрдд рдХрдорд╛рдВрдбреНрд╕ рд╣реЗрдХреНрд╕рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдЖрдореНрд╣рд╛рд▓рд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЖрдзреАрдЪ рд╕рд╛рдкрдбрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреЗ рдХрд░реНрдирд▓рдордзреВрди рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реВрдпрд╛...

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

...рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдмрд┐рдВрджреВрд╡рд░ 0x03 рдкрддреНрддреНрдпрд╛рд╕рд╣ рд▓рд┐рд╣рд╛,

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

... рдЖрдгрд┐ рдирдВрддрд░ рдкрддреНрддрд╛ 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 рдордзреНрдпреЗ рдкрд╛рд╣рддреЛ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдЫрд╛рди! рд╕рд┐рд╕реНрдЯрдо рдмрд╛рд░рдХреЛрдб рд╣реЗрдХреНрд╕рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рд╛. рддреЗрдЪ, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдпрд╛рд░ рдЖрд╣реЗ.

рдлрд░реНрдорд╡реЗрдЕрд░ рдмрджреНрджрд▓ рдХрд╛рдп? рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕рдорд╛рди рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рджрд┐рд╕рддреЗ, рдкрд░рдВрддреБ рдПрдХ рд╕реВрдХреНрд╖реНрдорддрд╛ рдЖрд╣реЗ.

рдлреНрд▓реЕрд╢рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╕рдВрдкреВрд░реНрдг рдбрдВрдк рдШреЗрддрд▓реНрдпрд╛рд╡рд░, рдЖрдореНрд╣реА рдХрд╛рдп рд╣рд╛рддрд╛рд│рдд рдЖрд╣реЛрдд рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдВрджрд╛рдЬреЗ рд╕рдордЬрд▓реЗ. рдпреЗрдереЗ XMODEM рдмрджреНрджрд▓рдЪрд╛ рдПрдХ рд▓реЗрдЦ рдЖрд╣реЗ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рдд рдЕрд╕рд▓рд╛ рддрд░реАрд╣реА рд╣рд╛ рд╕рдВрд╡рд╛рдж рдХрд╕рд╛ рд╣реЛрддреЛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рд╣реЛрддрд╛: http://microsin.net/adminstuff/others/xmodem-protocol-overview.html рдореА рддреЗ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ.

рдбрдВрдкрдХрдбреЗ рдкрд╛рд╣рддрд╛рдирд╛, рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА рдлреНрд░реЗрдордЪрд╛ рдЖрдХрд╛рд░ 1024 рдЖрд╣реЗ рдЖрдгрд┐ URB-рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ 64 рдЖрд╣реЗ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдореНрд╣рдгреВрди - 1024/64 - рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рдмреНрд▓реЙрдХрдордзреНрдпреЗ 16 рдУрд│реА рдорд┐рд│рддрд╛рдд, рдлрд░реНрдорд╡реЗрдЕрд░ рдлрд╛рдЗрд▓ рдПрдХрд╛ рд╡реЗрд│реА 1 рдХреЕрд░реЗрдХреНрдЯрд░ рд╡рд╛рдЪрд╛ рдЖрдгрд┐ рдмреНрд▓реЙрдХ рддрдпрд╛рд░ рдХрд░рд╛. рд╡рд┐рд╢реЗрд╖ рдЕрдХреНрд╖рд░реЗ fd1e3 + рдмреНрд▓реЙрдХ рдХреНрд░рдорд╛рдВрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмреНрд▓реЙрдХрдордзреНрдпреЗ 02 рдУрд│ рдкреВрд░рдХ рдХрд░рдгреЗ.
рдкреБрдвреАрд▓ 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 рдлреНрд▓реЕрд╢рд┐рдВрдЧ рдореЛрдбрдордзреАрд▓ рд╕реНрдХреЕрдирд░ рд╣реЗрдХреНрд╕ рд╕реНрд╡реАрдХрд╛рд░рдд рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдУрд│ 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 рджреНрд╡рд╛рд░реЗ рдкреНрд░рдЧрддреА рдмрд╛рд░ рдЖрдпреЛрдЬрд┐рдд рдХрд░реВ.

рд╡рд┐рдХрд╕рдХрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп, рдХрд┐рдВрд╡рд╛ рдЖрдореНрд╣реА рд╡рд┐рдХреНрд░реЗрддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣рд╛рддрд╛рдиреЗ рдкрдХрдбрд▓реЗрд▓реЗ рд╕реНрдХреЕрдирд░ рдХрд╕реЗ рдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ

рдЦрд░рдВ рддрд░, рд╣реА рд▓рд╣рд╛рди рдЧреЛрд╖реНрдЯреАрдВрдЪреА рдмрд╛рдм рдЖрд╣реЗ. рдЬреЗ рдХрд╛рд╣реА рдЙрд░рд▓реЗ рдЖрд╣реЗ рддреЗ рдореНрд╣рдгрдЬреЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реЗрд│реА рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдкреНрд░рддрд┐рдХреГрддреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рд╕реЛрд▓реНрдпреВрд╢рди рдЧреБрдВрдбрд╛рд│рдгреЗ, рдЬреЗрдгреЗрдХрд░реВрди рдЪреЗрдХрдЖрдЙрдЯреНрд╕рд╡рд░ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдордВрдж рд╣реЛрдК рдирдпреЗ рдЖрдгрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдЬреЛрдбреВ рдирдпреЗ.

рдкрд░рд┐рдгрд╛рдо

рдЖрдордЪреНрдпрд╛ рдбреЛрдХреНрдпрд╛рд╡рд░ рдмрд░рд╛рдЪ рд╡реЗрд│ рдЖрдгрд┐ рдореЗрд╣рдирдд рдЖрдгрд┐ рдХреЗрд╕ рдЦрд░реНрдЪ рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣реА рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдЙрдкрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░реВ рд╢рдХрд▓реЛ рдЖрдгрд┐ рдЕрдВрддрд┐рдо рдореБрджрдд рджреЗрдЦреАрд▓ рдкреВрд░реНрдг рдХреЗрд▓реА. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╕реНрдХреЕрдирд░ рдЖрддрд╛ рд░реАрдлреНрд▓реЕрд╢ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдордзреНрдпрднрд╛рдЧреА рдкреБрдиреНрд╣рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд, рдЖрдореНрд╣реА рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЛ. рдХрдВрдкрдиреАрдиреЗ рд╡реЗрд│ рдЖрдгрд┐ рдкреИрд╢рд╛рдЪреА рдмрдЪрдд рдХреЗрд▓реА рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдиреАрдЕрд░рд┐рдВрдЧ рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдЕрдирдореЛрд▓ рдЕрдиреБрднрд╡ рдорд┐рд│рд╛рд▓рд╛.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛