рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг

рдкрд░рд┐рдЪрдп


рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ рдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреЛрд╖реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрд╣реБрдд рднрд╛рд░реА рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдпрд╛рд╕ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╣реА рдирд╣реАрдВ рдард╣рд░рд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдзреБрдирд┐рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрджреНрдпреЛрдЧ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реБрдЭрд╛рди рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рддрд░рдл, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдорд╛рддреНрд░рд╛ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рд╛рдзрди рдЙрдкрдпреЛрдЧреА рдФрд░ рдорд╛рдВрдЧ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЖрдзреБрдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░ рд╡реГрджреНрдзрд┐ рд╣рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рд╢реЛрдз рдХрд╛рд░реНрдп, рдЬреИрд╕реЗ рдПрд╕рдПрдЬреАрдИ , рдХреЗрдПрд▓рдИ рдФрд░ рдПрд╡рд▓рд╛рдВрдЪ , рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдЪрд┐рдд рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдПред


рдЧрддрд┐рд╢реАрд▓ рдмрдирд╛рдо рд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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

рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:


рдЖрд╡реЗрджрди


рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВ: рд╡реЗрдм рд╕рд░реНрд╡рд░, рдПрд╕рдПрд╕рдПрдЪ рдХреНрд▓рд╛рдЗрдВрдЯ / рд╕рд░реНрд╡рд░, рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ, рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред

рдлрд╝рдЬ рдкрд░реАрдХреНрд╖рдг (рдлрд╝рдЬрд╝рд┐рдВрдЧ)


рдлрд╝рдЬрд╝рд┐рдВрдЧ рдПрдХ рдкрд░реАрдХреНрд╖рдг рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рдЕрдорд╛рдиреНрдп, рдЕрдирдкреЗрдХреНрд╖рд┐рдд, рдпрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ "рдореНрдпреВрдЯреЗрдЯ" рдХрд░рдирд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдордирдорд╛рдирд╛ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдмрджрд▓реЗрдВред рд╕рднреА рдлрд╝рдЬрд╝рд░реНрд╕ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд╛рдЗрдЯреНрд╕ рдпрд╛ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдореНрдпреВрдЯ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: zzuf (linux) , minifuzz (Windows), filefuzz (Windows)ред рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдлрд╝рдЬрд╝рд░реНрд╕: PROTOS (WAP, HTTP- рдЙрддреНрддрд░, LDAP, SNMP, SIP) (рдЬрд╛рд╡рд╛) , SPIKE (linux) ред рдлрдЬрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ: рд╕реБрд▓реНрд▓реА (рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛) ред
рдлрд╝рдЬрд╝ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдСрдЯреЛрдореИрдЯрд┐рдХ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдмреНрд░реВрдЯ рдлрд╝реЛрд░реНрд╕ рдореЗрдердб рдХрд╛ рдЕрдЧреНрд░рджреВрдд рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рд╕рд╛рджрдЧреА рд╣реИред рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝реНрдпреВрдЬрд╝рд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ, рдХреЛрдб рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЦрдЧреЛрд▓реАрдп рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкреВрд░реНрдг рдЧрдгрдирд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдУ (рд╕реА ^ рдПрди) рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИ) рд╕реА> 1)ред

рдирдИ рдкреАрдврд╝реА рдХреЗ рд▓реЗрдЦрдХ (рд╕рдореАрдХреНрд╖рд╛)


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

рдЯреНрд░реИрдХрд┐рдВрдЧ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛

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

рдХреЛрдб рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди

рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдВрддрд░рд┐рдХ рд╡реИрд▓рдЧреНрд░рд╛рдЗрдВрдб (рд╣рд┐рдорд╕реНрдЦрд▓рди) рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ llvm bytecode рдХрд╛рд░реНрдпрдХреНрд░рдо (KLEE), рдЬреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдмреВрд▓рд┐рдпрди рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди

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

рдкрд░реНрдпрд╛рд╡рд░рдг рдореЙрдбрд▓рд┐рдВрдЧ

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

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

рд╣рд┐рдорд╕реНрдЦрд▓рди


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

рдХрд╛рдо рдХреА рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛

рд╣рд┐рдорд╕реНрдЦрд▓рди рдЙрдкрдХрд░рдг рдореЗрдВ 4 рдореБрдЦреНрдп рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ: рджреЛ Valgrind рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЙрдбреНрдпреВрд▓ (рдкреНрд▓рдЧрдЗрдиреНрд╕) - Tracegrind рдФрд░ Covgrind , рдПрдХ STP рдмрд╛рдзрд╛ рд╕рддреНрдпрд╛рдкрди рдЙрдкрдХрд░рдг рдФрд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ред

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

рдЫрд╡рд┐

рдкреНрд░рддрд┐рдмрдВрдз

рдкрд░рд┐рдгрд╛рдо

рд╣рд┐рдорд╕реНрдЦрд▓рди рдХреЗ рдмрдЧрдлрдВрдбрд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдХреНрд▓реА


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

рдХреЗрдПрд▓рдИ рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдЖрднрд╛рд╕реА рдорд╢реАрди рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ (рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗрдПрд▓рдИрдИ: рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдзреНрдпрдпрди рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реЗ рдПрдХ рдкрде рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рдкрд░ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ (рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ) рдХреЗ рдХрд╛рдВрдЯреЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрдВ рдПрдХ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрдереЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреВрдареЗ рдкрде рдХреЗ рд▓рд┐рдП, KLEE рдЙрд╕ рдкрде рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред
KLEE рдХреНрд╖рдорддрд╛рдПрдВ рдЖрдкрдХреЛ рдХрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдХрд┐рдиреНрд╣реАрдВ рднреА рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдорддреБрд▓реНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ (рдПрдХ рд╡реНрдпрд╛рдкрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ) ( рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ)ред
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд mod_opt ( рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд x, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд y ) {
рдЕрдЧрд░ ( y ( // y ) == y ) // рджреЛ рдХреА рд╢рдХреНрддрд┐?
рд╡рд╛рдкрд╕реА x & ( y x 1 ) ;
рдЕрдиреНрдпрдерд╛
рд╡рд╛рдкрд╕реА x % y ;
}
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЖрдзреБрдирд┐рдХ ( рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд x, рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд y ) {
рд╡рд╛рдкрд╕реА x % y ;
}
рдЗрдВрдЯ рдореЗрди ( ) {
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд x, y ;
рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдмрдирд╛рдирд╛ ( рдФрд░ x, рдЖрдХрд╛рд░реЛрдлрд╝ ( x ) ) ;
рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдмрдирд╛рдирд╛ ( рдФрд░ y, рдЖрдХрд╛рд░-рдЖрдХрд╛рд░ ( y ) ) ;
рдореБрдЦрд░ ( mod ( x, y ) == mod_opt ( x, y ) ) ;
рд╡рд╛рдкрд╕реА 0 ;
}

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ KLEE рдХреЛ рдЪрд▓рд╛рдХрд░, рдЖрдк рдЗрдирдкреБрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдкреВрд░реНрдг рд╢реНрд░реЗрдгреА рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдорддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (y! = 0)ред рджрд╛рд╡реЗ рдореЗрдВ рд╢рд░реНрдд рдкреВрд░реА рди рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, KLEE, рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд░рд╛рд╕реНрддреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдХрд╛рд░реНрдп рдорд╛рдиреЛрдВ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдмрд░рд╛рдмрд░ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо


рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдХреЛрд░реБрдЯрд┐рд▓реНрд╕ 6.11 рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рдФрд╕рдд рдкреНрд░рддрд┐рд╢рдд 94% рдерд╛ред рдХреБрд▓ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдиреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ 3321 рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд┐рдП, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдХреЗ рд╕рдВрдкреВрд░реНрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╕рд╛рде рд╣реА, 10 рдЕрджреНрд╡рд┐рддреАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдИ рдЧрдИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреЛрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдпрддрд╛ рджреА рдЧрдИ рдереА, рдЬреЛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЙрдкрд▓рдмреНрдзрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕реЗрдЯ рдХреЛ 20 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рддрд┐рдмрдВрдз




рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖


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

рдирд┐рд╖реНрдХрд░реНрд╖


рдпрд╣ рд▓реЗрдЦ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ (рд╣рд┐рдорд╕реНрдЦрд▓рди рдФрд░ рдХреЗрдПрд▓рдИ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдиреБрднрд╡ рдХреЗ рдкрд░рд┐рдгрд╛рдо, рд╕рд╛рде рд╣реА рдХреЗрдПрд▓рдИ рдФрд░ рдПрд╡рд▓рд╛рдВрдЪ рдХреА рддреБрд▓рдирд╛, рдПрд╕ 2 рдИ рдХреА рд╕рдореАрдХреНрд╖рд╛ (https://s2e.epfl.ch) (рдЪрдпрди рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд┐рд╖реНрдкрд╛рджрди)) рд╣реИрдмрд░ рдХреЗ рдкрд╛рдардХреЛрдВ рд╕реЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдзреАрди рд╣реИред

рд▓реЗрдЦ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╣рд┐рдорд╕реНрдЦрд▓рди_рдХрд╛рд░реНрдЯрд┐рдХрд▓ , рдХреЗрдПрд▓рдИрдИ , рдлрд╝рдЬрд╝ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ ред

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


All Articles