ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืฉืœื•ื ืœื›ื•ืœื.

ืื ื—ื ื•, ื•ื™ืงื˜ื•ืจ ืื ื˜ื™ืคื•ื‘ ื•ืื™ืœื™ื” ืืœืฉื™ืŸ, ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ื”ื ื™ืกื™ื•ืŸ ืฉืœื ื• ื‘ืขื‘ื•ื“ื” ืขื ื”ืชืงื ื™ USB ื“ืจืš Python PyUSB ื•ืงืฆืช ืขืœ ื”ื ื“ืกื” ืœืื—ื•ืจ.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืคืจื”ื™ืกื˜ื•ืจื™ื”

ื‘ืฉื ืช 2019, ืฆื• ืฉืœ ืžืžืฉืœืช ื”ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช ืžืก' 224 "ืขืœ ืื™ืฉื•ืจ ื”ื›ืœืœื™ื ืœืกื™ืžื•ืŸ ืžื•ืฆืจื™ ื˜ื‘ืง ืขื ืืžืฆืขื™ ื–ื™ื”ื•ื™ ื•ืชื›ื•ื ื•ืช ืฉืœ ื™ื™ืฉื•ื ืžืขืจื›ืช ืžื™ื“ืข ืžืžืœื›ืชื™ืช ืœื ื™ื˜ื•ืจ ืžื—ื–ื•ืจ ื”ืกื—ื•ืจื•ืช ื”ื›ืคื•ืคื•ืช ืœืชื™ื•ื’ ื—ื•ื‘ื” ืขื ืืžืฆืขื™ ื–ื™ื”ื•ื™ ื‘ื™ื—ืก ืœืžื•ืฆืจื™ ื˜ื‘ืง" ื ื›ื ืกื• ืœืชื•ืงืฃ.
ื”ืžืกืžืš ืžืกื‘ื™ืจ ื›ื™ ื”ื—ืœ ืž-1 ื‘ื™ื•ืœื™ 2019, ื”ื™ืฆืจื ื™ื ืžื—ื•ื™ื‘ื™ื ืœืกืžืŸ ื›ืœ ื—ืคื™ืกืช ื˜ื‘ืง. ื•ืžืคื™ืฆื™ื ื™ืฉื™ืจื™ื ื—ื™ื™ื‘ื™ื ืœืงื‘ืœ ืžื•ืฆืจื™ื ืืœื” ืขื ื‘ื™ืฆื•ืข ืžืกืžืš ื”ืขื‘ืจื” ืื•ื ื™ื‘ืจืกืœื™ (UDD). ื—ื ื•ื™ื•ืช, ื‘ืชื•ืจืŸ, ืฆืจื™ื›ื•ืช ืœืจืฉื•ื ืืช ืžื›ื™ืจืช ื”ืžื•ืฆืจื™ื ื”ืžืกื•ืžื ื™ื ื“ืจืš ื”ืงื•ืคื”.

ื›ืžื• ื›ืŸ, ื”ื—ืœ ืž-1 ื‘ื™ื•ืœื™ 2020 ืืกื•ืจื” ืชืคื•ืฆื” ืฉืœ ืžื•ืฆืจื™ ื˜ื‘ืง ืœืœื ืชื•ื•ื™ืช. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื›ืœ ื—ืคื™ืกื•ืช ื”ืกื™ื’ืจื™ื•ืช ื—ื™ื™ื‘ื•ืช ืœื”ื™ื•ืช ืžืกื•ืžื ื•ืช ื‘ื‘ืจืงื•ื“ Datamatrix ืžื™ื•ื—ื“. ื™ืชืจื” ืžื›ืš - ื ืงื•ื“ื” ื—ืฉื•ื‘ื” - ื”ืชื‘ืจืจ ืฉื”-Datamatrix ืœื ื™ื”ื™ื” ืจื’ื™ืœ, ืืœื ื”ืคื•ืš. ื›ืœื•ืžืจ, ืœื ืงื•ื“ ืฉื—ื•ืจ ืขืœ ื’ื‘ื™ ืœื‘ืŸ, ืืœื ืœื”ื™ืคืš.

ื‘ื“ืงื ื• ืืช ื”ืกื•ืจืงื™ื ืฉืœื ื•, ื•ื”ืชื‘ืจืจ ืฉืœืจื•ื‘ื ื™ืฉ ืฆื•ืจืš ืœืจืขื ืŸ/ืœื”ื›ืฉื™ืจ ืžื—ื“ืฉ, ืื—ืจืช ื”ื ืคืฉื•ื˜ ืœื ืžืกื•ื’ืœื™ื ืœืขื‘ื•ื“ ื›ืจื’ื™ืœ ืขื ื”ื‘ืจืงื•ื“ ื”ื–ื”. ื”ืฉืชืœืฉืœื•ืช ื”ืขื ื™ื™ื ื™ื ื”ื–ื• ื”ื‘ื˜ื™ื—ื” ืœื ื• ื›ืื‘ ืจืืฉ ืงืฉื”, ื›ื™ ืœื—ื‘ืจื” ืฉืœื ื• ื™ืฉ ื”ืจื‘ื” ื—ื ื•ื™ื•ืช ื”ืคื–ื•ืจื•ืช ืขืœ ืคื ื™ ืฉื˜ื— ืขืฆื•ื. ื›ืžื” ืขืฉืจื•ืช ืืœืคื™ ืงื•ืคื•ืช ืจื•ืฉืžื•ืช - ื•ืžืขื˜ ืžืื•ื“ ื–ืžืŸ.

ืžื” ื”ื™ื” ืฆืจื™ืš ืœืขืฉื•ืช? ื™ืฉื ืŸ ืฉืชื™ ืืคืฉืจื•ื™ื•ืช. ืจืืฉื™ืช: ื”ืžื”ื ื“ืกื™ื ื‘ืืชืจ ืžืจืขื ื ื™ื ืžื—ื“ืฉ ื•ืžื›ื•ื•ื ื™ื ืืช ื”ืกื•ืจืงื™ื ื‘ืื•ืคืŸ ื™ื“ื ื™. ืฉื ื™ืช: ืื ื• ืขื•ื‘ื“ื™ื ืžืจื—ื•ืง ื•ืจืฆื•ื™, ืžื›ืกื™ื ืกื•ืจืงื™ื ืจื‘ื™ื ื‘ื•-ื–ืžื ื™ืช ื‘ืื™ื˜ืจืฆื™ื” ืื—ืช.

ื”ืืคืฉืจื•ืช ื”ืจืืฉื•ื ื”, ื›ืžื•ื‘ืŸ, ืœื ื”ืชืื™ืžื” ืœื ื•: ื ืฆื˜ืจืš ืœื”ื•ืฆื™ื ื›ืกืฃ ืขืœ ื‘ื™ืงื•ืจ ืžื”ื ื“ืกื™ื, ื•ื‘ืžืงืจื” ื”ื–ื” ื™ื”ื™ื” ืงืฉื” ืœืฉืœื•ื˜ ื•ืœืชืื ืืช ื”ืชื”ืœื™ืš. ืื‘ืœ ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ ื”ื•ื ืฉืื ืฉื™ื ื™ืขื‘ื“ื•, ื›ืœื•ืžืจ, ืื ื—ื ื• ืขืœื•ืœื™ื ืœืงื‘ืœ ื”ืจื‘ื” ืฉื’ื™ืื•ืช, ื•ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืœื ื ืขืžื•ื“ ื‘ื“ื“-ืœื™ื™ืŸ.

ื”ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื” ื˜ื•ื‘ื” ืœื›ื•ืœื, ืื ืœื ืœื“ื‘ืจ ืื—ื“. ืœื—ืœืง ืžื”ืกืคืงื™ื ืœื ื”ื™ื• ืืช ื›ืœื™ ื”ื”ื‘ื”ื•ื‘ ื”ืžืจื•ื—ืงื™ื ืฉื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืขื‘ื•ืจ ื›ืœ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื”ื ื“ืจืฉื•ืช. ื•ืžื›ื™ื•ื•ืŸ ืฉื”ืžื•ืขื“ื™ื ืื–ืœื•, ื ืืœืฆืชื™ ืœื—ืฉื•ื‘ ื‘ืจืืฉ ืฉืœื™.

ืœืื—ืจ ืžื›ืŸ, ื ืกืคืจ ืœื›ื ื›ื™ืฆื“ ืคื™ืชื—ื ื• ื›ืœื™ื ืขื‘ื•ืจ ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืขื‘ื•ืจ ืžืขืจื›ืช ื”ื”ืคืขืœื” Debian 9.x (ื›ืœ ื”ืงื•ืคื•ืช ืฉืœื ื• ื ืžืฆืื•ืช ื‘ื“ื‘ื™ืืŸ).

ืคืชื•ืจ ืืช ื”ื—ื™ื“ื”: ืื™ืš ืžื‘ื–ืงื™ื ืกื•ืจืง

ืžื“ื•ื•ื— ื•ื™ืงื˜ื•ืจ ืื ื˜ื™ืคื•ื‘.

ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ืจืฉืžื™ ืฉืกื•ืคืง ืขืœ ื™ื“ื™ ื”ืกืคืง ืขื•ื‘ื“ ืชื—ืช Windows, ื•ืจืง ืขื IE. ื›ืœื™ ื”ืฉื™ืจื•ืช ื™ื›ื•ืœ ืœื”ื‘ื”ื‘ ื•ืœื”ื’ื“ื™ืจ ืืช ื”ืกื•ืจืง.

ืžื›ื™ื•ื•ืŸ ืฉืžืขืจื›ืช ื”ื™ืขื“ ืฉืœื ื• ื”ื™ื ื“ื‘ื™ืืŸ, ื”ืชืงื ื• ืฉืจืช usb-redirector ื‘ื“ื‘ื™ืืŸ ื•ืœืงื•ื— usb-redirector ื‘-Windows. ื‘ืืžืฆืขื•ืช ื›ืœื™ ืขื–ืจ ืœ-usb-redirector, ื”ืขื‘ืจื ื• ืืช ื”ืกื•ืจืง ืžืžื›ืฉื™ืจ ืœื™ื ื•ืงืก ืœืžื—ืฉื‘ Windows.

ื›ืœื™ ืขื–ืจ ืฉืœ ืกืคืง Windows ืจืื” ืืช ื”ืกื•ืจืง ื•ืืฃ ื”ื‘ื–ื™ืง ืื•ืชื• ื›ืจื’ื™ืœ. ืœืคื™ื›ืš, ื”ื’ืขื ื• ืœืžืกืงื ื” ื”ืจืืฉื•ื ื”: ืฉื•ื ื“ื‘ืจ ืœื ืชืœื•ื™ ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื”, ื–ื” ืขื ื™ื™ืŸ ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ ืžื”ื‘ื”ื‘.

ื‘ืกื“ืจ. ื”ืจืฆื ื• ืืช ื”ื”ื‘ื”ื•ื‘ ื‘ืžื›ื•ื ืช Windows, ื•ื”ืกืจื ื• ืืช ื”-dump ื‘ืžื›ื•ื ืช ืœื™ื ื•ืงืก.

ื“ื—ืคื ื• ืืช ื”ืžื–ื‘ืœื” ืœืชื•ืš WireShark ื•... ื”ืชืขืฆื‘ื ื• (ืื ื™ ืืฉืžื™ื˜ ื—ืœืง ืžื”ืคืจื˜ื™ื ืฉืœ ื”ืžื–ื‘ืœื”, ื”ื ืœื ืžืขื ื™ื™ื ื™ื).

ืžื” ื”ืžื–ื‘ืœื” ื”ืจืืชื” ืœื ื•:

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื”ื›ืชื•ื‘ื•ืช 0000-0030, ืœืคื™ Wireshark, ื”ืŸ ืžื™ื“ืข ืขืœ ืฉื™ืจื•ืช USB.

ื”ืชืขื ื™ื™ื ื• ื‘ื—ืœืง 0040-0070.

ืฉื•ื ื“ื‘ืจ ืœื ื”ื™ื” ื‘ืจื•ืจ ืžืžืกื’ืจืช ืฉื™ื“ื•ืจ ืื—ืช ืคืจื˜ ืœื“ืžื•ื™ื•ืช ื”-MOCFT. ื”ืชื•ื•ื™ื ื”ืœืœื• ื”ืชื‘ืจืจื• ื›ืชื•ื•ื™ื ืžืงื•ื‘ืฅ ื”ืงื•ืฉื—ื”, ื›ืžื• ื’ื ื”ืชื•ื•ื™ื ื”ื ื•ืชืจื™ื ืขื“ ืกื•ืฃ ื”ืžืกื’ืจืช (ืงื•ื‘ืฅ ื”ืงื•ืฉื—ื” ืžื•ื“ื’ืฉ):

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžื” ื”ืžืฉืžืขื•ืช ืฉืœ ื”ืกืžืœื™ื fd 3e 02 01 fe, ืœื™ ืื™ืฉื™ืช, ื›ืžื• ืื™ืœื™ื”, ืœื ื”ื™ื” ืžื•ืฉื’.

ื”ืกืชื›ืœืชื™ ืขืœ ื”ืžืกื’ืจืช ื”ื‘ืื” (ืžื™ื“ืข ืฉื™ืจื•ืช ื”ื•ืกืจ ื›ืืŸ, ืงื•ื‘ืฅ ื”ืงื•ืฉื—ื” ื”ื•ื“ื’ืฉ):

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžื” ื”ืชื‘ืจืจ? ืฉืฉื ื™ ื”ื‘ื™ื™ื˜ื™ื ื”ืจืืฉื•ื ื™ื ื”ื ืกื•ื’ ืฉืœ ืงื‘ื•ืข. ื›ืœ ื”ื‘ืœื•ืงื™ื ื”ื‘ืื™ื ืื™ืฉืจื• ื–ืืช, ืืš ืœืคื ื™ ืกื•ืฃ ื‘ืœื•ืง ื”ืฉื™ื“ื•ืจ:

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื’ื ื”ืžืกื’ืจืช ื”ื–ื• ื”ื™ื™ืชื” ืžื“ื”ื™ืžื”, ืžื›ื™ื•ื•ืŸ ืฉื”ืงื‘ื•ืข ื”ืฉืชื ื” (ืžื•ื“ื’ืฉ) ื•ืœืžืจื‘ื” ื”ืคืœื, ื”ื™ื” ื—ืœืง ืžื”ืงื•ื‘ืฅ. ื’ื•ื“ืœ ื”ื‘ืชื™ื ืฉื”ื•ืขื‘ืจื• ืฉืœ ื”ืงื•ื‘ืฅ ื”ืจืื” ื›ื™ ื”ื•ืขื‘ืจื• 1024 ื‘ืชื™ื. ืฉื•ื‘ ืœื ื™ื“ืขืชื™ ืžื” ืžืฉืžืขื•ืช ื”ื‘ืชื™ื ื”ื ื•ืชืจื™ื.

ืงื•ื“ื ื›ืœ, ื‘ืชื•ืจ ื›ื™ื ื•ื™ ื™ืฉืŸ ืฉืœ BBS, ืกืงืจืชื™ ืืช ืคืจื•ื˜ื•ืงื•ืœื™ ื”ืฉื™ื“ื•ืจ ื”ืกื˜ื ื“ืจื˜ื™ื™ื. ืฉื•ื ืคืจื•ื˜ื•ืงื•ืœ ืœื ื”ื•ืขื‘ืจ 1024 ื‘ืชื™ื. ื”ืชื—ืœืชื™ ืœืœืžื•ื“ ืืช ื”ื—ื•ืžืจื” ื•ื ืชืงืœืชื™ ื‘ืคืจื•ื˜ื•ืงื•ืœ 1K Xmodem. ื”ื•ื ืืคืฉืจ ืœืฉื“ืจ 1024, ืื‘ืœ ืขื ืื–ื”ืจื”: ื‘ื”ืชื—ืœื” ืจืง 128, ื•ืจืง ืื ืœื ื”ื™ื• ืฉื’ื™ืื•ืช, ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื’ื“ื™ืœ ืืช ืžืกืคืจ ื”ื‘ื™ื™ื˜ื™ื ืฉืฉื•ื“ืจื•. ืžื™ื“ ื”ื™ื™ืชื” ืœื™ ื”ืขื‘ืจื” ืฉืœ 1024 ื‘ืชื™ื. ื”ื—ืœื˜ืชื™ ืœืœืžื•ื“ ืคืจื•ื˜ื•ืงื•ืœื™ ืฉื™ื“ื•ืจ, ื•ื‘ืžื™ื•ื—ื“ ืืช ืžื•ื“ื X.

ื”ื™ื• ืฉืชื™ ื•ืจื™ืืฆื™ื•ืช ืฉืœ ื”ืžื•ื“ื.

ืจืืฉื™ืช, ืคื•ืจืžื˜ ื”ื—ื‘ื™ืœื” XMODEM ืขื ืชืžื™ื›ื” ื‘-CRC8 (ื”-XMODEM ื”ืžืงื•ืจื™):

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืฉื ื™ืช, ืคื•ืจืžื˜ ืžื ื•ืช XMODEM ืขื ืชืžื™ื›ื” ื‘-CRC16 (XmodemCRC):

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื–ื” ื ืจืื” ื“ื•ืžื”, ืœืžืขื˜ 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 ื‘ืชื™ื ืžืงื•ื‘ืฅ ื•ื—ื™ืฉื‘ื” CRC ืฉืœ 16 ืกื™ื‘ื™ื•ืช. ื”ืคืขืœืช ื”ืชื•ื›ื ื™ืช ื”ืจืืชื” ืฉืœื ืžื“ื•ื‘ืจ ื‘-CRC ืฉืœ 16 ืกื™ื‘ื™ื•ืช. ืฉื•ื‘ ืงื”ื” - ืœืžืฉืš ื›ืฉืœื•ืฉื” ื™ืžื™ื. ื›ืœ ื”ื–ืžืŸ ื”ื–ื” ื ื™ืกื™ืชื™ ืœื”ื‘ื™ืŸ ืžื” ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช, ืื ืœื ืกื›ื•ื ืฆ'ืง. ืชื•ืš ื›ื“ื™ ืœื™ืžื•ื“ ืืชืจื™ื ื‘ืฉืคื” ื”ืื ื’ืœื™ืช, ื’ื™ืœื™ืชื™ ืฉื”ืžื•ื“ื X ืžืฉืชืžืฉ ื‘ื—ื™ืฉื•ื‘ ืกื›ื•ื ื‘ื™ืงื•ืจืช ืžืฉืœื• - CRC-CCITT (XModem). ืœื ืžืฆืืชื™ ื™ื™ืฉื•ื C ืฉืœ ื”ื—ื™ืฉื•ื‘ ื”ื–ื”, ืื‘ืœ ืžืฆืืชื™ ืืชืจ ืฉื—ื™ืฉื‘ ืืช ืกื›ื•ื ื”ื‘ื“ื™ืงื” ื”ื–ื” ื‘ืื™ื ื˜ืจื ื˜. ืœืื—ืจ ื”ืขื‘ืจืช 1024 ื‘ืชื™ื ืžื”ืงื•ื‘ืฅ ืฉืœื™ ืœื“ืฃ ื”ืื™ื ื˜ืจื ื˜, ื”ืืชืจ ื”ืจืื” ืœื™ ืกื›ื•ื ื‘ื“ื™ืงื” ืฉืชื•ืื ืœื—ืœื•ื˜ื™ืŸ ืืช ืกื›ื•ื ื”ื‘ื“ื™ืงื” ืžื”ืงื•ื‘ืฅ.

ื”ื™ื“ื“! ื”ื—ื™ื“ื” ื”ืื—ืจื•ื ื” ื ืคืชืจื”, ืขื›ืฉื™ื• ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื™ืฆื•ืจ ืงื•ืฉื—ื” ืžืฉืœื™. ืœืื—ืจ ืžื›ืŸ, ื”ืขื‘ืจืชื™ ืืช ื”ื™ื“ืข ืฉืœื™ (ื•ื”ื•ื ื ืฉืืจ ืจืง ื‘ืจืืฉื™) ืœืื™ืœื™ื”, ืฉืžื›ื™ืจ ืืช ืขืจื›ืช ื”ื›ืœื™ื ื”ืขื•ืฆืžืชื™ืช Python.

ื™ืฆื™ืจืช ืชื•ื›ื ื™ืช

ืžื“ื•ื•ื— ืื™ืœื™ื” ืืœืฉื™ืŸ.

ืœืื—ืจ ืฉืงื™ื‘ืœืชื™ ืืช ื”ื”ื ื—ื™ื•ืช ื”ืžืชืื™ืžื•ืช, ื”ื™ื™ืชื™ ืžืื•ื“ "ืžืื•ืฉืจ".

ืื™ืคื” ืœื”ืชื—ื™ืœ? ื ื›ื•ืŸ, ืžื”ื”ืชื—ืœื”. ๏Š ืžืœืงื™ื—ืช dump ืžื™ืฆื™ืืช ื”-USB.

ื”ืคืขืœ ืืช USB-pcap https://desowin.org/usbpcap/tour.html

ื‘ื—ืจ ืืช ื”ื™ืฆื™ืื” ืืœื™ื” ื”ืžื›ืฉื™ืจ ืžื—ื•ื‘ืจ ื•ืืช ื”ืงื•ื‘ืฅ ืฉื‘ื• ื ืฉืžื•ืจ ืืช ื”-dump.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืื ื• ืžื—ื‘ืจื™ื ืืช ื”ืกื•ืจืง ืœืžื›ื•ื ื” ืฉื‘ื” ืžื•ืชืงื ืช ื”ืชื•ื›ื ื” ื”ืžืงื•ืจื™ืช EZConfigScanning ืขื‘ื•ืจ Windows.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื‘ื• ืื ื• ืžื•ืฆืื™ื ืืช ื”ืคืจื™ื˜ ืœืฉืœื™ื—ืช ืคืงื•ื“ื•ืช ืœืžื›ืฉื™ืจ. ืื‘ืœ ืžื” ืขื ืงื‘ื•ืฆื•ืช? ืื™ืคื” ืื ื™ ื™ื›ื•ืœ ืœื”ืฉื™ื’ ืื•ืชื?
ื›ืืฉืจ ื”ืชื•ื›ื ื™ืช ืžืชื—ื™ืœื”, ื”ืฆื™ื•ื“ ืžืชื‘ืฆืข ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ (ื ืจืื” ื–ืืช ืžืขื˜ ืžืื•ื—ืจ ื™ื•ืชืจ). ื•ื”ื™ื• ื‘ืจืงื•ื“ื™ื ืœืื™ืžื•ืŸ ืžืžืกืžื›ื™ ืฆื™ื•ื“ ืจืฉืžื™ื™ื. ืคื™ื’ื•ืจ. ื–ื” ื”ืฆื•ื•ืช ืฉืœื ื•.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื”ื ืชื•ื ื™ื ื”ื“ืจื•ืฉื™ื ื”ืชืงื‘ืœื•. ืคืชื— ืืช dump.pcap ื“ืจืš wireshark.

ื—ืกื•ื ื‘ืขืช ื”ืคืขืœืช EZConfigScanning. ืžืงื•ืžื•ืช ืฉืืชื” ืฆืจื™ืš ืœืฉื™ื ืœื‘ ืืœื™ื”ื ืžืกื•ืžื ื™ื ื‘ืื“ื•ื.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื›ืฉืจืื™ืชื™ ืืช ื›ืœ ื–ื” ื‘ืคืขื ื”ืจืืฉื•ื ื”, ืื™ื‘ื“ืชื™ ืืช ื”ืœื‘. ืœื ื‘ืจื•ืจ ื”ื™ื›ืŸ ืœื—ืคื•ืจ ื”ืœืื”.

ืงืฆืช ืกื™ืขื•ืจ ืžื•ื—ื•ืช ื•-ื•-ื•... ืื”ื”! ื‘ืžื–ื‘ืœื” ื”ึทื—ื•ึผืฆึธื” - ื–ื” inื• - in ื–ื” ื”ึทื—ื•ึผืฆึธื”.

ื—ื™ืคืฉืชื™ ื‘ื’ื•ื’ืœ ืžื” ื–ื” URB_INTERRUPT. ื’ื™ืœื™ืชื™ ืฉื–ื• ืฉื™ื˜ืช ื”ืขื‘ืจืช ื ืชื•ื ื™ื. ื•ื™ืฉ 4 ืฉื™ื˜ื•ืช ื›ืืœื”: ืฉืœื™ื˜ื”, ืคืกื™ืงื”, ืื™ื–ื•ื›ืจื•ื ื™ืช, ื‘ืชืคื–ื•ืจืช. ื ื™ืชืŸ ืœืงืจื•ื ืขืœื™ื”ื ื‘ื ืคืจื“.

ื•ืืช ื›ืชื•ื‘ื•ืช ื ืงื•ื“ื•ืช ื”ืงืฆื” ื‘ืžืžืฉืง ื”ืชืงืŸ ื”-USB ื ื™ืชืŸ ืœื”ืฉื™ื’ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” "lsusb -v" ืื• ื‘ืืžืฆืขื•ืช pyusb.

ื›ืขืช ืขืœื™ื ื• ืœืžืฆื•ื ืืช ื›ืœ ื”ืžื›ืฉื™ืจื™ื ืขื ื”-VID ื”ื–ื”. ืืชื” ื™ื›ื•ืœ ืœื—ืคืฉ ืกืคืฆื™ืคื™ืช ืœืคื™ VID:PID.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื–ื” ื ืจืื” ื›ืš:

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืื– ื™ืฉ ืœื ื• ืืช ื”ืžื™ื“ืข ื”ื“ืจื•ืฉ: ืคืงื•ื“ื•ืช P_INFO. ืื• DEFALT, ื›ืชื•ื‘ื•ืช ื”ื™ื›ืŸ ืœื›ืชื•ื‘ ืคืงื•ื“ื•ืช endpoint=03 ื•ื”ื™ื›ืŸ ืœื”ืฉื™ื’ ืืช ื”ืชื’ื•ื‘ื” endpoint=86. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœื”ืžื™ืจ ืืช ื”ืคืงื•ื“ื•ืช ืœ-hex.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžื›ื™ื•ื•ืŸ ืฉื›ื‘ืจ ืžืฆืื ื• ืืช ื”ืžื›ืฉื™ืจ, ื‘ื•ืื• ื ื ืชืง ืื•ืชื• ืžื”ืงืจื ืœ...

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

...ื•ื›ืชื•ื‘ ืœื ืงื•ื“ืช ื”ืงืฆื” ืขื ื›ืชื•ื‘ืช 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.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ื’ื“ื•ืœ! ื”ืžืจืช ื‘ืจืงื•ื“ื™ื ืฉืœ ื”ืžืขืจื›ืช ืœ-hex. ื–ื”ื•, ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืื™ืžื•ืŸ ืžื•ื›ื ื”.

ืžื” ืœื’ื‘ื™ ื”ืงื•ืฉื—ื”? ื”ื›ืœ ื ืจืื” ืื•ืชื• ื“ื‘ืจ, ืื‘ืœ ื™ืฉ ื ื™ื•ืื ืก.

ืœืื—ืจ ืฉืœืงื—ื ื• dump ืžื•ื—ืœื˜ ืฉืœ ืชื”ืœื™ืš ื”ื”ื‘ื”ื•ื‘, ื”ื‘ื ื• ื‘ืขืจืš ืขื ืžื” ื™ืฉ ืœื ื• ืขืกืง. ื”ื ื” ืžืืžืจ ืขืœ XMODEM, ืฉื”ื™ื” ืžืื•ื“ ืžื•ืขื™ืœ ื‘ื”ื‘ื ืช ืื™ืš ื”ืชืงืฉื•ืจืช ื”ื–ื• ืžืชืจื—ืฉืช, ืื ื›ื™ ื‘ืžื•ื ื—ื™ื ื›ืœืœื™ื™ื: http://microsin.net/adminstuff/others/xmodem-protocol-overview.html ืื ื™ ืžืžืœื™ืฅ ืœืงืจื•ื.

ื‘ื”ืกืชื›ืœื•ืช ืขืœ ื”-dump, ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืฉื’ื•ื“ืœ ื”ืžืกื’ืจืช ื”ื•ื 1024, ื•ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื URB ื”ื•ื 64.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืœื›ืŸ โ€“ 1024/64 โ€“ ืื ื• ืžืงื‘ืœื™ื 16 ืฉื•ืจื•ืช ื‘ื‘ืœื•ืง, ืงื•ืจืื™ื ืืช ืงื•ื‘ืฅ ื”ืงื•ืฉื—ื” 1 ืชื• ื‘ื›ืœ ืคืขื ื•ื™ื•ืฆืจื™ื ื‘ืœื•ืง. ืžืฉืœื™ื ืฉื•ืจื” ืื—ืช ื‘ื‘ืœื•ืง ืขื ืชื•ื•ื™ื ืžื™ื•ื—ื“ื™ื fd1e3 + ืžืกืคืจ ื‘ืœื•ืง.
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.

ืžืฉื™ืžื” ืœืžืคืชื—, ืื• ืื™ืš ื”ื‘ื–ืงื ื• ืกื•ืจืงื™ื ื™ื“ื ื™ื™ื ืœืœื ืกืคืง

ืœืžืขืฉื”, ืื– ื–ื” ืขื ื™ื™ืŸ ืฉืœ ื“ื‘ืจื™ื ืงื˜ื ื™ื. ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœืขื˜ื•ืฃ ืืช ื”ืคืชืจื•ืŸ ื‘ืกืงืจื™ืคื˜ื™ื ืœืฉื›ืคื•ืœ ื”ืžื•ื ื™ ื‘ื–ืžืŸ ืžื•ื’ื“ืจ ื‘ืจื•ืจ, ื›ื“ื™ ืœื ืœื”ืื˜ ืืช ืชื”ืœื™ืš ื”ืขื‘ื•ื“ื” ื‘ืงื•ืคื•ืช ื•ืœื”ื•ืกื™ืฃ ืจื™ืฉื•ื.

ืกืš ื”ื›ืœ

ืœืื—ืจ ืฉื”ืฉืงืขื ื• ื–ืžืŸ ื•ืžืืžืฅ ืจื‘ ื•ืฉื™ืขืจ ืขืœ ื”ืจืืฉ, ื”ืฆืœื—ื ื• ืœืคืชื— ืืช ื”ืคืชืจื•ื ื•ืช ื”ื“ืจื•ืฉื™ื ืœื ื•, ื•ื’ื ืขืžื“ื ื• ื‘ื“ื“ืœื™ื™ืŸ. ื™ื—ื“ ืขื ื–ืืช, ื”ืกื•ืจืงื™ื ืขื•ื‘ืจื™ื ื›ืขืช ืžื—ื“ืฉ ื•ื”ื›ืฉืจื” ืžืจื›ื–ื™ืช, ืื ื• ืฉื•ืœื˜ื™ื ื‘ื‘ื™ืจื•ืจ ืขืœ ื›ืœ ื”ืชื”ืœื™ืš. ื”ื—ื‘ืจื” ื—ืกื›ื” ื–ืžืŸ ื•ื›ืกืฃ, ื•ืฆื‘ืจื ื• ื ื™ืกื™ื•ืŸ ืจื‘ ืขืจืš ื‘ืฆื™ื•ื“ ื”ื ื“ืกื” ืœืื—ื•ืจ ืžืกื•ื’ ื–ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”