๐Ÿ“ƒFirmware Analysis Process 3

DATE : 2024/05/24

์•ˆ๋…•ํ•˜์„ธ์š”, ํ•œํ›„์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ์•ž์„œ ์‚ดํŽด๋ดค๋˜ Firmware์™€ ๋‹ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ Firmware๋ฅผ ๊ฐ€์ ธ์™€ ๋ดค์Šต๋‹ˆ๋‹ค!

๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— Firmware Analysis Process& Firmware Analysis Process 2 ๋‚ด์šฉ์„

๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณผ๊นŒ์š”?


์šฐ๋ฆฌ๊ฐ€ ์ด์ „ POST๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณธ Firmware ๋ถ„์„ ๊ณผ์ •์€ Firmware๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š๋ƒ! ์— ๋”ฐ๋ผ

๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ฌ๋ผ์กŒ์„ ๋ฟ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

[1] ์ฒซ ๋ฒˆ์งธ Step์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ์‹ถ์€ Firmware๋ฅผ ์ค€๋น„ํ–ˆ์—ˆ์ฃ !

์ œ๊ฐ€ ์‚ฌ์šฉํ•œ Firmware๋Š” ๋Œ€๋ถ€๋ถ„ ์นด๋ฉ”๋ผ, Router ๋“ฑ์„ ์ œ์ž‘ํ•˜๋Š” ํšŒ์‚ฌ์—์„œ ์ž์ฒด ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

(POST์—์„œ Firmware๋ฅผ ์–ป๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ๋Š” ์ž์„ธํ•˜๊ฒŒ ๋‹ค๋ฃจ์ง€ ์•Š์•˜์ง€๋งŒ,

์ €์ฒ˜๋Ÿผ ๊ณต๊ฐœ๋œ firmware๋ฅผ ๋‹ค์šด ๋ฐ›๊ฑฐ๋‚˜ ์žฅ์น˜๋ฅผ ๊ตฌ๋งคํ•ด ์ง์ ‘ firmware๋ฅผ ์ถ”์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐ–์—๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๋Š” ์ •๋„๋กœ ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€๋„๋ก ํ•˜์ฃ  )

[2] Firmware ๊ตฌ์กฐ ํŒŒ์•…ํ•˜๊ธฐ

firmware๋ฅผ ์ค€๋น„ํ•œ ๋‹ค์Œ ํ™•์ธํ–ˆ๋˜ ๊ฑด, firmware๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”๊ฐ€ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

binwalk -e BIN_FILE

์ฒ˜์Œ ์‚ดํŽด๋ดค๋˜ firmware๋Š” squashfs๋ฅผ ๋ฐ”๋กœ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ๋ฐ˜๋ฉด,

๋‘ ๋ฒˆ์งธ๋กœ ์‚ดํŽด๋ดค๋˜ firmware๋Š” LZMA ์••์ถ• ๋ฐ์ดํ„ฐ ์†์— file system์ด ์ˆจ๊ฒจ์ ธ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด firmware๋„ ์ œ๊ฐ๊ฐ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์ฃ !!

[3] File System ์ถ”์ถœํ•˜๊ธฐ

firmware๋ฅผ ์—ด์–ด๋ณธ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์€ file system์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•จ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

binwalk -e BIN_FILE

์ด ๊ณผ์ •์—์„œ binwalk๋Š” ์ฃผ์–ด์ง„ binary file์—์„œ file system์„ ์ถ”์ถœํ•ด ๋ณ„๋„์˜ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์คฌ๊ณ 

dd if=INPUT_FILE skip=OFFSET bs=1 of=OUTPUT_FILE

firmware์˜ ํŠน์ • ๋ถ€๋ถ„๋งŒ ๋”ฐ๋กœ ๋ฝ‘์•„๋‚ด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—” dd command๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์ผ๋ถ€๋ฅผ ๋ณต์ œํ•œ ๋‹ค์Œ,

๋ณต์ œํ•œ ํŒŒ์ผ์—์„œ file system์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ฒ˜๋Ÿผ file system์€ firmware๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š๋ƒ, file system์ด ์–ด๋Š ์œ„์น˜์— ์žˆ๋Š๋ƒ,

์–ด๋–ค file system์ธ๊ฐ€ ์— ๋”ฐ๋ผ ์ถ”์ถœ ๋ฐฉ์‹์ด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌํ•˜์—ฌ ์˜ค๋Š˜์€ ์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ดค๋˜ firmware์™€ ๋‹ค๋ฅด๊ฒŒ file system์ด ์—ฌ๋Ÿฌ ๊ฐœ ๋“ค์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ

์‚ดํŽด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. file system์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๊ณ  ํ•ด์„œ ํŠน๋ณ„ํžˆ ๋” ์–ด๋ ค์›Œ์ง€๋Š” ๋‚ด์šฉ์€ ์—†์Šต๋‹ˆ๋‹ค!!

์ง€๊ธˆ๊นŒ์ง€ ์ตํ˜€์˜จ ๋ฐฉ๋ฒ• ๊ทธ๋Œ€๋กœ ํ•˜๋ฉด ๋˜๊ฑฐ๋“ ์š”! ๐Ÿ˜„

๊ทธ๋Ÿผ ์ด์ œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€ ๋ด…์‹œ๋‹ค!


1_ ) Firmware ์ค€๋น„

์˜ค๋Š˜ ์ œ๊ฐ€ ๊ฐ€์ ธ์˜จ firmware๋Š” camera firmware์ž…๋‹ˆ๋‹ค.

firmware๋ฅผ ๋‹ค์šด ๋ฐ›์•„ ๋ณด๋‹ˆ ์••์ถ•๋˜์–ด ์žˆ์–ด์„œ unzip command๋กœ ์••์ถ•์„ ํ’€์–ด์คฌ์Šต๋‹ˆ๋‹ค.

2_) Firmware ๊ตฌ์กฐ ํ™•์ธ

firmware๋ฅผ ์ค€๋น„ํ–ˆ์œผ๋‹ˆ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

binwalk -t BIN_FILE

-t ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ํฌ๊ธฐ์— ์•Œ๋งž๊ฒŒ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ด๋ฒˆ firmware๋Š” file system์ด ๋ฌด๋ ค 3๊ฐœ๋ผ๊ณ  ๋‚˜์˜ค๋„ค์š”!

์—ฌ๋Š ๋•Œ์™€ ๊ฐ™์ด binwalk๋ฅผ ์ด์šฉํ•˜์—ฌ ์ถ”์ถœํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ

์‚ฌ์ง„ ์† Squashfs ์ฒ˜๋Ÿผ firmware ์ค‘๊ฐ„์— ์œ„์น˜ํ•œ ์ •๋ณด๋งŒ ๋ฝ‘์•„๋‚ด ์ง์ ‘ file system์„ ์ถ”์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ์‹œ๋„ํ•ด๋ณด๋„๋ก ํ•˜์ฃ .

3_) file system extraction : binwalk

์šฐ์„  ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ binwalk๋กœ ๋น ๋ฅด๊ฒŒ file system์„ ์ถ”์ถœํ•ด๋ณด๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

binwalk -e BIN_FILE

firmware์—์„œ file system์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„  extraction์„ ๋œปํ•˜๋Š” -e ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถ”์ถœ์„ ์‹œ๋„ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด binary file ์ด๋ฆ„์— extracted๋ฅผ ๋ถ™์ธ ํด๋”๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ํด๋”๋กœ ๋“ค์–ด๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํด๋” ์•ˆ์œผ๋กœ ์ด๋™ํ•ด ๋‚ด์šฉ๋ฌผ์„ ํ™•์ธํ•ด ๋ณด๋‹ˆ, ์œ„์—์„œ ํ™•์ธํ–ˆ๋˜ 3๊ฐœ์˜ file system์ด ๋ชจ๋‘ ์ถ”์ถœ๋˜์–ด ์žˆ๋„ค์š”!!

๊ฐ ํด๋” ์•ˆ์— ๋ญ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ง€ ๊ถ๊ธˆํ•˜์‹œ์ฃ !?

์ด๋ฒˆ์—๋„ ls command๋กœ ํด๋”๋ฅผ ์—ด์–ด๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

4_) file system extraction : python code

"์•„~ binwalk๊ฐ€ ๋งŒ๋Šฅ ํ•ด๊ฒฐ์‚ฌ์ž…๋‹ˆ๋‹ค. file system ์ถ”์ถœํ•˜๊ธฐ? ๋„ˆ๋ฌด ์‰ฝ๋„ค์š” ์‰ฌ์›Œ!!"

๋ผ๊ณ  ์ง€๋ฃจํ•ด ํ•˜์‹ค ๋ถ„๋“ค์„ ์œ„ํ•ด ์ง์ ‘ python code๋กœ ์ž์‹ ์ด ์›ํ•˜๋Š” ํŒŒ์ผ ๋‚ด์šฉ๋งŒ ๊ฐ€์ ธ์™€ ์ˆ˜๋™์œผ๋กœ

file system์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜

python์— ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ์‹  ๋ถ„๋“ค๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ์—„-์ฒญ ๋‹จ์ˆœํ•˜๊ณ  ์งง์€ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์—

์ƒ๊ฐ๋ณด๋‹ค ๋งŒ๋งŒํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค!!

์šฐ์„  ์ˆ˜๋™์œผ๋กœ ์ž‘์—…ํ•  ํ™˜๊ฒฝ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. mkdir command๋กœ ํด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ 

ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ binary file์„ ๋ณต์‚ฌํ•ด์ค๋‹ˆ๋‹ค.

cp command๋Š” coyp์˜ ์•ฝ์ž๋กœ

cp FILE_NAME PATH

์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์–ด๋–ค ํŒŒ์ผ์„ ์–ด๋””๋กœ ๋ณต์‚ฌํ•  ๊ฑด์ง€ ์•Œ๋ ค์ฃผ๋ฉด ์†์‰ฝ๊ฒŒ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ž ๊ทธ๋Ÿผ! firmware์—์„œ ํŠน์ • ๋ถ€๋ถ„๋งŒ ์™ ๋ฒ ๊ปด ์“ธ python ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ ์‹คํ–‰ํ–ˆ๋˜ binwalk -t ๋ช…๋ น์–ด์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด offset ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”,

์ด ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด ์–ด๋Š ์œ„์น˜๋ถ€ํ„ฐ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ฝ์œผ๋ฉด ๋˜๋Š”์ง€ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค„ ๊ฒ๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜„์žฌ 3๊ฐœ์˜ file system์ด ์—ฐ๋‹ฌ์•„ ๋ถ™์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์˜์—ญ์ด ๋๋‚˜๋Š” ์ง€์ ๋„ ์ •ํ™•ํžˆ ์•Œ๋ ค์ค˜์•ผ ํ•˜๋Š”๋ฐ์š”

0x200040 : first squashfs file system
0x550040 : second squashfs file system
550040 - 200040 = 350000

์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„  ๋‹ค์Œ file system์˜ ์‹œ์ž‘ ์œ„์น˜์—์„œ ์ž์‹ ์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ๋นผ๋ฉด size๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋งˆ์ง€๋ง‰์œผ๋กœ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ฝ์–ด์˜จ ๋‹ค์Œ, ์ด๋ฅผ ์ €์žฅํ•  ํŒŒ์ผ ์ด๋ฆ„๊นŒ์ง€ ๋ฐ›์•„์ฃผ๋ฉด ์ค€๋น„๋Š” ๋๋‚ฉ๋‹ˆ๋‹ค.

์ด์ œ firmware์—์„œ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ฝ์–ด์˜ฌ 2๊ฐœ์˜ squashfs์™€ jffs ์ •๋ณด๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‘ก๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ ์ž ํ•˜๋Š” ์›๋ณธ firmware์—์„œ ๊ฐ file system ๋‚ด์šฉ์„ ์ฝ์–ด์™€ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ firmware_segments ์•ˆ์— ๋„ฃ์–ด๋‘” file system ์ •๋ณด๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋ณด๋ฉด์„œ

์›๋ณธ์œผ๋กœ๋ถ€ํ„ฐ offset์—์„œ size๊นŒ์ง€ ๋‚ด์šฉ์„ ๊ธ์–ด์™€ ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ๊ฒ๋‹ˆ๋‹ค. (ํŒŒ์ผ ์ด๋ฆ„์€ name ๊ฐ’์ด ๋˜๊ฒ ์ฃ ?)

์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ python ์ฝ”๋“œ๋Š” "firmware ํ’€์–ดํ—ค์ณ! ์—ฌ๊ธฐ๋ถ€ํ„ฐ ์ €๊ธฐ๊นŒ์ง€ ๋‚ด์šฉ ์ฝ์–ด์™€!" ๋ผ๋Š” ๋Š๋‚Œ์œผ๋กœ

f = open(sys.argv[2], "rb")

unpack ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์–ด์ง„ ํŒŒ์ผ์„ ์ฝ๊ธฐ ๋ชจ๋“œ๋กœ ์—ด๊ณ 

out = open(segment.name, "wb")

์ฝ์–ด์˜จ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๋ฒ ๊ปด ์“ธ ํŒŒ์ผ๋„ ํ•˜๋‚˜ ์—ด์–ด์ค๋‹ˆ๋‹ค. (๊ฐ„๋‹จํžˆ ๋ณต์‚ฌ๋ณธ์ด๋ผ ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.)

f.seek(segment.offset, 0)
data = f.read(segment.size)

out.write(data)

๊ทธ๋Ÿฐ ๋‹ค์Œ, offset์œผ๋กœ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ฐพ์•„ size๋งŒํผ ์ฝ์–ด ๋ณต์‚ฌ๋ณธ์ด ๋  ํŒŒ์ผ์— ์ ์–ด์ฃผ๋Š” ๊ฒ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ ๋‹ค์Œ, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜์—ฌ file system์„ ๊ฐ๊ฐ์˜ ํŒŒ์ผ๋กœ

๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

./extractor.py unpack BIN_FILE

์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด..! ์„ฑ๊ณต์ ์œผ๋กœ file system ๋‚ด์šฉ๋งŒ ๋ฝ‘์•„์˜จ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๊ฐ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ file system์„ ์ถ”์ถœํ•ด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š”๋ฐ์š”,

Squashfs์™€ jffs2๋Š” ์„œ๋กœ ๋‹ค๋ฅธ file system์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ๋ช…๋ น์–ด๋„ ๋‹น์—ฐํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค!

unsquashfs -d OUTPUT INPUT

unsquashfs -d squashfs1_out squashfs1
unsquashfs -d squashfs2_out squashfs2
jffs2 -d OUTPUT INPUT

jffs2 -d jffs2_out jffs2

5_) ๊ฒฐ๊ณผ ๋น„๊ต

์—ฌ๊ธฐ๊นŒ์ง€ ์ง„ํ–‰ํ•˜์…จ๋‹ค๋ฉด ์‚ฌ์ง„๊ณผ ๊ฐ™์ด file system์ด ์ถ”์ถœ๋œ directory 3๊ฐœ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์œผ์‹ค ๊ฒ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ directory์˜ ๋‚ด์šฉ๋ฌผ์„ ํ™•์ธํ•ด ๋ณด์ฃ !

์ง ! ์–ด๋–ค๊ฐ€์š”!? ๋ญ”๊ฐ€ ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š”??


์•ž์„œ binwalk๋กœ file system์„ ์ถ”์ถœํ–ˆ์„ ๋•Œ์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ์ž„์„ ๋ˆˆ์น˜์ฑ„์…จ์„ ๊ฒ๋‹ˆ๋‹ค!

๋‹น์—ฐํ•˜์ฃ ! ๊ฐ™์€ firmware์—์„œ ์ถ”์ถœํ•œ file system์ด๋‹ˆ๊นŒ์š” ๐Ÿ˜‚

"๊ฒฐ๊ณผ๋ฌผ์ด ๊ฐ™์œผ๋ฉด ๊ทธ๋ƒฅ ํŽธํ•˜๊ฒŒ binwalk ์“ฐ๋ฉด ๋์ž–์•„์š”!?" ๋ผ๊ณ  ํ•˜์‹œ๊ฒ ์ง€๋งŒ

์œ„์—์„œ ์ž‘์„ฑํ•œ python code๋Š” ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ๊ต‰์žฅํžˆ ์œ ์šฉํ•œ ์ƒํ™ฉ์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋ ์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์šฐ๋ฆฌ๋„ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋กœ file system๋งŒ ๋ฝ‘์•„๋ƒˆ์œผ๋‹ˆ๊นŒ์š”!

๋งŒ์•ฝ 3๊ฐœ ๋ชจ๋‘ ์ถ”์ถœํ•˜์ง€ ์•Š๊ณ  ๋”ฑ ํ•˜๋‚˜๋งŒ ๋ฝ‘์•„๋‚ด๊ณ  ์‹ถ์—ˆ๋‹ค๋ฉด ์–ด๋• ์„๊นŒ์š”?

๊ทผ๋ฐ ๊ทธ๊ฒŒ firmware ์ค‘๊ฐ„์— ์œ„์น˜ํ–ˆ๋‹ค?

dd command๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์›ํ•˜๋Š” ์œ„์น˜์˜ ๋‚ด์šฉ๋งŒ ๋ณต์‚ฌํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ block size๋ฅผ ์ง€์ •ํ•˜๊ณ 

์•Œ๋งž์€ ํฌ๊ธฐ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒŒ ์€๊ทผํžˆ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”•๋‹ˆ๋‹ค.. ๊ทธ๋ž˜์„œ ์ข€ ๋” ์‰ฝ๊ฒŒ ์›ํ•˜๋Š” ๋‚ด์šฉ๋งŒ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š”

๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘๋ฉด ์ข‹๊ฒ ๋‹ค ์‹ถ์–ด python code๋กœ ๊ฐ€์ ธ์™€ ๋ณธ ๊ฒ๋‹ˆ๋‹ค!!

์ด๋ ‡๊ฒŒ ํ•ด์„œ ์˜ค๋Š˜์€ file system์ด ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋“ค์–ด์žˆ๋Š” firmware๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ ์›ํ•˜๋Š” ๋‚ด์šฉ๋งŒ

์ถ”์ถœํ•ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฌผ์€ ๊ฐ™์•„๋„ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ๊ตฌ์‚ฌํ•  ์ค„ ์•ˆ๋‹ค๋Š” ๊ฑด ์ข‹์€ ๊ฑฐ๋‹ˆ๊นŒ์š”!

์ด POST๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ์กฐ๊ธˆ์ด๋ผ๋„ ์œ ์ตํ–ˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์˜ค๋Š˜ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์„œ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ–๏ธ

(๋งŒ์•ฝ ์ฒซ ๋ฒˆ์งธ Squashfs๋งŒ ์ถ”์ถœํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ ๊นŒ์š”? ๐Ÿค”)

Last updated