αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αžšαŸ‰αŸ„αžαž‘αŸαžšαž•αŸ’αž‘αŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎ binwalk αŸ” αžαžΎαž’αŸ’αž“αž€αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ?

αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αžšαŸ‰αŸ„αžαž‘αŸαžšαž•αŸ’αž‘αŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎ binwalk αŸ” αžαžΎαž’αŸ’αž“αž€αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ?

αž€αžΆαž›αž–αžΈαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžαŸ’αž„αŸƒαž˜αž»αž“ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžšαž”αžŸαŸ‹αžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎ binwalk αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αž·αž‰αžαŸ’αž›αž½αž“αž―αž„ αžšαŸ‰αŸ„αžαž‘αŸαžšαž•αŸ’αž‘αŸ‡ TP-Link Archer C7. αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžšαŸ‰αŸ„αžαž‘αŸαžšαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ”

αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž‘αž·αž‰αžšαŸ‰αŸ„αžαž‘αŸαžšαžαŸ’αž˜αžΈ αžαŸ’αž‰αž»αŸ†αžŠαŸ†αž‘αžΎαž„ OpenWRT. αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΈ? αžαžΆαž˜αž€αŸ’αž”αž½αž“αž˜αž½αž™ αž’αŸ’αž“αž€αž•αž›αž·αžαž˜αž·αž“αžαŸ’αžœαž›αŸ‹αž…αŸ’αžšαžΎαž“αž’αŸ†αž–αžΈαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‘αŸ αž αžΎαž™αž™αžΌαžš αŸ— αž‘αŸ…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž αž½αžŸαžŸαž˜αŸαž™ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αžΉαž„αž›αŸαž…αž‘αžΎαž„ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž›αžΎ αž‡αžΆαž‘αžΌαž‘αŸ…αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž‚αŸ†αž“αž·αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ OpenWRT αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž™αŸ‰αžΆαž„αž›αŸ’αž’αžŠαŸ„αž™αžŸαž αž‚αž˜αž“αŸαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αŸ”

αžŠαŸ„αž™αž”αžΆαž“αž‘αžΆαž‰αž™αž€ OpenWRT αžαŸ’αž‰αž»αŸ†αž•αž„αžŠαŸ‚αžšαŸ” αž”αžΆαž“αž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αž„αŸ’αž’αžŸαŸ‹ αž“αŸ…αž€αŸ’αžšαŸ„αž˜ Archer C7 αžαŸ’αž˜αžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž–αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžšαž αžΎαž™αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžœαž·αž—αžΆαž‚αžœαžΆαŸ” αžŸαž»αž‘αŸ’αž’αžŸαžΆαž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž”αŸ’αž”αžΆαž™ αž“αž·αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ binwalk αŸ”

តើ binwalk αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈ?

Binwalk αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚ αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸ αž“αž·αž„αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αŸ”

αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2010 αžŠαŸ„αž™ Craig Heffner binwalk αž’αžΆαž…αžŸαŸ’αž€αŸαž“αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž―αž€αžŸαžΆαžš αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ αž“αž·αž„αžŸαŸ’αžšαž„αŸ‹αžšαžΌαž”αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš αž€αžΌαžŠαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ αž”αžŽαŸ’αžŽαžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„αžαžΊαžŽαŸ‚αž› αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž―αž€αžŸαžΆαžšαžŠαžΌαž…αž‡αžΆ JPEG αž“αž·αž„ PDF αž“αž·αž„αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ binwalk αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŸαŸ’αžœαŸ‚αž„αžšαž€αž―αž€αžŸαžΆαžšαž‚αŸ„αž›αž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ αž‘αžΆαž‰αž™αž€αž―αž€αžŸαžΆαžš αž“αž·αž„αžšαž€αž˜αžΎαž› backdoors αž¬αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαžŒαžΈαž‡αžΈαžαž›αŸ” αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžšαž€αžƒαžΎαž‰αž•αž„αžŠαŸ‚αžšαŸ” opcodes αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ bunch αž“αŸƒ CPU αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžšαž„αŸ‹αžšαžΌαž”αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž˜αžΎαž›αž―αž€αžŸαžΆαžšαž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ (passwd, shadow, αž›) αž αžΎαž™αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ†αž”αŸ‚αž€αž›αŸαžαžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαžšαžœαžΆαž„αž―αž€αžŸαžΆαžšαž–αžΈαžš αž¬αž…αŸ’αžšαžΎαž“αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚ entropy αž›αžΎαž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž˜αžΎαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹ αž¬αž›αŸαžαž€αžΌαžŠαžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αŸ” αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž…αžΌαž›αž”αŸ’αžšαžΎαž€αžΌαžŠαž”αŸ’αžšαž—αž–αŸ”

αž‡αžΆαž‘αžΌαž‘αŸ…αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž‚αžΊαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ :)

តើ binwalk αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž…?

αž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αžšαž”αžŸαŸ‹ binwalk αž‚αžΊαž€αžΆαžšαžŸαŸ’αž€αŸαž“αž αžαŸ’αžαž›αŸαžαžΆαžšαž”αžŸαŸ‹αžœαžΆαŸ” Binwalk αž’αžΆαž…αžŸαŸ’αž€αŸαž“αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αŸ’αžšαž—αŸαž‘αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αŸ”

αžαžΎαž’αŸ’αž“αž€αžŸαŸ’αž‚αžΆαž›αŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž‘αŸ? file?

file /bin/bash
/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=12f73d7a8e226c663034529c8dd20efec22dde54, stripped

αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš fileαž˜αžΎαž›αž€αŸ’αž”αžΆαž›αž―αž€αžŸαžΆαžš αž αžΎαž™αžšαž€αž˜αžΎαž›αž αžαŸ’αžαž›αŸαžαžΆ (αž›αŸαžαžœαŸαž‘αž˜αž“αŸ’αž) αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž”αŸ’αžšαž—αŸαž‘αž―αž€αžŸαžΆαžšαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž―αž€αžŸαžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž”αŸƒ 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0AαžœαžΆαžŠαžΉαž„αžαžΆαžœαžΆαž‡αžΆαž―αž€αžŸαžΆαžš PNG αŸ” αž”αžΎαž€ Wikipedia αž˜αžΆαž“αž”αž‰αŸ’αž‡αžΈαž αžαŸ’αžαž›αŸαžαžΆαž―αž€αžŸαžΆαžšαž‘αžΌαž‘αŸ…αŸ”

Binwalk αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž αžαŸ’αžαž›αŸαžαžΆαžαŸ‚αž“αŸ…αžŠαžΎαž˜αž―αž€αžŸαžΆαžš binwalk αž“αžΉαž„αžŸαŸ’αž€αŸαž“αž―αž€αžŸαžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž binwalk αž’αžΆαž…αž‘αžΆαž‰αž™αž€αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αŸ”

αž§αž”αž€αžšαžŽαŸ file ΠΈ binwalk αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ libmagic αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž αžαŸ’αžαž›αŸαžαžΆαž―αž€αžŸαžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ binwalk αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž‚αžΆαŸ†αž‘αŸ’αžšαž”αž‰αŸ’αž‡αžΈαž αžαŸ’αžαž›αŸαžαžΆαžœαŸαž‘αž˜αž“αŸ’αžαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹/αž”αž„αŸ’αž αžΆαž”αŸ‹ αž”αž‹αž˜αž€αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžšαž‡αžΆαžŠαžΎαž˜αŸ”

αžαŸ„αŸ‡β€‹αž“αžΆαŸ†αž‚αŸ’αž“αžΆβ€‹αžŸαž”αŸ’αž”αžΆαž™?

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ binwalk

Binwalk αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αžšαž½αž˜αž‘αžΆαŸ†αž„ Linux, OSX, FreeBSD αž“αž·αž„ Windows αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„αž€αŸ†αžŽαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αžαž“αŸƒ binwalk αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“ αž‘αžΆαž‰αž™αž€αž€αžΌαžŠαž”αŸ’αžšαž—αž– αž αžΎαž™αž’αŸ’αžœαžΎαžαžΆαž˜ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ ឬ αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž αŸαžŸαž˜αžΆαž“αž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžšαž‚αž˜αŸ’αžšαŸ„αž„αŸ”

Binwalk αž˜αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ–

$ binwalk

Binwalk v2.2.0
Craig Heffner, ReFirmLabs
https://github.com/ReFirmLabs/binwalk

Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...

Signature Scan Options:
    -B, --signature              Scan target file(s) for common file signatures
    -R, --raw=<str>              Scan target file(s) for the specified sequence of bytes
    -A, --opcodes                Scan target file(s) for common executable opcode signatures
    -m, --magic=<file>           Specify a custom magic file to use
    -b, --dumb                   Disable smart signature keywords
    -I, --invalid                Show results marked as invalid
    -x, --exclude=<str>          Exclude results that match <str>
    -y, --include=<str>          Only show results that match <str>

Extraction Options:
    -e, --extract                Automatically extract known file types
    -D, --dd=<type:ext:cmd>      Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
    -M, --matryoshka             Recursively scan extracted files
    -d, --depth=<int>            Limit matryoshka recursion depth (default: 8 levels deep)
    -C, --directory=<str>        Extract files/folders to a custom directory (default: current working directory)
    -j, --size=<int>             Limit the size of each extracted file
    -n, --count=<int>            Limit the number of extracted files
    -r, --rm                     Delete carved files after extraction
    -z, --carve                  Carve data from files, but don't execute extraction utilities
    -V, --subdirs                Extract into sub-directories named by the offset

Entropy Options:
    -E, --entropy                Calculate file entropy
    -F, --fast                   Use faster, but less detailed, entropy analysis
    -J, --save                   Save plot as a PNG
    -Q, --nlegend                Omit the legend from the entropy plot graph
    -N, --nplot                  Do not generate an entropy plot graph
    -H, --high=<float>           Set the rising edge entropy trigger threshold (default: 0.95)
    -L, --low=<float>            Set the falling edge entropy trigger threshold (default: 0.85)

Binary Diffing Options:
    -W, --hexdump                Perform a hexdump / diff of a file or files
    -G, --green                  Only show lines containing bytes that are the same among all files
    -i, --red                    Only show lines containing bytes that are different among all files
    -U, --blue                   Only show lines containing bytes that are different among some files
    -u, --similar                Only display lines that are the same between all files
    -w, --terse                  Diff all files, but only display a hex dump of the first file

Raw Compression Options:
    -X, --deflate                Scan for raw deflate compression streams
    -Z, --lzma                   Scan for raw LZMA compression streams
    -P, --partial                Perform a superficial, but faster, scan
    -S, --stop                   Stop after the first result

General Options:
    -l, --length=<int>           Number of bytes to scan
    -o, --offset=<int>           Start scan at this file offset
    -O, --base=<int>             Add a base address to all printed offsets
    -K, --block=<int>            Set file block size
    -g, --swap=<int>             Reverse every n bytes before scanning
    -f, --log=<file>             Log results to file
    -c, --csv                    Log results to file in CSV format
    -t, --term                   Format output to fit the terminal window
    -q, --quiet                  Suppress output to stdout
    -v, --verbose                Enable verbose output
    -h, --help                   Show help output
    -a, --finclude=<str>         Only scan files whose names match this regex
    -p, --fexclude=<str>         Do not scan files whose names match this regex
    -s, --status=<int>           Enable the status server on the specified port

αž€αžΆαžšαžŸαŸ’αž€αŸαž“αžšαžΌαž”αž—αžΆαž–

αž…αžΌαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžŸαŸ’αžœαŸ‚αž„αžšαž€αž―αž€αžŸαžΆαžšαž αžαŸ’αžαž›αŸαžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– (αžšαžΌαž”αž—αžΆαž–αž–αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžš TP-Link).

αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš binwalk αž‡αžΆαž˜αž½αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš --signatureαŸ–

$ binwalk --signature --term archer-c7.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
------------------------------------------------------------------------------------------
21876         0x5574          U-Boot version string, "U-Boot 1.1.4-g4480d5f9-dirty (May
                              20 2019 - 18:45:16)"
21940         0x55B4          CRC32 polynomial table, big endian
23232         0x5AC0          uImage header, header size: 64 bytes, header CRC:
                              0x386C2BD5, created: 2019-05-20 10:45:17, image size:
                              41162 bytes, Data Address: 0x80010000, Entry Point:
                              0x80010000, data CRC: 0xC9CD1E38, OS: Linux, CPU: MIPS,
                              image type: Firmware Image, compression type: lzma, image
                              name: "u-boot image"
23296         0x5B00          LZMA compressed data, properties: 0x5D, dictionary size:
                              8388608 bytes, uncompressed size: 97476 bytes
64968         0xFDC8          XML document, version: "1.0"
78448         0x13270         uImage header, header size: 64 bytes, header CRC:
                              0x78A267FF, created: 2019-07-26 07:46:14, image size:
                              1088500 bytes, Data Address: 0x80060000, Entry Point:
                              0x80060000, data CRC: 0xBB9D4F94, OS: Linux, CPU: MIPS,
                              image type: Multi-File Image, compression type: lzma,
                              image name: "MIPS OpenWrt Linux-3.3.8"
78520         0x132B8         LZMA compressed data, properties: 0x6D, dictionary size:
                              8388608 bytes, uncompressed size: 3164228 bytes
1167013       0x11CEA5        Squashfs filesystem, little endian, version 4.0,
                              compression:xz, size: 14388306 bytes, 2541 inodes,
                              blocksize: 65536 bytes, created: 2019-07-26 07:51:38
15555328      0xED5B00        gzip compressed data, from Unix, last modified: 2019-07-26
                              07:51:41

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž’αŸ†αž–αžΈαžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαžΌαž”αž—αžΆαž– αž™αžΌ - αž”αŸŠαžΌαž” αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’ (αž”αž‹αž˜αž€αžαžΆαžšαžΌαž”αž—αžΆαž–αž“αŸ… 0x5AC0 αž“αž·αž„αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹αž“αŸ… 0x5B00) αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αž‹αž˜αž€αžαžΆ uImage αž“αŸ… 0x13270 αž™αžΎαž„αžŠαžΉαž„αžαžΆαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžΊ MIPS αž αžΎαž™αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αž‚αžΊαž€αŸ†αžŽαŸ‚ 3.3.8 αŸ” αž αžΎαž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αžšαž€αžƒαžΎαž‰αž“αŸ…αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ 0x11CEA5αž™αžΎαž„αž’αžΆαž…αžƒαžΎαž‰ rootfs αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš squashfs.

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž‘αžΆαž‰αž™αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’ (U-Boot) αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ dd:

$ dd if=archer-c7.bin of=u-boot.bin.lzma bs=1 skip=23296 count=41162
41162+0 records in
41162+0 records out
41162 bytes (41 kB, 40 KiB) copied, 0,0939608 s, 438 kB/s

αžŠαŸ„αž™αžŸαžΆαžšαžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž”αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎ LZMA αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αžšαž½αž˜αžœαžΆαŸ–

$ unlzma u-boot.bin.lzma

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αžšαžΌαž”αž—αžΆαž– U-BootαŸ–

$ ls -l u-boot.bin
-rw-rw-r-- 1 sprado sprado 97476 Fev  5 08:48 u-boot.bin

αžαžΎαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž…αž’αŸ†αž–αžΈαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ bootargs?

$ strings u-boot.bin | grep bootargs
bootargs
bootargs=console=ttyS0,115200 board=AP152 rootfstype=squashfs init=/etc/preinit mtdparts=spi0.0:128k(factory-uboot),192k(u-boot),64k(ART),1536k(uImage),14464k@0x1e0000(rootfs) mem=128M

αž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“ U-Boot bootargs αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αŸ…αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ” αž αžΎαž™αž–αžΈαžαžΆαž„αž›αžΎαž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊαžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαŸ”

αžαžΎαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž…αž’αŸ†αž–αžΈαž€αžΆαžšαžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αžšαžΌαž”αž—αžΆαž–αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…?

$ dd if=archer-c7.bin of=uImage bs=1 skip=78448 count=1088572
1088572+0 records in
1088572+0 records out
1088572 bytes (1,1 MB, 1,0 MiB) copied, 1,68628 s, 646 kB/s

αž™αžΎαž„αž’αžΆαž…αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžšαžΌαž”αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ file:

$ file uImage
uImage: u-boot legacy uImage, MIPS OpenWrt Linux-3.3.8, Linux/MIPS, Multi-File Image (lzma), 1088500 bytes, Fri Jul 26 07:46:14 2019, Load Address: 0x80060000, Entry Point: 0x80060000, Header CRC: 0x78A267FF, Data CRC: 0xBB9D4F94

αž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž―αž€αžŸαžΆαžš uImage αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αžŠαŸ‚αž›αž˜αžΆαž“αž”αž‹αž˜αž€αžαžΆαž”αž“αŸ’αžαŸ‚αž˜αŸ” αžαŸ„αŸ‡αž›αž»αž”αž”αž‹αž˜αž€αžαžΆαž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αžšαžΌαž”αž—αžΆαž–αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ–

$ dd if=uImage of=Image.lzma bs=1 skip=72
1088500+0 records in
1088500+0 records out
1088500 bytes (1,1 MB, 1,0 MiB) copied, 1,65603 s, 657 kB/s

αžšαžΌαž”αž—αžΆαž–β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž αžΆαž”αŸ‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αžŸαžΌαž˜β€‹αžŸαŸ’αžšαžΆαž™β€‹αžœαžΆαŸ–

$ unlzma Image.lzma

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αžšαžΌαž”αž—αžΆαž–αžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž…αŸ–

$ ls -la Image
-rw-rw-r-- 1 sprado sprado 3164228 Fev  5 10:51 Image

αžαžΎαž™αžΎαž„αž’αžΆαž…αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‡αžΆαž˜αž½αž™αžšαžΌαž”αž—αžΆαž–αžαžΊαžŽαŸ‚αž›? αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž™αžΎαž„αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αŸ†αžŽαŸ‚αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… αž αžΎαž™αžŸαž·αž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž”αžšαž·αžŸαŸ’αžαžΆαž“αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαžαžΊαžŽαŸ‚αž›αŸ–

$ strings Image | grep "Linux version"
Linux version 3.3.8 (leo@leo-MS-7529) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Mon May 20 18:53:02 CST 2019

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αžΆαž›αž–αžΈαž†αŸ’αž“αžΆαŸ†αž˜αž»αž“ (2019) αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžœαžΆαž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αž“αŸƒαžαžΊαžŽαŸ‚αž›αž›αžΈαž“αž»αž… (3.3.8) αžŠαŸ‚αž›αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž€αŸ’αž“αž»αž„αž†αŸ’αž“αžΆαŸ† 2012 αžŠαŸ„αž™αž…αž„αž€αŸ’αžšαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αž“αŸƒ GCC (4.6) αž•αž„αžŠαŸ‚αžšαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž†αŸ’αž“αžΆαŸ† 2012 !
(αž”αž€αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž αŸ‚αž›αŸ” αžαžΎαž’αŸ’αž“αž€αž“αŸ…αžαŸ‚αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž·αž™αžΆαž›αŸαž™ αž“αž·αž„αž“αŸ…αž•αŸ’αž‘αŸ‡αžŠαŸ‚αžšαž¬αž‘αŸ?)

αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αž˜αŸ’αžšαžΎαžŸ --opcodes αž™αžΎαž„αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎ binwalk αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž˜αžΎαž›αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαžšαžΌαž”αž—αžΆαž–αŸ–

$ binwalk --opcodes Image
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2400          0x960           MIPS instructions, function epilogue
2572          0xA0C           MIPS instructions, function epilogue
2828          0xB0C           MIPS instructions, function epilogue

αž…αž»αŸ‡αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš root αžœαž·αž‰? αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αžŠαŸ„αž™αžŠαŸƒ αž…αžΌαžšαž™αžΎαž„αž”αŸ’αžšαžΎαž‡αž˜αŸ’αžšαžΎαžŸ binwalk --extract:

$ binwalk --extract --quiet archer-c7.bin

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš root αž–αŸαž‰αž›αŸαž‰αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαžšαž„αž˜αž½αž™αŸ–

$ cd _archer-c7.bin.extracted/squashfs-root/

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cat etc/banner
     MM           NM                    MMMMMMM          M       M
   $MMMMM        MMMMM                MMMMMMMMMMM      MMM     MMM
  MMMMMMMM     MM MMMMM.              MMMMM:MMMMMM:   MMMM   MMMMM
MMMM= MMMMMM  MMM   MMMM       MMMMM   MMMM  MMMMMM   MMMM  MMMMM'
MMMM=  MMMMM MMMM    MM       MMMMM    MMMM    MMMM   MMMMNMMMMM
MMMM=   MMMM  MMMMM          MMMMM     MMMM    MMMM   MMMMMMMM
MMMM=   MMMM   MMMMMM       MMMMM      MMMM    MMMM   MMMMMMMMM
MMMM=   MMMM     MMMMM,    NMMMMMMMM   MMMM    MMMM   MMMMMMMMMMM
MMMM=   MMMM      MMMMMM   MMMMMMMM    MMMM    MMMM   MMMM  MMMMMM
MMMM=   MMMM   MM    MMMM    MMMM      MMMM    MMMM   MMMM    MMMM
MMMM$ ,MMMMM  MMMMM  MMMM    MMM       MMMM   MMMMM   MMMM    MMMM
  MMMMMMM:      MMMMMMM     M         MMMMMMMMMMMM  MMMMMMM MMMMMMM
    MMMMMM       MMMMN     M           MMMMMMMMM      MMMM    MMMM
     MMMM          M                    MMMMMMM        M       M
       M
 ---------------------------------------------------------------
   For those about to rock... (%C, %R)
 ---------------------------------------------------------------

αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αž’αžΆαž…αž’αŸ’αžœαžΎαžšαžΏαž„αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž™αžΎαž„β€‹αž’αžΆαž…β€‹αžŸαŸ’αžœαŸ‚αž„β€‹αžšαž€β€‹αž―αž€αžŸαžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆβ€‹αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžŸαž‰αŸ’αž‰αžΆβ€‹αžŸαž˜αŸ’αž„αžΆαžαŸ‹ αž›αŸαžβ€‹αž€αžΌαžŠβ€‹αž‚αŸ’αžšαžΈαž” αž“αž·αž„β€‹αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšβ€‹αžŒαžΈαž‡αžΈαžαž›αŸ” αž™αžΎαž„αž’αžΆαž…αžœαž·αž—αžΆαž‚αž―αž€αžŸαžΆαžšαž‚αŸ„αž›αž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ αž€αžΆαžšβ€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž”αž‰αŸ’αž αžΆ αž“αž·αž„αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αŸ”

αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈ αžœαŸ‰αžΆ ΠΈ chroot αŸ” αž™αžΎαž„αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (αžαŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜) αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž–αžΈαžšαžΌαž”αž—αžΆαž–αŸ–

$ ls
bin  dev  etc  lib  mnt  overlay  proc  rom  root  sbin  sys  tmp  usr  var  www

$ cp /usr/bin/qemu-mips-static .

$ sudo chroot . ./qemu-mips-static bin/busybox
BusyBox v1.19.4 (2019-05-20 18:13:49 CST) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, addgroup, adduser, arping, ash, awk, basename, cat, chgrp, chmod, chown, chroot, clear, cmp, cp, crond, crontab, cut, date, dd, delgroup, deluser, dirname, dmesg, echo, egrep, env, expr, false,
    fgrep, find, free, fsync, grep, gunzip, gzip, halt, head, hexdump, hostid, id, ifconfig, init, insmod, kill, killall, klogd, ln, lock, logger, ls, lsmod, mac_addr, md5sum, mkdir, mkfifo, mknod, mktemp,
    mount, mv, nice, passwd, pgrep, pidof, ping, ping6, pivot_root, poweroff, printf, ps, pwd, readlink, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, start-stop-daemon, strings,
    switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp, time, top, touch, tr, traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, yes, zcat

αž’αžŸαŸ’αž…αžΆαžšαŸ’αž™! αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΌαž˜αž…αŸ†αžŽαžΆαŸ†αžαžΆαž€αŸ†αžŽαŸ‚ BusyBox αž‚αžΊ 1.19.4 αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αžšαž”αžŸαŸ‹ BusyBoxαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž“αŸ…αžαŸ‚αž˜αŸαžŸαžΆ αž†αŸ’αž“αžΆαŸ† 2012αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ TP-Link αž”αž‰αŸ’αž…αŸαž‰αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2019 αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ (GCC toolchain, kernel, BusyBox αŸ”αž›αŸ”) αž…αžΆαž”αŸ‹αž–αžΈαž†αŸ’αž“αžΆαŸ† 2012!

αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž’αŸ’αž“αž€β€‹αž™αž›αŸ‹β€‹αžαžΆβ€‹αž αŸαžαž»β€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αžαŸ’αž‰αž»αŸ†β€‹αžαŸ‚αž„β€‹αžαŸ‚β€‹αžŠαŸ†αž‘αžΎαž„ OpenWRT αž“αŸ…β€‹αž›αžΎβ€‹αžšαŸ‰αŸ„αžαž‘αŸαžšβ€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž‰αž»αŸ†?

αž“αŸ„αŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸαŸ”

Binwalk αž€αŸαž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαžœαž·αž—αžΆαž‚ entropy αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž‘αž·αž“αŸ’αž“αž“αŸαž™ entropy αž†αŸ… αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαžΆαž αŸ’αžœ entropy αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž’αŸαžαŸ’αžšαžΌαž—αžΈαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž„αŸ’αž€αŸαžαžƒαžΎαž‰αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸƒαž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αž‚αžΊαž…αŸƒαžŠαž“αŸ’αž™αŸ” αž“αŸαŸ‡αž’αžΆαž…αž˜αžΆαž“αž“αŸαž™αžαžΆαžšαžΌαž”αž—αžΆαž–αž˜αžΆαž“αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” αž”αž„αŸ’αž αžΆαž”αŸ‹ αž¬αž”αŸ†αž—αŸαž“αŸ’αžαŸ” αž‚αž“αŸ’αž›αžΉαŸ‡β€‹αž€αžΆαžšβ€‹αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”β€‹αžšαžΉαž„? αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž˜αž·αž“αž˜αžΆαž“αŸ”

αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αžšαŸ‰αŸ„αžαž‘αŸαžšαž•αŸ’αž‘αŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎ binwalk αŸ” αžαžΎαž’αŸ’αž“αž€αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαŸ‰αŸ„αžαž‘αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ?

αž™αžΎαž„αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αž„αžŠαŸ‚αžšαŸ” --raw αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž›αŸ†αžŠαžΆαž”αŸ‹αž”αŸƒαž†αŸ…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– αž¬αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš --hexdump αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αž hex dump αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž―αž€αžŸαžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž–αžΈαžš αž¬αž…αŸ’αžšαžΎαž“αŸ”

αž αžαŸ’αžαž›αŸαžαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… binwalk αžαžΆαž˜αžšαž™αŸˆαž―αž€αžŸαžΆαžšαž αžαŸ’αžαž›αŸαžαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš --magicαž¬αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž–αž½αž€αžœαžΆαž‘αŸ…αžαž $ HOME / .config / binwalk / magic.

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αž–αŸαžαŸŒαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈ binwalk αž“αŸ… αž―αž€αžŸαžΆαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžš.

αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ binwalk

αž˜αžΆαž“ API binwalk αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž˜αŸ‰αžΌαžŒαž»αž› Python αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™αžŸαŸ’αž‚αŸ’αžšαžΈαž” Python αžŽαžΆαž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž€αŸαž“ binwalk αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž αžΎαž™αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ binwalk αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž‘αž½αž“αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αžŠαŸ„αž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž–αžΈαžšαž”αž“αŸ’αž‘αžΆαžαŸ‹αž“αŸƒαž€αžΌαžŠ Python!

import binwalk
binwalk.scan()

αžŠαŸ„αž™αž”αŸ’αžšαžΎ Python API αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αžŠαŸ‚αžšαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Python αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž–αž„αŸ’αžšαžΈαž€ binwalk αŸ”

αž€αŸαž˜αžΆαž“αžŠαŸ‚αžšαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ IDA αž“αž·αž„αž€αŸ†αžŽαŸ‚αž–αž–αž€ Binwalk Pro.

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αŸ’αž“αž€αž˜αž·αž“αž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž–αžΈαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αž αž αžΎαž™αžŸαžΆαž€αž›αŸ’αž”αž„ binwalk? αžαŸ’αž‰αž»αŸ†αžŸαž“αŸ’αž™αžΆαžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž˜αžΆαž“αž—αžΆαž–αžŸαž”αŸ’αž”αžΆαž™αžšαžΈαž€αžšαžΆαž™αž‡αžΆαž…αŸ’αžšαžΎαž“ :)

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹