рдмрд┐рдирд╡реЙрдХ рд╡рд╛рдкрд░реВрди рд╣реЛрдо рд░рд╛рдЙрдЯрд░рдЪреЗ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдирд┐рдЕрд░рд┐рдВрдЧ рдХрд░рд╛. рддреБрдордЪрд╛ рддреБрдордЪреНрдпрд╛ рд░рд╛рдЙрдЯрд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХрд╛?

рдмрд┐рдирд╡реЙрдХ рд╡рд╛рдкрд░реВрди рд╣реЛрдо рд░рд╛рдЙрдЯрд░рдЪреЗ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдирд┐рдЕрд░рд┐рдВрдЧ рдХрд░рд╛. рддреБрдордЪрд╛ рддреБрдордЪреНрдпрд╛ рд░рд╛рдЙрдЯрд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХрд╛?

рдХрд╛рд╣реА рджрд┐рд╡рд╕рд╛рдВрдкреВрд░реНрд╡реА, рдореА рдмрд┐рдирд╡реЙрдХ рд╡рд╛рдкрд░реВрди рдорд╛рдЭреНрдпрд╛ рд░рд╛рдЙрдЯрд░рдЪреЗ рдлрд░реНрдорд╡реЗрдЕрд░ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдирд┐рдпрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рдореА рд╕реНрд╡рддрдГ рд╡рд┐рдХрдд рдШреЗрддрд▓реЗ TP-Link Archer C7 рд╣реЛрдо рд░рд╛рдЙрдЯрд░. рд╕рд░реНрд╡реЛрддреНрддрдо рд░рд╛рдЙрдЯрд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдорд╛рдЭреНрдпрд╛ рдЧрд░рдЬрд╛рдВрд╕рд╛рдареА рдкреБрд░реЗрд╕рд╛ рдЖрд╣реЗ.

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

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

рдмрд┐рдирд╡реЙрдХ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рдмрд┐рдирд╡реЙрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдиреАрдЕрд░рд┐рдВрдЧ рдЖрдгрд┐ рдлрд░реНрдорд╡реЗрдЕрд░ рдЗрдореЗрдЬ рдПрдХреНрд╕рдЯреНрд░реЕрдХреНрд╢рдирд╕рд╛рдареА рдПрдХ рдореБрдХреНрдд рд╕реНрд░реЛрдд рд╕рд╛рдзрди рдЖрд╣реЗ.

рдХреНрд░реЗрдЧ рд╣реЗрдлрдирд░ рджреНрд╡рд╛рд░реЗ 2010 рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ, рдмрд┐рдирд╡реЙрдХ рдлрд░реНрдорд╡реЗрдЕрд░ рдкреНрд░рддрд┐рдорд╛ рд╕реНрдХреЕрди рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рдлрд╛рдпрд▓реА рд╢реЛрдзреВ рд╢рдХрддреЗ, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдорд╛ рдУрд│рдЦреВ рдЖрдгрд┐ рдХрд╛рдвреВ рд╢рдХрддреЗ, рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдХреЛрдб, рд╕рдВрдХреБрдЪрд┐рдд рд╕рдВрдЧреНрд░рд╣, рдмреВрдЯрд▓реЛрдбрд░ рдЖрдгрд┐ рдХрд░реНрдирд▓, рдлрд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдЬрд╕реЗ рдХреА JPEG рдЖрдгрд┐ PDF рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА.

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

рддреБрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╛рдЗрд▓реНрд╕ (passwd, shadow, рдЗ.) рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдорд╛ рдХрд╛рдвреВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЕрд╢ рддреЛрдбрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рджреЛрди рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдмрд╛рдпрдирд░реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд░реВ рд╢рдХрддрд╛. рд╕рдВрдХреБрдЪрд┐рдд рдбреЗрдЯрд╛ рдХрд┐рдВрд╡рд╛ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреА рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдбреЗрдЯрд╛рд╡рд░ рдПрдиреНрдЯреНрд░реЙрдкреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рд╕рд░реНрд╡ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рди рдХрд░рддрд╛.

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рддреЗрдереЗ рдЖрд╣реЗ :)

рдмрд┐рдирд╡реЙрдХ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ?

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

рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпреБрдЯрд┐рд▓рд┐рдЯреА рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХрд╛ 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 рдлрд╛рдЗрд▓ рдЖрд╣реЗ рд╣реЗ рдорд╛рд╣реАрдд рдЖрд╣реЗ. рдЪрд╛рд▓реВ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдлрд╛рдЗрд▓ рд╕реНрд╡рд╛рдХреНрд╖рд░реАрдВрдЪреА рдпрд╛рджреА рдЖрд╣реЗ.

рдмрд┐рдирд╡реЙрдХ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдкрд░рдВрддреБ рдХреЗрд╡рд│ рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рд╢реЛрдзрдгреНрдпрд╛рдРрд╡рдЬреА, рдмрд┐рдирд╡реЙрдХ рд╕рдВрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рд╕реНрдХреЕрди рдХрд░реЗрд▓. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдмрд┐рдирд╡реЙрдХ рдЗрдореЗрдЬрдордзреНрдпреЗ рдЖрдврд│рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛рдвреВ рд╢рдХрддреЛ.

рд╕рд╛рдзрдиреЗ file ╨╕ binwalk рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд╛ libmagic рдлрд╛рдЗрд▓ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдУрд│рдЦрдгреНрдпрд╛рд╕рд╛рдареА. рдкрд░рдВрддреБ binwalk рд╕рдВрдХреБрдЪрд┐рдд/рдЭрд┐рдк рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдпрд▓реА, рдлрд░реНрдорд╡реЗрдЕрд░ рд╢реАрд░реНрд╖рд▓реЗрдЦ, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓, рдмреВрдЯрд▓реЛрдбрд░, рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдЖрдгрд┐ рдЗрддрд░ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓ рдЬрд╛рджреВрдЪреНрдпрд╛ рд╕реНрд╡рд╛рдХреНрд╖рд░реАрдВрдЪреНрдпрд╛ рд╕реВрдЪреАрд▓рд╛ рджреЗрдЦреАрд▓ рд╕рдорд░реНрдерди рджреЗрддреЗ.

рдЪрд▓рд╛ рдереЛрдбреА рдордЬрд╛ рдХрд░реВрдпрд╛?

рдмрд┐рдирд╡реЙрдХ рд╕реНрдерд╛рдкрдирд╛

Linux, OSX, FreeBSD рдЖрдгрд┐ Windows рдпрд╛рд╕рд╣ рдЕрдиреЗрдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдмрд┐рдирд╡реЙрдХ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ.

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

рдмрд┐рдирд╡реЙрдХрдордзреНрдпреЗ рдЕрдиреЗрдХ рднрд┐рдиреНрди рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЖрд╣реЗрдд:

$ 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-рд▓рд┐рдВрдХ).

--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). 0x13270 рд╡рд░реАрд▓ uImage рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ 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

рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдпреВ-рдмреВрдЯ рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ:

$ 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-Bot Environment Variable 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 рдордзреНрдпреЗ рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ Linux рдХрд░реНрдирд▓ (2012) рдЪреА рдЬреБрдиреА рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдд рдЖрд╣реЗ, рдЬреА 4.6 рдкрд╛рд╕реВрди рдЬреАрд╕реАрд╕реА (2012) рдЪреНрдпрд╛ рдЦреВрдк рдЬреБрдиреНрдпрд╛ рдЖрд╡реГрддреНрддреАрд╕рд╣ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. !
(рдЕрдВрджрд╛рдЬреЗ рднрд╛рд╖рд╛рдВрддрд░. рддреБрдордЪрд╛ рдЕрдЬреВрдирд╣реА рдСрдлрд┐рд╕ рдЖрдгрд┐ рдШрд░реА рддреБрдордЪреНрдпрд╛ рд░рд╛рдЙрдЯрд░рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХрд╛?)

рдкрд░реНрдпрд╛рдпрд╛рд╕рд╣ --opcodes рдЖрдореНрд╣реА рдорд╢реАрди рд╕реВрдЪрдирд╛ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЗрдореЗрдЬрдЪреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд┐рдирд╡реЙрдХ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ:

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

рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдордЪреЗ рдХрд╛рдп? рдкреНрд░рддрд┐рдорд╛ рд╕реНрд╡рд╣рд╕реНрддреЗ рдХрд╛рдврдгреНрдпрд╛рдРрд╡рдЬреА, рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВ binwalk --extract:

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

рд╕рдВрдкреВрд░реНрдг рд░реВрдЯ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рдХрд╛рдврд▓реА рдЬрд╛рдИрд▓:

$ 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 рдЯреВрд▓рдЪреЗрди, рдХрд░реНрдирд▓, BusyBox, рдЗ.) рд╡рд╛рдкрд░реВрди 2012 рдордзреНрдпреЗ рдлрд░реНрдорд╡реЗрдЕрд░ рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ!

рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрд▓реЗ рдЖрд╣реЗ рдХреА рдореА рдиреЗрд╣рдореА рдорд╛рдЭреНрдпрд╛ рд░рд╛рдЙрдЯрд░рд╡рд░ OpenWRT рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ?

рдПрд╡рдвреЗрдЪ рдирд╛рд╣реА

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

рдмрд┐рдирд╡реЙрдХ рд╡рд╛рдкрд░реВрди рд╣реЛрдо рд░рд╛рдЙрдЯрд░рдЪреЗ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдЗрдВрдЬрд┐рдирд┐рдЕрд░рд┐рдВрдЧ рдХрд░рд╛. рддреБрдордЪрд╛ рддреБрдордЪреНрдпрд╛ рд░рд╛рдЙрдЯрд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╡рд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХрд╛?

рдЖрдкрдг рдкреЕрд░рд╛рдореАрдЯрд░ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ --raw рдЗрдореЗрдЬ рдХрд┐рдВрд╡рд╛ рдкреЕрд░рд╛рдореАрдЯрд░рдордзреНрдпреЗ рд╕рд╛рдиреБрдХреВрд▓ рд░реЙ рдмрд╛рдЗрдЯ рдЕрдиреБрдХреНрд░рдо рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА --hexdump рджреЛрди рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рдлрд╛рдЗрд▓реНрд╕рдЪреА рддреБрд▓рдирд╛ рдХрд░реВрди рд╣реЗрдХреНрд╕ рдбрдВрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░реВрди рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╡рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдлрд╛рдЗрд▓рджреНрд╡рд╛рд░реЗ binwalk рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ --magic, рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдВрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЬреЛрдбреВрди $ HOME / .config / binwalk / magic.

рддреБрдореНрд╣рд╛рд▓рд╛ рдмрд┐рдирд╡реЙрдХрдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдпреЗрдереЗ рдорд┐рд│реЗрд▓ рдЕрдзрд┐рдХреГрдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.

рдмрд┐рдирд╡реЙрдХ рд╡рд┐рд╕реНрддрд╛рд░

рддреЗрдереЗ API binwalk, рдПрдХ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдореНрд╣рдгреВрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА Python рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░реЗ binwalk рд╕реНрдХреЕрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЖрдгрд┐ binwalk рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдпреБрдЯрд┐рд▓рд┐рдЯреА рдкрд╛рдпрдерди рдХреЛрдбрдЪреНрдпрд╛ рдлрдХреНрдд рджреЛрди рдУрд│реАрдВрд╕рд╣ рдЬрд╡рд│рдЬрд╡рд│ рдкреВрд░реНрдгрдкрдгреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ!

import binwalk
binwalk.scan()

Python API рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рджреЗрдЦреАрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛ рдкрд╛рдпрдерди рдкреНрд▓рдЧрдЗрди рдмрд┐рдирд╡реЙрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдЖрдгрд┐ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рджреЗрдЦреАрд▓ рд╡рд┐рджреНрдпрдорд╛рди рдЖрд╣реЗ IDA рдкреНрд▓рдЧрдЗрди рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рдЖрд╡реГрддреНрддреА рдмрд┐рдирд╡реЙрдХ рдкреНрд░реЛ.

рдордЧ рддреБрдореНрд╣реА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░реВрди рдлрд░реНрдорд╡реЗрдЕрд░ рдЗрдореЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВрди рдмрд┐рдирд╡реЙрдХ рдХрд╛ рдХрд░рдд рдирд╛рд╣реА? рдореА рд╡рдЪрди рджреЗрддреЛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЦреВрдк рдордЬрд╛ рдпреЗрдИрд▓ :)

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

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