рдЖрдИрдмреА рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдмрдврд╝ рд░рд╣реА рд╣реИ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдореВрд▓реНрдпрд╛рдВрдХрди (рдХрдордЬреЛрд░рд┐рдпреЛрдВ, рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдЖрджрд┐ рдХреА рдЦреЛрдЬ) рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЗ рдХрд╛рд░рдг рд╣рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдХреА рдкреВрд░реНрдг рдХрд╡рд░реЗрдЬ рдХреА рдЧрд╛рд░рдВрдЯреА рднреА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддреА рд╣реИрдВред

рдбрд╛рдпрдирд╛рдорд┐рдХ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди (DBI) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдРрд╕реА рдЕрджреНрднреБрдд рддрдХрдиреАрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдЗрдирд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг (рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ) рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рдЖрдХрд░реНрд╖рдг рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдП рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕реАрдзреЗ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдЕрдкрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХреЛрдб рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдпреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдзреНрдпрдпрди (рд▓рдХреНрд╖реНрдп) рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рд╕рдВрд╢реЛрдзрди рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ рдФрд░ рд╣рд░ рдмрд╛рд░ рдХреЛрдб рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рдЧ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдирд╛ рд╣реЛрдиреЗ (рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ, рдПрдХ рдЕрдкрд╡рд╛рдж рдмрдирд╛рдиреЗ, рдЖрджрд┐) рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рдЗрдирд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
тАв рдирд┐рд░реНрджреЗрд╢;
тАв рдЖрдзрд╛рд░ рдЗрдХрд╛рдИ;
тАв рдкрдЯрд░рд┐рдпреЛрдВ;
тАв рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ;
тАв рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрднрд╛рдЧ;
тАв рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЫрд╡рд┐ред

рдирддреАрдЬрддрди, рдЧрддрд┐рд╢реАрд▓ рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдврд╛рдВрдЪреЗ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдмрд╛рдЗрдирд░реА рдПрдирд╛рд▓рд┐рд╕рд░реНрд╕ (рдбреАрдмреАрдП, рдбрд╛рдпрдиреЗрдорд┐рдХ рдмрд╛рдЗрдирд░реА рдПрдирд╛рд▓рд┐рд╕рд┐рд╕) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЪреМрдЦрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдЪрд╛рд░ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдкрд┐рди , рдбрд╛рдпрдирдореЛрдЖрд░рдЖрдИрдУ, рдбрд╛рдпрдиреЗрд╕реНрдЯ, рдФрд░ рд╡реЗрд▓рдЧреНрд░рд┐рдВрдб ред рдЖрдк рдореЗрд░реА рдкреНрд░рд╕реНрддреБрддрд┐ "DBI: Intro" рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ ZeroNights рд╕рдореНрдореЗрд▓рди рд╕реЗред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЗрдВрдЯреЗрд▓ рдХреА рдкрд┐рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ DSecRG рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗрдВрджреНрд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд┐рдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдмрд╛рдЗрдирд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред

рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдПрдХ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ - рдкрд┐рдирд╣реЗрдб , рдЬрд╣рд╛рдБ рдЖрдк рдкрд┐рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдбреАрдмреАрдЖрдИ рдРрд╕реЗ рд╢рд╛рдВрдд рд╕реБрд░рдХреНрд╖рд╛ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗрдВрджреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЗрдореНрдпреБрдирд┐рдЯреА, рдЬрд╝реЗрдиреЙрдорд┐рдХреНрд╕, рд░реИрдкрд┐рдб 7, рд╕реЛрд░реНрд╕рдлрд╛рдпрд░ рд╡реАрдЖрд░рдЯреА, рд╕реЗрд╕рд┐рдиреЗрдорд╛, рдЖрджрд┐ред рдбреАрдмреАрдЖрдИ рдХрд╛ рдЬреНрдЮрд╛рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдФрд░ рдХрд╛рд░рдирд╛рдореЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрдЯрд╛рд╕реНрдкреНрд▓реЛрдЗрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо рдореЗрдВ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдЗрдВрдЬреАрдирд┐рдпрд░ рдиреМрдХрд░реА рдХреА рд░рд┐рдХреНрддрд┐ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:



рдкрд┐рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╢реИрдбреЛ рд╕реНрдЯреИрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рд╕рд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдЯреИрдХ рдмрдирд╛рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрдЯреИрдХ рдкрд░ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреА рдкрд╣рдЪрд╛рди рддрдм рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬрдм рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╢реИрдбреЛ рд╕реНрдЯреИрдХ рдореЗрдВ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╢реИрдбреЛ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рди рдХреЗ рд╕рд╛рде рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред

#include <stdio.h> #include "pin.H" #include <stack> typedef struct { ADDRINT address; ADDRINT value; } pAddr; // Shadow Stack stack<pAddr> protect; FILE * logfile; //-------------------------------------------------------------------------------------- VOID Fini(INT32 code, VOID *v) { fclose(logfile); } //-------------------------------------------------------------------------------------- VOID RtnEntry(ADDRINT esp, ADDRINT addr) { pAddr tmp; tmp.address = esp; tmp.value = *((ADDRINT *)esp); //     Shadow Stack protect.push(tmp); } //-------------------------------------------------------------------------------------- VOID RtnExit(ADDRINT esp, ADDRINT addr) { //    Shadow Stack if (protect.empty()) { fprintf(logfile, "WARNING! protection list empty\n"); return; } pAddr orig = protect.top(); ADDRINT cur_val = (*((ADDRINT *)orig.address)); //       Shadow Stack if (orig.value != cur_val) { fprintf(logfile, "Overwrite at: %x old value: %x, new value: %x\n", orig.address, orig.value, cur_val ); } //      Shadow Stack protect.pop(); } //-------------------------------------------------------------------------------------- //     VOID Routine(RTN rtn, VOID *v) { RTN_Open(rtn); SEC sec = RTN_Sec(rtn); IMG img = SEC_Img(sec); if ( IMG_IsMainExecutable(img) && (SEC_Name(sec) == ".text") ) { // ,     (RtnEntry) RTN_InsertCall(rtn, IPOINT_BEFORE,(AFUNPTR)RtnEntry, IARG_REG_VALUE, REG_ESP, IARG_INST_PTR, IARG_END); // ,     (RtnExit) RTN_InsertCall(rtn, IPOINT_AFTER ,(AFUNPTR)RtnExit, IARG_REG_VALUE, REG_ESP, IARG_INST_PTR, IARG_END); } RTN_Close(rtn); } //-------------------------------------------------------------------------------------- INT32 Usage() { PIN_ERROR( "This Pintool logs function return addresses in main module and reports modifications\n" + KNOB_BASE::StringKnobSummary() + "\n"); return -1; } //-------------------------------------------------------------------------------------- int main(int argc, char *argv[]) { //    PIN_InitSymbols(); //   PIN if (PIN_Init(argc, argv)) { return Usage(); } //  - logfile = fopen("protection.out", "w"); //  ,      RTN_AddInstrumentFunction(Routine, 0); //   ,       PIN_AddFiniFunction(Fini, 0); //  PIN_StartProgram(); return 0; } 

рдЖрд▓реЗрдЦреАрдп рд░реВрдк рд╕реЗ, рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рдЖрдк рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЯреВрд▓ рдХреЗрд╡рд▓ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХреЛ рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдХреЗ рд╕рд╛рдордиреЗ рдбреЗрдЯрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рднреА рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ / RTC рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдПрдХ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдЖрд╡реЗрджрди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕рдХреЗ рд╡рд┐рдореЛрдЪрди рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реИ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ / GS рдзреНрд╡рдЬ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреБрдХреА рдорд╛рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрд╡рдЬ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рд╕рд╛рдзрд╛рд░рдг рдСрдкрд░реЗрд╢рди рд╕реЗ рд╕реНрдЯреИрдХ рдореЗрдВ рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, func_bof () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЕрд╕реБрд░рдХреНрд╖рд┐рдд strcpy () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдЯреИрдХ рдкрд░ рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ (рд╡реЗрд░рд┐рдПрдмрд▓ рдмреА), рдХреБрдХреА (рдпрджрд┐ рдХреЛрдИ рд╣реЛ), рд░рд┐рдЯрд░реНрди рдПрдбреНрд░реЗрд╕ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдХреА рдЪреЗрдХ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрднреА рддрдХ func_bof () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк rewritten рд╡реЗрд░рд┐рдПрдмрд▓ b, рдорд╣рддреНрд╡рдкреВрд░реНрдг_func () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдиреЗрддреГрддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдпрд╛ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╕реНрдпрд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрдЧрд╣ рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрд╢реЛрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЪрд╛рдЗрд▓реНрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдЪрд▓реЛ рдЗрд╕реЗ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ) рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рд┐рдЯрд░реНрди рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг_рдлреБрдирдХ () рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХреЗрдВрдЧреЗред



рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреВрдВрдЧрд╛:
- рд╢реЗрд▓рдХреЛрдб рдбрдореНрдкрд░ - рдорд╛рдирдХ рд╢реЗрд▓рдХреЛрдб рдХрд╛ рдПрдХ рдбрдореНрдкрд░, рдЬрд┐рд╕рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реНрдЯреИрдХ рдпрд╛ рд╣реАрдк рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
- рдореЛрдлреНрд▓реЛ-рдорд┐рдЯрд┐рдЧреЗрд╢рди рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ рдЬреЛ рдЖрд░рдУрдкреА рд╢реЗрд▓рдХреЛрдб рдФрд░ рдЬреЗрдЖрдИрдЯреА рд╢реЗрд▓рдХреЛрдб рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред
- рдХреЛрдб-рдХрд╡рд░реЗрдЬ-рд╡рд┐рд╢реНрд▓реЗрд╖рдг-рдЙрдкрдХрд░рдг - рдХреЛрдб рдХрд╡рд░реЗрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдХред
- RunTracer - рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред
- Kerckhoffs - рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рдХреНрд╕ рдХреА рдЕрд░реНрдз-рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред
- VERA - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред
- рдЯреНрд░рд┐рдкреЛрдХреНрд╕ - рдореИрд▓рд╡реЗрдпрд░ рдкреИрдХрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХред
- рдЧреЛрдкрдиреАрдпрддрд╛ рд╕реНрдХреЛрдк - рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓реАрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред
- рдЯрд╛рд░реНрдЯреЗрдЯрд┐рдирдЯреВрд▓ - рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред

рдЖрдИрдбреАрдП рдкреНрд░реЛ рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рдХреЗ рд╕рд╛рде рдкрд┐рди рдЯреВрд▓реНрд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ, рдЬреЛ рдПрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝рд░ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ:
- рдбрд┐рдлрдХреЛрд╡ - рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛ред
- рд░рдирдЯрд╛рдЗрдо-рдЯреНрд░реЗрд╕рд░ - рд░рдЬрд┐рд╕реНрдЯрд░ рдорд╛рди рдФрд░ рдкреНрд░реЛрд╕реЗрд╕реНрдб рдореЗрдореЛрд░реА рд╕реЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХреНрдЬреАрдХреНрдпреВрд╢рди рдЯреНрд░реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИред



рдпрд╣ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдкрд┐рдВрдЯреЛрд▓ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдореИрдВ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдбреАрдмреАрдЖрдИ / рдкрд┐рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдореЗрдВ "рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди" рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ( рд╕реНрд▓рд╛рдЗрдб , рдЙрджрд╛рд╣рд░рдг ) рдЗрдВрдЯреЗрд▓ рд╕реЗ рдореЗрд░реЗ рдЕрдЪреНрдЫреЗ рджреЛрд╕реНрдд рдЧреИрд▓ рдбрд┐рд╕реНрдХрд┐рди рд╕реЗред рдореИрдВ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ рдХрд┐ рдЗрд╕ рдХреЛрд░реНрд╕ рдореЗрдВ рднреА рдореЗрд░рд╛ рд╣рд╛рде рдерд╛ред рдЗрд╕реЗ рд╣реИрдХрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдЬреИрд╕реЗ рдмреНрд▓реИрдХрд╣реИрдЯ, рдбреЗрдлрд╝рдХреЙрди рдФрд░ рд╣реИрдХрд▓реБ рдореЗрдВ рдкрдврд╝рд╛ рдЧрдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In142575/


All Articles