рдмреНрд▓реВрдордмрд░реНрдЧ рдХреА рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдорджрд░рдмреЛрд░реНрдб рдкрд░ рдХреБрдЫ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХрдерд┐рдд рддреМрд░ рдкрд░ рд▓рдЧрд╛рдП рдЧрдП рдереЗ [
рдЪреАрдиреА рдиреЗ рдЕрдореЗрд░рд┐рдХреА рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛] рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг (рдЙрдирдХреА рдЕрдиреБрдорд╛рдирд┐рдд рдЖрдХрд╛рд░, рдХреНрд╖рдорддрд╛рдУрдВ рдпрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐) рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд┐рдПред
рдХреБрдЫ рджрд┐рдиреЛрдВ рдмрд╛рдж,
рдмреНрд▓реВрдордмрд░реНрдЧ рдкрддреНрд░рд┐рдХрд╛ рдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдмреВрдд рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╣реИ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╣рд┐рдд рдЫрд┐рдбрд╝:
рдХрд╛рдиреВрдиреА рд╕рд░реНрд╡рд░ рдиреЗ рдПрдХ рддрд░рд╣ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ, рджреВрд╕рд░реЗ рдореЗрдВ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдП рд╣реИрдВред
рдорджрд░рдмреЛрд░реНрдб рд╕реЗ рд╕реАрдзреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЖрдк BMC (рдмреЗрд╕рдмреЛрд░реНрдб рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ - рдПрдХ рдШрдЯрдХ рдЬреЛ рдореБрдЦреНрдп рдЪреИрдирд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЛ BMC рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐
рдЖрдЗрдП рдПрдирдЖрдИрд╕реА (
рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб ) рдФрд░ рдмреАрдПрдорд╕реА рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рджреЗрдЦреЗрдВред рд╕рдорд░реНрдкрд┐рдд рдЪреИрдирд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди IPMI рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рдмрдВрдзрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред
IPMI
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЖрдИрдкреАрдПрдордЖрдИ тАЬрдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рдмрдВрдзрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрд╡рд╛рдпрддреНрдд рд░реВрдк рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдФрд░ рдЙрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред IPMI рдХреА рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдпреЛрдВ, рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдХреА рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛, рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░, BIOS рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рдмрдВрдзрди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддреА рд╣реИрдВред тАЭ рдмрд╣реБрдд рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рдЬреИрд╕рд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реНрд▓реЛрдЪрд╛рд░реНрдЯ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрде рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

IPMI рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ NIC: SMBus рдФрд░ NC-SI рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд╛рдЗрдбрдмреИрдВрдб рдЪреИрдирд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред NC-SI рдПрдХ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ SMBus рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ рдЬреЛ рдПрдиреНрд╣рд╛рдВрд╕реНрдб рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдЧрддрд┐ рдФрд░ рдЕрдиреНрдп рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдХреЗрддреЛрдВ (рд▓рдЧрднрдЧ 10) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╣рдо рдПрдХ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЙрд╕рдХреЗ рдХрд╛рдо рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рддреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП, SMBus рдкрд░ рд╡рд╛рд╕ рдХрд░реЗрдВред
SMBus
рдПрд╕рдПрдордмреАрд╕ (рд╕рд┐рд╕реНрдЯрдо рдореИрдиреЗрдЬрдореЗрдВрдЯ рдмрд╕) рдмрд┐рдЬрд▓реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рд╕реАрдзреА-рд╕рд░рд▓ рд╕рдВрдЪрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рддрд░рдлрд╛ рд╕рд░рд▓ рджреЛ-рддрд╛рд░ рдмрд╕ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдХреНрд╕рд░ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдорджрд░рдмреЛрд░реНрдб рдХреЛ рдПрдХ рд╢рдХреНрддрд┐ рд╕реНрд░реЛрдд рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
I 2 C рдмрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдорддреМрд░ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреЗрд╡рд▓ рджреЛ рд╕рд┐рдЧреНрдирд▓ (рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдФрд░ рдбреЗрдЯрд╛) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рддреАрд╕рд░рд╛ рд╕рд┐рдЧреНрдирд▓ рдПрдХ рдмрд╛рдзрд╛ рд╣реИред рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдЧреЗрдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реАред
рдкрд╣рд▓реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ
рдЖрдкрдХреЛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмреАрдПрдорд╕реА рдХреЗ рд╕рд╛рде рдорджрд░рдмреЛрд░реНрдб рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд░реНрд╡рд░ рдорджрд░рдмреЛрд░реНрдб рдХреА рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ
рдЗрдВрдЯреЗрд▓ 82574L рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣,
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, "SMBus рдЙрдиреНрдирдд рдкрд╛рд╕-рдереНрд░реВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕" рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдмрд╕ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд, рдпрд╣ рдкреАрд╕реАрдЖрдИ-рдИ рдХрд╛рд░реНрдб рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрддрд╛ рд╣реИред
SMBus рдкрд╣реБрдБрдЪ
рд╣рдо рд╕реНрдЯреЛрд░ рдкрд░ рдЧрдП, рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 82574L рдЪрд┐рдк рдХреЗ рд╕рд╛рде
Intel EXPI9301CTBLK рдХрд╛рд░реНрдб рд╣реИрдВред рдЕрдм рдХреНрдпрд╛
рдкреНрд░рд▓реЗрдЦрди SMB_DAT рдФрд░ SMB_ALRT_N рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗ рд╕рднреА рд╕рдВрдкрд░реНрдХ рдкреИрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдПред рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рдЖрд╕рд╛рди рд▓рдЧ рд░рд╣рд╛ рд╣реИред
рдПрдирдЖрдИрд╕реА рдкреАрд╕реАрдмреАред рд╢реАрд░реНрд╖ рдмрд╛рдПрдВ - EEPROM, SMBus [ALRT | CLK | DAT] рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рджрд╛рдПрдВ рдХрдиреЗрдХреНрдЯрд░ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ R39 рдФрд░ R40 рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ PCIe рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП SMBus рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИредрд╣рдордиреЗ
I 2 C рдЬрд╛рдВрдЪ рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░ SMBus рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рднреА рдирд╣реАрдВ рдЧрд┐рдирд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ SMBus рдХреЗрд╡рд▓ рддрднреА рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рди EEPROM рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд╛ рд╕рдордп рд╣реИред
SMBus рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдкреНрд░рд▓реЗрдЦрди рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИред SMBus рддрдХ рдкрд╣реБрдВрдЪ NIC EEPROM рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, EEPROM рдХреЛ рдлреНрд▓реИрд╢рд░реЙрдо рдХреЗ рд╕рд╛рде рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред EEPROM рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрдВрдк рдХрд░рдХреЗ, рд╣рдо рдореВрд▓реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
> ./flashrom -p buspirate_spi:dev=/dev/hydrabus --read /tmp/flash.dump
flashrom p1.0-87-g9891b75-dirty on Linux 4.18.12-arch1-1-ARCH (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Winbond flash chip "W25X40" (512 kB, SPI) on buspirate_spi.
Reading flash... done.
NVM рдХреЗ рдирдХреНрд╢реЗ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдзреНрдпрд╛рдп 6.1) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- Init Control Word 2 [MNGM] (рдбреЗрдЯрд╢реАрдЯ рдЕрдзреНрдпрд╛рдп 6.1.1.6)
- рд╕рдВрдЧрддрддрд╛ [ASF SMBus рдХрдиреЗрдХреНрдЯреЗрдб] (рдбреЗрдЯрд╛рд╢реАрдЯ рдЕрдзреНрдпрд╛рдп 6.1.2.1.1)
- рд╕рдВрдЧрддрддрд╛ [рдПрд╕рдПрдордмреАрд╕ рдХрдиреЗрдХреНрдЯреЗрдб] (рдбреЗрдЯрд╢реАрдЯ рдЕрдзреНрдпрд╛рдп 6.1.2.1.1)
рдХреЗрд╡рд▓ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ EEPROM рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЫреЛрдЯреЗ рдПрдВрдбрд┐рдпрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЕрднреА рднреА рдЪреЗрдХрд╕рдо рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдзреНрдпрд╛рдп 6.1.2.11 рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ [0x00-0x40] рд╢реНрд░реЗрдгреА рдХреЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХрд╛ рдпреЛрдЧ 0xBABA рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЬрдЧрд░ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣рдореЗрдВ рд╕рд╣реА рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:
import struct
data = open('/tmp/flash.mod', 'rb').read()
tot = 0
for i in range(0x3f):
tot = (tot + struct.unpack('<H',data[2*i:(2*i)+2])[0]) & 0xffff
print("Checksum word must be : " + hex(0xbaba-tot))
#Checksum word must be : 0x9efb
рдФрд░ рдЕрдВрдд рдореЗрдВ, EEPROM рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди:
< 00000000: 6805 ca89 b22e 2004 46f7 8010 ffff ffff h..... .F.......
> 00000000: 6805 ca89 b22e 3014 46f7 8010 ffff ffff h.....0.F.......
< 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5a9c i...k.........Z.
> 00000010: 69e4 0881 6b02 1fa0 8680 d310 ffff 5adc i...k.........Z.
< 00000070: ffff ffff ffff ffff ffff 3001 ffff 0bef ..........0.....
> 00000070: ffff ffff ffff ffff ffff 3001 ffff fb9e ..........0.....
рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдФрд░ EEPROM рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ I
2 C рдЬрд╛рдВрдЪ рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░:
i2c1> scan
Device found at address 0x49
i2c1>
рдкрддрд╛ I
2 C рд╕рд╛рдд рдмрд┐рдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдЬреЛ рдкрддрд╛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ 0x49 << 1 = 0x92 рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИред
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдо рдЖрд░реЗрдЦ рд╣реИред рд╣рдо рдПрдирдЖрдИрд╕реА рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:

рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкрдврд╝рдирд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрдорд╛рдВрдб рдХреЛ рдПрдирдЖрдИрд╕реА рдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬ рджрд┐рдпрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ 8.4.4 рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд▓реЗрдирджреЗрди рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ PEC (SMBus рдХреЗ рд▓рд┐рдП рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
SLD рдкрддреЗ рдкрд░ CMD рдХрдорд╛рдВрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:
[START] [@SLAVE] [CMD] ( [START] [@SLAVE] [READ_DATA] ) [STOP]
[START] рдФрд░ [STOP] I рдФрд░
реи рд╕реА рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд START рдФрд░ STOP рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдХ рдПрдбреНрд░реЗрд╕ (рдЕрдзреНрдпрд╛рдп 8.8.2.3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд) рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХрдорд╛рдВрдб 0xD4 рд╣реЛрдЧреАред рд╣рдо I
2 C рдореЛрдб рдореЗрдВ SMBus рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрддреЗ рд╣реИрдВ:
[START] [0x92] [0xD4] [START] [0x92] [read 8 bytes] [STOP]
рдЬрдм рд╣рд╛рдЗрдбреНрд░реИрдмрд╕ рдЯреАрдореЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣реЛрдЧрд╛:
i2c1> [ 0x92 0xd4 [ 0x92 hd:2 hd:6 ]
I2C START
WRITE: 0x92 ACK 0xD4 ACK <== [NIC address] [command]
I2C START <== Switch state
WRITE: 0x92 ACK <== [NIC address]
07 D4 | .. <== Read [length] [header]
68 05 CA 89 B2 2E | h..... <== Read MAC address bytes
NACK
I2C STOP
рдФрд░, рд╣рд╛рдБ, рд╣рдореЗрдВ рдЕрдкрдирд╛ рдореИрдХ рдкрддрд╛ рдорд┐рд▓рддрд╛ рд╣реИ!
рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХрд░рд╛рдирд╛
рдЕрдм, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдПрдирдЖрдИрд╕реА рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рдЗрд╕ рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЪреЛрд░реА рдХрд░рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдзреНрдпрд╛рдп 8 рдореЗрдВ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреИрдХреЗрдЬ рднреЗрдЬ рд░рд╣рд╛ рд╣реИ
рдЕрдзреНрдпрд╛рдп in.рем рдФрд░ ers. ..рез рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рд╣рдо рдмрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдИрдерд░рдиреЗрдЯ рдлреНрд░реЗрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ
рд╣рд╛рдЗрдбреНрд░рдмрд╕ рдпрд╛
рдмрд╕ рд╕рдореБрджреНрд░реА рдбрд╛рдХреВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
import serial
import struct
from scapy.all import *
ser = serial.Serial('/dev/ttyACM0',115200)
def send_frame(pkt):
# Define the frame size
pktlen = struct.pack("B", len(pkt))
# Define the data length to be sent
fulllen = struct.pack(">h", len(pkt)+3)
# I2C write-then-read. Send frame + SMBus header, receive 0
ser.write('\x08'+fulllen+'\x00\x00')
ser.write("\x92\xc4"+pktlen+pkt)
# If packet has been sent successfully
if ser.read(1) == '\x01':
print "Send OK"
else:
print "Error sending"
ser.write('\x00')
ser.write('\x00')
ser.write('\x0F\n')
quit()
# Open Hydrabus in binary mode
for i in xrange(20):
ser.write("\x00")
if "BBIO1" not in ser.read(5):
print "Could not get into binary mode"
quit()
# Switch to I2C mode
ser.write('\x02')
if "I2C1" not in ser.read(4):
print "Cannot set I2C mode"
quit()
#Create the frame to send
p = Ether(src="11:22:33:44:55:66", dst="ff:ff:ff:ff:ff:ff") / IP(src="10.31.32.82", dst="10.31.32.80")/ICMP()
#Send the frame
send_frame(str(p))
# Return to main binary mode
ser.write('\x00')
#reset to console mode
ser.write('\x0F\n')
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рд╕рд╛рде рдорд╢реАрди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдЦреБрдж рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ:
рдмрд╛рдИрдВ рдУрд░ рд╣рдорд▓рд╛рд╡рд░ рдХреА рдорд╢реАрди рд╕реЗ Tcpdump, рджрд╛рдИрдВ рдУрд░ рд╕рд░реНрд╡рд░рдкреИрдХреЗрдЬ рдкрдврд╝рдирд╛
рдЫрд╛рдирдиреЗ
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕рд╛ рдлреНрд░реЗрдо рдПрд╕рдПрдордмреАрд╕ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдирдЖрдИрд╕реА рдирд┐рдпрдВрддреНрд░рдг рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╛ рддреЛ рдЗрд╕реЗ PCIe, рдпрд╛ SMBus, рдпрд╛ рд╡рд╣рд╛рдВ рдФрд░ рд╡рд╣рд╛рдВ рджреЛрдиреЛрдВ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рд╣рдореЗрдВ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИ:
- рдЖрдк рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╕реНрдХреИрди рдХрд░реЗрдЧрд╛ рдФрд░ PCIe рдФрд░ SMBus рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред
- рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ SMBus рдкрд░ рднреЗрдЬрдХрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЧрд╛рдпрдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЖрдк рдПрдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЪреИрдирд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ред
рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдлрд╝реНрд░реЗрдо рддрддреНрд╡реЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдпреВрдбреАрдкреА / рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ
- VLAN
- IPv4 - IPv6
- рдореИрдХ рдкрддреЗ
- ...
(рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдЕрдзреНрдпрд╛рдп 8.4.2.1 рджреЗрдЦреЗрдВ)
рд╕рд╛рдд рд╕реНрд╡рддрдВрддреНрд░ рдПрдордбреАрдИрдПрдл рдлрд┐рд▓реНрдЯрд░ [0: 6] рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ MANC2H рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SMBus рдкрд░ PCIe рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрд╛рдп 8.4.3 рджреЗрдЦреЗрдВ)ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдпрд╣ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛, рд╣рдордиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрдВрдЯреЗрд▓
рдХреЗ рдЖрд╡реЗрджрди рдкрд░
рдиреЛрдЯ рдиреЗ рд╣рдореЗрдВ рдЗрд╕
рдмрд╛рдд рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреА рдХрд┐ рд╣рдореЗрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд▓реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВред
рд╣рдорд╛рд░реЗ I
2 C рдЬрд╛рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЗрди рд╕рднреА рдХреЛ рдЪрд╛рд░ рдХрдорд╛рдВрдб рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
//
[ 0x92 0xca 0x01 0x40 ]
// MDEF[0] , UDP/664 UDP/623
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x0c 0x00 ]
// MANC2H
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзреНрдпрд╛рдп described. described.рез.рей рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╣рдорд╛рд░реЗ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЛ рдлрд╝реНрд░реЗрдо рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд┐рдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рдордиреЗ SMBus рдЕрд▓рд░реНрдЯ рдХреЛ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдореЙрдбрд▓ SMBus (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрд╛рдп 8.4 рджреЗрдЦреЗрдВ) рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдкрдврд╝рдирд╛ рдлреНрд░реЗрдо
рдЪреВрдВрдХрд┐ рд╣рдордиреЗ SMBus рдЕрд▓рд░реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд TCO рдкреИрдХреЗрдЯ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ SMB_ALRT_N рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреА рдереАред рдпрджрд┐ рд╣рдо рдмрд╣реБрдд рд▓рдВрдмрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреИрдХреЗрдЯ рдХреЛ рдПрдирдЖрдИрд╕реА рджреНрд╡рд╛рд░рд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрд░реЗрдЦ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдлрд╝реНрд░реЗрдо рднреЗрдЬреЗрдВрдЧреЗ рдФрд░ рд░реАрдб рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВрдЧреЗ - рдмрд╕ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдлрд┐рд▓реНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдпреВрдбреАрдкреА / 623 (рдЕрдзреНрдпрд╛рдп 3.6.1.2) рдХреЗ рд╕рд╛рде рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВред
- рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЛ рд╣рд╛рдЗрдбреНрд░реИрдмрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдХрд▓реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдПрдХ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреИрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреЗ рд╣реИрдВ:
from scapy.all import *
p=Ether()/IP(dst="10.31.32.81")/UDP(dport=0x26f)/"MALICIOUS PAYLOAD"
while(1):sendp(p)
рдпрд╣ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рдХрд▓рд╛:

рдмрд╛рдИрдВ рдУрд░, SMBus рдлрд╝реНрд░реЗрдо рдкрдврд╝рддрд╛ рд╣реИ; рдлрд╝реНрд░реЗрдо рдбреЗрдЯрд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рджрд╛рдИрдВ рдУрд░, рдПрдХ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓ рд░рд╣рд╛ tcpdump, рдЖрдиреЗ рд╡рд╛рд▓реЗ рдлрд╝реНрд░реЗрдореЛрдВ рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
рдлреНрд░реЗрдо рд░рд┐рд▓реЗ
MANC2H рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдмрджрд▓рдХрд░, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ SMBus рдФрд░ PCIe рдХреЛ рднреЗрдЬреЗ рдЧрдП рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдПрдВ рдЬреЛ UDP / 161 рдЯреНрд░реИрдлрд╝рд┐рдХ (SNMP) рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ SMBus рдФрд░ PCI рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ:
//
[ 0x92 0xca 0x01 0x40 ]
// - 0 161 (0xa1)
[ 0x92 0xcc 0x04 0x63 0x00 0x00 0xa1 ]
// MDEF[0] , - 0
[ 0x92 0xcc 0x06 0x61 0x00 0x00 0x00 0x10 0x00 ]
// MANC2H MDEF[0] PCIe
[ 0x92 0xcc 0x05 0x0a 0x00 0x00 0x00 0x00 ]
// (SMBus alerting, status reporting / Enable)
[ 0x92 0xca 0x01 0x45 ]
рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ, рд╣рдо рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдПрд╕рдПрдирдПрдордкреА рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреИрдХреЗрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ SMBus рдФрд░ PCI рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдКрдкрд░ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рд╕реЗ рдПрдХ рдЕрд╡рд░реЛрдзрди SNMP рдЕрдиреБрд░реЛрдз рд╣реИред рдиреАрдЪреЗ - рдПрд╕рдПрдирдПрдордкреА рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛редрд╕рдорд╛рдкрди
рд╣рдордиреЗ рдПрдХ рдЫреЛрдЯреЗ рдФрд░ рд╕рд╕реНрддреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдПрдирдЖрдИрд╕реА рд╕реНрддрд░ рдкрд░ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЪрд╛рд░ рд╕рдВрдкрд░реНрдХреЛрдВ (Vcc, GND, CLK, DAT) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ:
- рд╕рд░реНрд╡рд░ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рд╕реБрдирдирд╛ред
- рд╕рд░реНрд╡рд░ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
- рд╕рд░реНрд╡рд░ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рдиред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рд╛рдЗрдбреНрд░рдмрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ I
2 C / SMBus рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ATtiny85 (рдпрд╣ рдПрдирдЖрдИрд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ EEPROM рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпрд╛рд░реЛрдкрдг рдХреА рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рдПрд╕рдПрдордмреАрд╕ рддрдХ рд╣реА рд╣реЛрдЧреАред рдорджрд░рдмреЛрд░реНрдб рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕рд░реНрд╡рд░ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдЕрд╕рдВрднрд╡ рд╣реЛрдЧреАред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдУрдПрд╕ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдмреАрдПрдорд╕реА рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рджрд┐рд▓рдЪрд╕реНрдк рдмрд╕реЛрдВ рдХреА рдкрд╣реБрдВрдЪ рд╣реИ, рдФрд░ рдпрд╣ рдорджрд░рдмреЛрд░реНрдб рдкрд░ рджреГрд╢реНрдп рдирд┐рд╢рд╛рди рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХрд╛ рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ 100 Kb / s рдХреЗ рдХреНрд░рдо рдХреА рдЧрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдкреВрд░реНрдг рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдирддреАрдЬрддрди, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЙрди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкреНрд░рднрд╛рд╡реА рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рд▓рдХреНрд╖реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред