рдмрд┐рдирд╡рд╛рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдШрд░рдХреЛ рд░рд╛рдЙрдЯрд░рд▓рд╛рдИ рд░рд┐рднрд░реНрд╕ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХреЗ рддрдкрд╛рдИ рдЖрдлреНрдиреЛ рд░рд╛рдЙрдЯрд░ рд╕рдлреНрдЯрд╡реЗрдпрд░рдорд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

рдмрд┐рдирд╡рд╛рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдШрд░рдХреЛ рд░рд╛рдЙрдЯрд░рд▓рд╛рдИ рд░рд┐рднрд░реНрд╕ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХреЗ рддрдкрд╛рдИ рдЖрдлреНрдиреЛ рд░рд╛рдЙрдЯрд░ рд╕рдлреНрдЯрд╡реЗрдпрд░рдорд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

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

рдореИрд▓реЗ рдЖрдлреИрд▓рд╛рдИ рдХрд┐рдиреЗ TP-Link рдЖрд░реНрдЪрд░ C7 рдЧреГрд╣ рд░рд╛рдЙрдЯрд░ред рдЙрддреНрддрдо рд░рд╛рдЙрдЯрд░ рд╣реЛрдЗрди, рддрд░ рдореЗрд░реЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрддред

рд╣рд░реЗрдХ рдкрдЯрдХ рдо рдирдпрд╛рдБ рд░рд╛рдЙрдЯрд░ рдХрд┐рдиреНрдЫреБ, рдо рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреБ OpenWRTред рдХреЗ рдХреЛ рд▓рд╛рдЧрд┐? рдПрдХ рдирд┐рдпрдордХреЛ рд░реВрдкрдорд╛, рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВрд▓реЗ рдЖрдлреНрдиреЛ рд░рд╛рдЙрдЯрд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдзреЗрд░реИ рдЦреНрдпрд╛рд▓ рдЧрд░реНрджреИрдирдиреН рд░ рд╕рдордпрд╕рдБрдЧреИ рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреБрд░рд╛рдиреЛ рд╣реБрдиреНрдЫ, рдХрдордЬреЛрд░реАрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ, рд░ рдпрд╕реНрддреИ, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рдЪрд╛рд░ рдкрд╛рдЙрдиреБрд╣реБрдиреНрдЫред рддреНрдпрд╕рдХрд╛рд░рдг, рдо OpenWRT рдлрд░реНрдорд╡реЗрдпрд░рд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдиреНрдЫреБ, рдЬреБрди рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдореБрджрд╛рдпрджреНрд╡рд╛рд░рд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╕рдорд░реНрдерд┐рдд рдЫред

OpenWRT рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реЗрд░, рдо рдкрдирд┐ рдирд╡реАрдирддрдо рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрдмрд╛рдЯ рдореЗрд░реЛ рдирдпрд╛рдБ рдЖрд░реНрдЪрд░ C7 рдЕрдиреНрддрд░реНрдЧрдд рд░ рдпрд╕рд▓рд╛рдИ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░рд┐рдпреЛред рд╡рд┐рд╢реБрджреНрдз рд░рдорд╛рдЗрд▓реЛрдХреЛ рд▓рд╛рдЧрд┐ рд░ рдмрд┐рдирд╡рд╛рдХрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдмрд┐рдирд╡рд╛рдХ рднрдиреЗрдХреЛ рдХреЗ рд╣реЛ?

рдмрд┐рдирд╡рд╛рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд░рд┐рднрд░реНрд╕ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩ рд░ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдирд┐рдХрд╛рд╕реАрдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрдкрдХрд░рдг рд╣реЛред

рдХреНрд░реЗрдЧ рд╣реЗрдлрдирд░ рджреНрд╡рд╛рд░рд╛ 2010 рдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ, рдмрд┐рдирд╡рд╛рдХрд▓реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐рд╣рд░реВ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рд░ рдлрд╛рдЗрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди, рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдЫрд╡рд┐рд╣рд░реВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдХреЛрдб, рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рдЕрднрд┐рд▓реЗрдЦрд╣рд░реВ, рдмреБрдЯрд▓реЛрдбрд░рд╣рд░реВ рд░ рдХрд░реНрдиреЗрд▓рд╣рд░реВ, рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛рд╣рд░реВ рдЬрд╕реНрддреИ JPEG рд░ PDF, рд░ рдзреЗрд░реИ рдердк рдЧрд░реНрди рд╕рдХреНрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдлрд░реНрдорд╡реЗрдпрд░рд▓рд╛рдИ рд░рд┐рднрд░реНрд╕ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ binwalk рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрдиред рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН, рдлрд╛рдЗрд▓рд╣рд░реВ рдирд┐рдХрд╛рд▓реНрдиреБрд╣реЛрд╕реН, рд░ рдмреНрдпрд╛рдХрдбреЛрд░ рд╡рд╛ рдбрд┐рдЬрд┐рдЯрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВ рдкрдирд┐ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ opcodes рд╡рд┐рднрд┐рдиреНрди CPU рд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛рдХреЛ рд▓рд╛рдЧрд┐ред

рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╛рдЗрд▓рд╣рд░реВ (passwd, рдЫрд╛рдпрд╛, рдЖрджрд┐) рдЦреЛрдЬреНрди рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдЫрд╡рд┐рд╣рд░реВ рдирд┐рдХрд╛рд▓реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣реНрдпрд╛рд╕рд╣рд░реВ рддреЛрдбреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВрд▓реЗ рджреБрдИ рд╡рд╛ рдмрдвреА рдлрд╛рдЗрд▓рд╣рд░реВ рдмреАрдЪ рдмрд╛рдЗрдирд░реА рдкрд╛рд░реНрд╕рд┐рдЩ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рдбрд╛рдЯрд╛ рд╡рд╛ рдПрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ рдЗрдиреНрдХреНрд░рд┐рдкреНрд╕рди рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдбрд╛рдЯрд╛рдорд╛ рдПрдиреНрдЯреНрд░реЛрдкреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рд╕рдмреИ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд┐рдирд╛ред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рддреНрдпрд╣рд╛рдБ рдЫ :)

рдмрд┐рдирд╡рд╛рдХрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ?

рдмрд┐рдирд╡рд╛рдХрдХреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рднрдиреЗрдХреЛ рдпрд╕рдХреЛ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реНрдХреНрдпрд╛рдирд┐рдЩ рд╣реЛред 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 рдлрд╛рдЗрд▓ рд╣реЛред рдЕрди рд╡рд┐рдХрд┐рдкреЗрдбрд┐рдпрд╛ рддреНрдпрд╣рд╛рдБ рд╕рд╛рдЭрд╛ рдлрд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЫред

Binwalk рддреНрдпрд╣рд┐ рддрд░рд┐рдХрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрджрдЫред рддрд░ рдлрд╛рдЗрд▓рдХреЛ рд╕реБрд░реБрдорд╛ рдорд╛рддреНрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдЦреЛрдЬреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, binwalk рд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрдиреЗрдЫред рдердк рд░реВрдкрдорд╛, binwalk рд▓реЗ рдЫрд╡рд┐рдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдирд┐рдХрд╛рд▓реНрди рд╕рдХреНрдЫред

рдЙрдкрдХрд░рдгрд╣рд░реВ file ╨╕ binwalk рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН libmagic рдлрд╛рдЗрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиред рддрд░ binwalk рдердк рд░реВрдкрдорд╛ рдХрдореНрдкреНрд░реЗрд╕реНрдб/рдЬрд┐рдк рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ, рдлрд░реНрдорд╡реЗрдпрд░ рд╣реЗрдбрд░рд╣рд░реВ, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд╣рд░реВ, рдмреБрдЯрд▓реЛрдбрд░рд╣рд░реВ, рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд░ рдпрд╕реНрддреИ рдЕрдиреНрдп рдЦреЛрдЬреА рдЧрд░реНрди рдЕрдиреБрдХреВрд▓рди рдЬрд╛рджреБрдИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рдПрдХрдЫрд┐рди рд░рдорд╛рдЗрд▓реЛ рдЧрд░реМрдВ ?

Binwalk рд╕реНрдерд╛рдкрдирд╛

Binwalk рд▓рд╛рдИ рд▓рд┐рдирдХреНрд╕, 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-рд▓рд┐рдВрдХ).

--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

рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдпрд╕ рдЫрд╡рд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдзреЗрд░реИ рдЬрд╛рдирдХрд╛рд░реА рдЫред

рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ U- рдмреБрдЯ рдмреБрдЯрд▓реЛрдбрд░рдХреЛ рд░реВрдкрдорд╛ (рдЫрд╡рд┐ рд╣реЗрдбрд░ рдорд╛ 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

рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ 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-рдмреБрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ 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

рд░реВрдЯ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ? рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдЫрд╡рд┐ рдирд┐рдХрд╛рд▓реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ 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)
 ---------------------------------------------------------------

рдЕрдм рд╣рд╛рдореА рдзреЗрд░реИ рдлрд░рдХ рдХреБрд░рд╛ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

рд╣рд╛рдореА рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВ, рдкрд╛рд╕рд╡рд░реНрдб рд╣реНрдпрд╛рд╕рд╣рд░реВ, рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░ рдбрд┐рдЬрд┐рдЯрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдЦреЛрдЬреНрди рд╕рдХреНрдЫреМрдВред рд╣рд╛рдореА рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рд░ рдХрдордЬреЛрд░реАрд╣рд░реВред

рд╕рд╣рдпреЛрдЧрдХреЛ рд╕рд╛рде рдУрд╣реЛ ╨╕ рдХреНрд░реЛрдЯ рд╣рд╛рдореА рдЫрд╡рд┐рдмрд╛рдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп (рдЕрдиреБрдХрд░рдг) рдкрдирд┐ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдЫреМрдВ:

$ 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 рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреБ?

рддреНрдпрддрд┐ рдорд╛рддреНрд░ рд╣реЛрдЗрди

Binwalk рд▓реЗ рдПрдиреНрдЯреНрд░реЛрдкреА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрдирд┐ рдЧрд░реНрди рд╕рдХреНрдЫ, рдХрдЪреНрдЪрд╛ рдПрдиреНрдЯреНрд░реЛрдкреА рдбрд╛рдЯрд╛ рдЫрд╛рдкреНрди рд╕рдХреНрдЫ, рд░ рдПрдиреНрдЯреНрд░реЛрдкреА рдЧреНрд░рд╛рдлрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрдЫред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЫрд╡рд┐рдорд╛ рдмрд╛рдЗрдЯрд╣рд░реВ рдЕрдирд┐рдпрдорд┐рдд рд╣реБрдБрджрд╛ рдареВрд▓реЛ рдПрдиреНрдЯреНрд░реЛрдкреА рдЕрд╡рд▓реЛрдХрди рдЧрд░рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реБрди рд╕рдХреНрдЫ рдХрд┐ рдЫрд╡рд┐рдорд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб, рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рд╡рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЫред рд╣рд╛рд░реНрдбрдХреЛрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдЮреНрдЬреА? рдХрд┐рди рдЫреИрдиред

рдмрд┐рдирд╡рд╛рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдШрд░рдХреЛ рд░рд╛рдЙрдЯрд░рд▓рд╛рдИ рд░рд┐рднрд░реНрд╕ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХреЗ рддрдкрд╛рдИ рдЖрдлреНрдиреЛ рд░рд╛рдЙрдЯрд░ рд╕рдлреНрдЯрд╡реЗрдпрд░рдорд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

рд╣рд╛рдореА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ --raw рдЫрд╡рд┐ рд╡рд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдорд╛ рдЕрдиреБрдХреВрд▓рди рдХрдЪреНрдЪрд╛ рдмрд╛рдЗрдЯ рдЕрдиреБрдХреНрд░рдо рдлреЗрд▓рд╛ рдкрд╛рд░реНрди --hexdump рджреБрдИ рд╡рд╛ рдмрдвреА рдЗрдирдкреБрдЯ рдлрд╛рдЗрд▓рд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реА рд╣реЗрдХреНрд╕ рдбрдореНрдк рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиред

рдЕрдиреБрдХреВрд▓рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЖрджреЗрд╢ рд░реЗрдЦрд╛рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдХреВрд▓рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдлрд╛рдЗрд▓ рдорд╛рд░реНрдлрдд binwalk рдорд╛ рдердкреНрди рд╕рдХрд┐рдиреНрдЫ --magic, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдердкреЗрд░ $ HOME / .config / binwalk / magic.

рддрдкрд╛рдИрд▓реЗ binwalk рдмрд╛рд░реЗ рдердк рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ.

binwalk рд╡рд┐рд╕реНрддрд╛рд░

рддреНрдпрд╣рд╛рдБ API binwalk, рдкрд╛рдЗрдерди рдореЛрдбреНрдпреБрд▓рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдкрдорд╛ рдмрд┐рдирд╡рд╛рдХ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ binwalk рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд╛рдЗрдерди рдХреЛрдбрдХреЛ рджреБрдИ рд▓рд╛рдЗрдирд╣рд░реВрд╕рдБрдЧ рд▓рдЧрднрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирдХреНрдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ!

import binwalk
binwalk.scan()

рдкрд╛рдЗрдерди рдПрдкреАрдЖрдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддрдкрд╛рдЗрдБ рдкрдирд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдкрд╛рдЗрдерди рдкреНрд▓рдЧрдЗрдирд╣рд░реВ рдмрд┐рдирд╡рд╛рдХ рдХрдиреНрдлрд┐рдЧрд░ рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиред

рдкрдирд┐ рдЫ IDA рдкреНрд▓рдЧрдЗрди рд░ рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕реНрдХрд░рдг рдмрд┐рдирд╡рд╛рдХ рдкреНрд░реЛ.

рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдЗрдБ рдХрд┐рди рдЗрдиреНрдЯрд░рдиреЗрдЯрдмрд╛рдЯ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реБрдиреНрди рд░ рдмрд┐рдирд╡рд╛рдХ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реБрдиреНрди? рдо рддрд┐рдореАрд▓рд╛рдИ рдзреЗрд░реИ рд░рдорд╛рдЗрд▓реЛ рд╣реБрдиреЗрдЫ рд╡рд╛рдЪрд╛ рдЧрд░реНрдЫреБ :)

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди