๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์•ˆ๋…• ๋ชจ๋‘

์˜ค๋Š˜ Victor Antipov์™€ Ilya Aleshin์€ Python PyUSB๋ฅผ ํ†ตํ•ด USB ์žฅ์น˜๋กœ ์ž‘์—…ํ•œ ๊ฒฝํ—˜๊ณผ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์„ ์‚ฌ ์‹œ๋Œ€

2019๋…„ ๋Ÿฌ์‹œ์•„ ์—ฐ๋ฐฉ ์ •๋ถ€ ๋ฒ•๋ น ์ œ 224ํ˜ธ โ€œ์‹๋ณ„ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ด๋ฐฐ ์ œํ’ˆ์— ๋ผ๋ฒจ์„ ๋ถ™์ด๋Š” ๊ทœ์น™ ์Šน์ธ ๋ฐ ์‹๋ณ„ ์ˆ˜๋‹จ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์ˆ˜ ๋ผ๋ฒจ๋ง ๋Œ€์ƒ ์ƒํ’ˆ์˜ ์œ ํ†ต์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ ๊ตญ๊ฐ€ ์ •๋ณด ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๊ธฐ๋Šฅ ์Šน์ธ ์‹œโ€ ๋‹ด๋ฐฐ ์ œํ’ˆ๊ณผ ๊ด€๋ จํ•˜์—ฌโ€๊ฐ€ ์‹œํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์„œ์—์„œ๋Š” 1๋…„ 2019์›” XNUMX์ผ๋ถ€ํ„ฐ ์ œ์กฐ์—…์ฒด๊ฐ€ ๊ฐ ๋‹ด๋ฐฐ ํŒฉ์— ๋ผ๋ฒจ์„ ๋ถ€์ฐฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ง์ ‘ ์œ ํ†ต์—…์ฒด๋Š” UDD(Universal Transfer Document)๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์ œํ’ˆ์„ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ ์—์„œ๋Š” ๊ธˆ์ „ ๋“ฑ๋ก๊ธฐ๋ฅผ ํ†ตํ•ด ๋ผ๋ฒจ์ด ๋ถ™์€ ์ œํ’ˆ์˜ ํŒ๋งค๋ฅผ ๋“ฑ๋กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, 1๋…„ 2020์›” XNUMX์ผ๋ถ€ํ„ฐ ๋ผ๋ฒจ์ด ๋ถ€์ฐฉ๋˜์ง€ ์•Š์€ ๋‹ด๋ฐฐ ์ œํ’ˆ์˜ ์œ ํ†ต์ด ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๋‹ด๋ฐฐ๊ฐ‘์— ํŠน์ˆ˜ Datamatrix ๋ฐ”์ฝ”๋“œ๊ฐ€ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”์šฑ์ด ์ค‘์š”ํ•œ ์ ์€ Datamatrix๊ฐ€ ํ‰๋ฒ”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜๋Œ€๋ผ๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํฐ์ƒ‰ ๋ฐ”ํƒ•์— ๊ฒ€์ •์ƒ‰ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์Šค์บ๋„ˆ๋ฅผ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ ๋Œ€๋ถ€๋ถ„์˜ ์Šค์บ๋„ˆ๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๊ฑฐ๋‚˜ ์žฌ๊ต์œกํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด ๋ฐ”์ฝ”๋“œ๋กœ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” ๋„“์€ ์ง€์—ญ์— ๊ฑธ์ณ ๋งŽ์€ ๋งค์žฅ์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ƒํ™ฉ์€ ์šฐ๋ฆฌ์—๊ฒŒ ์‹ฌ๊ฐํ•œ ๊ณจ์น˜ ์•„ํ”ˆ ์ผ์„ ์•ˆ๊ฒจ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŒ ๊ฐœ์˜ ๊ธˆ์ „ ๋“ฑ๋ก๊ธฐ๊ฐ€ ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ํ•ด์•ผ ํ–ˆ๋‚˜์š”? ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ํ˜„์žฅ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์Šค์บ๋„ˆ๋ฅผ ๋‹ค์‹œ ํ”Œ๋ž˜์‹œํ•˜๊ณ  ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์งธ: ์šฐ๋ฆฌ๋Š” ์›๊ฒฉ์œผ๋กœ ์ž‘์—…ํ•˜๋ฉฐ ๊ฐ€๊ธ‰์ ์ด๋ฉด ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต์œผ๋กœ ํ•œ ๋ฒˆ์— ๋งŽ์€ ์Šค์บ๋„ˆ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์€ ์šฐ๋ฆฌ์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—”์ง€๋‹ˆ์–ด๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐ ๋ˆ์„ ์จ์•ผ ํ•˜๊ณ  ์ด ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ œ์–ดํ•˜๊ณ  ์กฐ์ •ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ์ผํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ž ์žฌ์ ์œผ๋กœ ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋งˆ๊ฐ์ผ์„ ์ง€ํ‚ค์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์˜ต์…˜์€ ํ•œ ๊ฐ€์ง€๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ณต๊ธ‰์—…์ฒด์—๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ์šด์˜ ์ฒด์ œ์— ํ•„์š”ํ•œ ์›๊ฒฉ ํ”Œ๋ž˜์‹ฑ ๋„๊ตฌ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ๊ฐ์ผ์ด ๋‹ค๊ฐ€์˜ค์ž ๋จธ๋ฆฌ๋กœ ์ƒ๊ฐ์„ ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ Debian 9.x OS์šฉ ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋Š”์ง€ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค(์šฐ๋ฆฌ์˜ ๋ชจ๋“  ๊ธˆ์ „ ๋“ฑ๋ก๊ธฐ๋Š” Debian์— ์žˆ์Šต๋‹ˆ๋‹ค).

์ˆ˜์ˆ˜๊ป˜๋ผ ํ’€๊ธฐ: ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋น…ํ„ฐ ์•ˆํ‹ฐํฌํ”„(Victor Antipov)๊ฐ€ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ธ‰์—…์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Windows์—์„œ ์ž‘๋™ํ•˜๋ฉฐ IE์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์ƒ ์‹œ์Šคํ…œ์ด Debian์ด๋ฏ€๋กœ Debian์— usb-redirector ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ  Windows์— usb-redirector ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. usb-redirector ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค์บ๋„ˆ๋ฅผ Linux ์‹œ์Šคํ…œ์—์„œ Windows ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Windows ๊ณต๊ธ‰์—…์ฒด์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์Šค์บ๋„ˆ๋ฅผ ๋ณด๊ณ  ์ •์ƒ์ ์œผ๋กœ ํ”Œ๋ž˜์‹œ๊นŒ์ง€ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ฒซ ๋ฒˆ์งธ ๊ฒฐ๋ก ์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค. OS์— ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ์—†์œผ๋ฉฐ ํ”Œ๋ž˜์‹ฑ ํ”„๋กœํ† ์ฝœ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ข‹์•„์š”. Windows ์‹œ์Šคํ…œ์—์„œ ํ”Œ๋ž˜์‹ฑ์„ ์‹คํ–‰ํ•˜๊ณ  Linux ์‹œ์Šคํ…œ์—์„œ ๋คํ”„๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋คํ”„๋ฅผ WireShark์— ๋„ฃ์—ˆ๊ณ ... ์ŠฌํŽ์Šต๋‹ˆ๋‹ค(๋คํ”„์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ ์ค‘ ์ผ๋ถ€๋ฅผ ์ƒ๋žตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์—†์Šต๋‹ˆ๋‹ค).

๋คํ”„๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ๋ณด์—ฌ์ค€ ๊ฒƒ:

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

Wireshark๋กœ ํŒ๋‹จ๋˜๋Š” ์ฃผ์†Œ 0000~0030์€ USB ์„œ๋น„์Šค ์ •๋ณด์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ถ€ํ’ˆ 0040-0070์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

MOCFT ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•˜๊ณ  ํ•˜๋‚˜์˜ ์ „์†ก ํ”„๋ ˆ์ž„์—์„œ ๋ช…ํ™•ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ž๋Š” ํŽŒ์›จ์–ด ํŒŒ์ผ์˜ ๋ฌธ์ž์™€ ํ”„๋ ˆ์ž„ ๋๊นŒ์ง€ ๋‚จ์€ ๋ฌธ์ž๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค(ํŽŒ์›จ์–ด ํŒŒ์ผ์ด ๊ฐ•์กฐ ํ‘œ์‹œ๋จ).

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

fd 3e 02 01 fe ๊ธฐํ˜ธ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ๊ฐœ์ธ์ ์œผ๋กœ Ilya์ฒ˜๋Ÿผ ์ €๋Š” ์ „ํ˜€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํ”„๋ ˆ์ž„์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์—์„œ๋Š” ์„œ๋น„์Šค ์ •๋ณด๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ํŽŒ์›จ์–ด ํŒŒ์ผ์ด ๊ฐ•์กฐ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌด์—‡์ด ๋ถ„๋ช…ํ•ด์กŒ๋‚˜์š”? ์ฒ˜์Œ ๋‘ ๋ฐ”์ดํŠธ๋Š” ์ผ์ข…์˜ ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ›„์† ๋ธ”๋ก์€ ์ด๋ฅผ ํ™•์ธํ–ˆ์ง€๋งŒ ์ „์†ก ๋ธ”๋ก์ด ๋๋‚˜๊ธฐ ์ „์—:

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด ํ”„๋ ˆ์ž„์€ ๋˜ํ•œ ์ƒ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ(๊ฐ•์กฐ ํ‘œ์‹œ)๋˜์—ˆ๊ณ  ์ด์ƒํ•˜๊ฒŒ๋„ ํŒŒ์ผ์˜ ์ผ๋ถ€๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ฆฌ๋‘ฅ์ ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ์ „์†ก๋œ ๋ฐ”์ดํŠธ ํฌ๊ธฐ๋Š” 1024๋ฐ”์ดํŠธ๊ฐ€ ์ „์†ก๋œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์‹œ ๋‚จ์€ ๋ฐ”์ดํŠธ๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

๋จผ์ € ์˜ˆ์ „ BBS ๋ณ„๋ช…๋‹ต๊ฒŒ ํ‘œ์ค€ ์ „์†ก ํ”„๋กœํ† ์ฝœ์„ ๊ฒ€ํ† ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. 1024๋ฐ”์ดํŠธ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  1K Xmodem ํ”„๋กœํ† ์ฝœ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. 1024 ์ „์†ก์„ ํ—ˆ์šฉํ–ˆ์ง€๋งŒ ์ฃผ์˜ํ•  ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” 128์— ๋ถˆ๊ณผํ–ˆ๊ณ  ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ”„๋กœํ† ์ฝœ์ด ์ „์†ก๋œ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๋Š˜๋ ธ์Šต๋‹ˆ๋‹ค. ์ฆ‰์‹œ 1024๋ฐ”์ดํŠธ๋ฅผ ์ „์†กํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ „์†ก ํ”„๋กœํ† ์ฝœ, ํŠนํžˆ X ๋ชจ๋Ž€์„ ์—ฐ๊ตฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋Ž€์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ€ํ˜•์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ์งธ, CRC8์„ ์ง€์›ํ•˜๋Š” XMODEM ํŒจํ‚ค์ง€ ํ˜•์‹(์›๋ž˜ XMODEM):

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋‘˜์งธ, CRC16์„ ์ง€์›ํ•˜๋Š” XMODEM ํŒจํ‚ท ํ˜•์‹(XmodemCRC):

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

SOH, ํŒจํ‚ค์ง€ ๋ฒˆํ˜ธ, CRC ๋ฐ ํŒจํ‚ค์ง€ ๊ธธ์ด๋ฅผ ์ œ์™ธํ•˜๋ฉด ๋น„์Šทํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ „์†ก ๋ธ”๋ก์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ํŽŒ์›จ์–ด ํŒŒ์ผ์„ ๋ณด์•˜์ง€๋งŒ ์ด๋ฏธ 1024๋ฐ”์ดํŠธ ๋“ค์—ฌ์“ฐ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ต์ˆ™ํ•œ ํ—ค๋” fd 3e 02๋ฅผ ๋ณด์•˜์ง€๋งŒ ๋‹ค์Œ ๋‘ ๋ฐ”์ดํŠธ๋Š” ์ด๋ฏธ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 01 fe์—์„œ 02 fd๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋‘ ๋ฒˆ์งธ ๋ธ”๋ก์˜ ๋ฒˆํ˜ธ๊ฐ€ 02๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜๊ณ  ๋”ฐ๋ผ์„œ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์•ž์—๋Š” ์ „์†ก ๋ธ”๋ก์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ 1024 ๊ธฐ์–ด๋Š” 01, ๋‘ ๋ฒˆ์งธ๋Š” 02, ์„ธ ๋ฒˆ์งธ๋Š” 03 ๋“ฑ์ž…๋‹ˆ๋‹ค(๋ฌผ๋ก  1์ง„์ˆ˜์ž„). ๊ทธ๋Ÿฐ๋ฐ fe์—์„œ fd๋กœ์˜ ๋ณ€ํ™”๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”๊ฐ€? ๋ˆˆ์€ 0 ๊ฐ์†Œ๋ฅผ ๋ณด์•˜๊ณ  ๋‡Œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ 1์ด ์•„๋‹Œ 1๋ถ€ํ„ฐ ๊ณ„์‚ฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ธฐ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์™œ ์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก์€ 0์ด ์•„๋‹Œ 02์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ์•„์ง๋„ ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ๋ธ”๋ก์ด ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ๋˜๋Š”์ง€ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ธ”๋ก์€ FF โ€“ (๋งˆ์ด๋„ˆ์Šค) ์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก ๋ฒˆํ˜ธ์— ์ง€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๋ฒˆ์งธ ๋ธ”๋ก์€ =02(FF-02)=XNUMXFD๋กœ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๋คํ”„๋ฅผ ์ฝ์–ด๋ณด๋‹ˆ ๋‚ด ์ถ”์ธก์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ „์†ก์— ๋Œ€ํ•œ ๋‹ค์Œ ๊ทธ๋ฆผ์ด ๋‚˜ํƒ€๋‚˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „์†ก ์‹œ์ž‘
fd 3e 02 โ€“ ์‹œ์ž‘
01 FE โ€“ ์ „์†ก ์นด์šดํ„ฐ
์ „์†ก(34๋ธ”๋ก, 1024๋ฐ”์ดํŠธ ์ „์†ก)
fd 3e 1024๋ฐ”์ดํŠธ์˜ ๋ฐ์ดํ„ฐ(30๋ฐ”์ดํŠธ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ”).
์ „์†ก ์ข…๋ฃŒ
FD 25

๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ๋Š” 1024๋ฐ”์ดํŠธ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก ์ „์†ก ์ข…๋ฃŒ ํ”„๋ ˆ์ž„์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜์š”?

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

fd 25 โ€“ ๋ธ”๋ก ์ „์†ก์„ ์ข…๋ฃŒํ•˜๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. Next 2f 52 โ€“ ๋‚˜๋จธ์ง€ ํŒŒ์ผ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 1024๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅด๋ฉด 2f 52๋Š” 16๋น„ํŠธ CRC ์ฒดํฌ์„ฌ์ž…๋‹ˆ๋‹ค.

์˜›๋‚ ์—๋Š” ํŒŒ์ผ์—์„œ 1024๋ฐ”์ดํŠธ๋ฅผ ๊ฐ€์ ธ์™€ 16๋น„ํŠธ CRC๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ C๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด ๋ณด๋‹ˆ 16๋น„ํŠธ CRC๊ฐ€ ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ฌด๊ฐ๊ฐ - ์•ฝ 1024 ์ผ ๋™์•ˆ. ๊ทธ๋™์•ˆ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ฒดํฌ์„ฌ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋ฌด์—‡์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜์–ด ์‚ฌ์ดํŠธ๋ฅผ ์—ฐ๊ตฌํ•˜๋Š” ๋™์•ˆ X ๋ชจ๋Ž€์ด ์ž์ฒด ์ฒดํฌ์„ฌ ๊ณ„์‚ฐ์ธ CRC-CCITT(XModem)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณ„์‚ฐ์— ๋Œ€ํ•œ C ๊ตฌํ˜„์„ ์ฐพ์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์˜จ๋ผ์ธ์—์„œ ์ด ์ฒดํฌ์„ฌ์„ ๊ณ„์‚ฐํ•˜๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. XNUMX๋ฐ”์ดํŠธ์˜ ๋‚ด ํŒŒ์ผ์„ ์›น ํŽ˜์ด์ง€๋กœ ์ „์†กํ•œ ํ›„ ์‚ฌ์ดํŠธ๋Š” ํŒŒ์ผ์˜ ์ฒดํฌ์„ฌ๊ณผ ์™„์ „ํžˆ ์ผ์น˜ํ•˜๋Š” ์ฒดํฌ์„ฌ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์„ธ! ๋งˆ์ง€๋ง‰ ์ˆ˜์ˆ˜๊ป˜๋ผ๊ฐ€ ํ’€๋ ธ์œผ๋‹ˆ ์ด์ œ ๋‚˜๋งŒ์˜ ํŽŒ์›จ์–ด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ, ์ €๋Š” ๊ฐ•๋ ฅํ•œ ํˆดํ‚ท์ธ Python์— ์ต์ˆ™ํ•œ Ilya์—๊ฒŒ ์ œ ์ง€์‹์„ ์ „์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๊ฒƒ์€ ์ œ ๋จธ๋ฆฌ ์†์—๋งŒ ๋‚จ์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค).

ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

Ilya Aleshin์ด๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ ์ ˆํ•œ ์ง€์‹œ๋ฅผ ๋ฐ›๊ณ  ๋‚˜๋Š” ๋งค์šฐ โ€œํ–‰๋ณตโ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ๊นŒ์š”? ๊ทธ๋ ‡์ฃ , ์ฒ˜์Œ๋ถ€ํ„ฐ์š”. ๏Š USB ํฌํŠธ์—์„œ ๋คํ”„๋ฅผ ๊ฐ€์ ธ์˜ด.

USB-pcap ์‹คํ–‰ https://desowin.org/usbpcap/tour.html

์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋œ ํฌํŠธ์™€ ๋คํ”„๋ฅผ ์ €์žฅํ•  ํŒŒ์ผ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

Windows์šฉ ๊ธฐ๋ณธ EZConfigScanning ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์„ค์น˜๋œ ์‹œ์Šคํ…œ์— ์Šค์บ๋„ˆ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์—ฌ๊ธฐ์—๋Š” ์žฅ์น˜์— ๋ช…๋ น์„ ๋ณด๋‚ด๋Š” ํ•ญ๋ชฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒ€์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์–ด๋””์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜๋ฉด ์žฅ๋น„๊ฐ€ ์ž๋™์œผ๋กœ ํด๋ง๋ฉ๋‹ˆ๋‹ค(์ด ๋‚ด์šฉ์€ ๋‚˜์ค‘์— ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค). ๊ทธ๋ฆฌ๊ณ  ๊ณต์‹ ์žฅ๋น„ ๋ฌธ์„œ์— ์žˆ๋Š” ํ›ˆ๋ จ์šฉ ๋ฐ”์ฝ”๋“œ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ ํŒ€์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Wireshark๋ฅผ ํ†ตํ•ด dump.pcap์„ ์—ฝ๋‹ˆ๋‹ค.

EZConfigScanning์„ ์‹œ์ž‘ํ•  ๋•Œ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์˜ํ•ด์•ผ ํ•  ๊ณณ์€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜์Œ์œผ๋กœ ๋ณด๋‹ˆ ๋งˆ์Œ์ด ๋†“์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์–ด๋””๋ฅผ ํŒŒ์•ผํ• ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ฝ๊ฐ„์˜ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ์„ ํ•˜๊ณ  ๋˜... ์•„ํ•˜! ๋คํ”„์—์„œ ์•„์›ƒ -๊ฐ€์š” in๊ณผ in ๊ทธ๊ฒƒ ์•„์›ƒ.

URB_INTERRUPT๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฒ€์ƒ‰ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ์–ด, ์ธํ„ฐ๋ŸฝํŠธ, ๋“ฑ์‹œ์„ฑ, ๋ฒŒํฌ ๋“ฑ 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ๋ณ„๋„๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  USB ์žฅ์น˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋์  ์ฃผ์†Œ๋Š” "lsusb โ€“v" ๋ช…๋ น์ด๋‚˜ pyusb๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ด VID๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์žฅ์น˜๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. VID:PID๋กœ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ์ •๋ณด์ธ P_INFO ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” DEFALT, ๋ช…๋ น์„ ์“ธ ์ฃผ์†Œ๋Š” ์—”๋“œํฌ์ธํŠธ=03์ด๊ณ  ์‘๋‹ต ์—”๋“œํฌ์ธํŠธ๋Š” 86์ž…๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ๋ช…๋ น์„ XNUMX์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด๋ฏธ ์žฅ์น˜๋ฅผ ์ฐพ์•˜์œผ๋ฏ€๋กœ ์ปค๋„์—์„œ ์—ฐ๊ฒฐ์„ ๋Š๊ฒ ์Šต๋‹ˆ๋‹ค...

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

...๊ทธ๋ฆฌ๊ณ  ์ฃผ์†Œ 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์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

์—„์ฒญ๋‚œ! ์‹œ์Šคํ…œ ๋ฐ”์ฝ”๋“œ๋ฅผ XNUMX์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ํ›ˆ๋ จ ๊ธฐ๋Šฅ์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํŽŒ์›จ์–ด๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ๊ฒƒ์ด ๋˜‘๊ฐ™์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๋‰˜์•™์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ž˜์‹ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„์ „ํžˆ ๋คํ”„ํ•œ ํ›„ ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฃจ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์„ ๋Œ€๋žต์ ์œผ๋กœ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ XMODEM์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋น„๋ก ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ด๊ธด ํ•˜์ง€๋งŒ ์ด ํ†ต์‹ ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. http://microsin.net/adminstuff/others/xmodem-protocol-overview.html ๋‚˜๋Š” ๋…์„œ๋ฅผ ๊ถŒํ•ฉ๋‹ˆ๋‹ค.

๋คํ”„๋ฅผ ๋ณด๋ฉด ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๊ฐ€ 1024์ด๊ณ  URB ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ 64์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž‘์—… ๋˜๋Š” ๊ณต๊ธ‰์—…์ฒด ์—†์ด ํœด๋Œ€์šฉ ์Šค์บ๋„ˆ๋ฅผ ํ”Œ๋ž˜์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

๋”ฐ๋ผ์„œ โ€“ 1024/64 โ€“ ๋ธ”๋ก์— 16์ค„์ด ์žˆ๊ณ , ํŽŒ์›จ์–ด ํŒŒ์ผ์„ ํ•œ ๋ฒˆ์— ํ•œ ๋ฌธ์ž์”ฉ ์ฝ๊ณ  ๋ธ”๋ก์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠน์ˆ˜ ๋ฌธ์ž fd1e1 + ๋ธ”๋ก ๋ฒˆํ˜ธ๋กœ ๋ธ”๋ก์˜ ํ•œ ์ค„์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ 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 ํ”Œ๋ž˜์‹ฑ ๋ชจ๋“œ์˜ ์Šค์บ๋„ˆ๋Š” XNUMX์ง„์ˆ˜๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ์ค„ 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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€