рдкреБрд╕реНрддрдХ "рд╣реИрдХрд┐рдВрдЧ: рдж рдЖрд░реНрдЯ рдСрдл рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯред рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдгред тАЭ

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

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

рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдо рдЪрдорддреНрдХрд╛рд░реЛрдВ рдореЗрдВ рдХрд┐рддрдирд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЬрд┐рд╕ рдкрд░ рд╣рдорд╛рд░реЗ рджреИрдирд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред

рд╣реИрдХрд░реНрд╕ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рджреБрдирд┐рдпрд╛ рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдФрд░ рдЕрднрд┐рдирд╡ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рджреБрдирд┐рдпрд╛ рд╣реИред (рдЬреЙрди рдПрд░рд┐рдХрд╕рди)

countermeasures


рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЗрдВрдврдХ рд╣реИ - рдПрдХ рднрдпрд╛рдирдХ рд╢реНрд░рд╡рдг (Phyllobates terribilis)ред рдЙрд╕рдХреА рддреНрд╡рдЪрд╛ рдХреА рдЧреНрд░рдВрдерд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдордЬрдмреВрдд рдЬрд╣рд░ рд╣реЛрддрд╛ рд╣реИред рдШрд╛рддрдХ рдЬрд╣рд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрд╛рдп рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпреЗ рдореЗрдВрдврдХ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рдБрдкреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЬрд╣рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рд╣реИред рдзреАрд░реЗ-рдзреАрд░реЗ рдореЗрдВрдврдХреЛрдВ рдХрд╛ рдЬрд╣рд░ рдФрд░ рдордЬрдмреВрдд рд╣реЛрддрд╛ рдЧрдпрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдпреБрдХреНрдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рднрдпрд╛рдирдХ рдкрддреНрддреЛрдВ рдХреЗ рдкрд░реНрд╡рддрд╛рд░реЛрд╣рд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░рд╛рдХреГрддрд┐рдХ рджреБрд╢реНрдорди рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИред рдРрд╕рд╛ рд╣реА рдХреБрдЫ рд╣реИрдХрд░реНрд╕ рдХреЗ рд╕рд╛рде рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд┐рди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдерд╛, рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрджреНрднрд╡ рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИред рдЬрд╡рд╛рдм рдореЗрдВ, рд╣реИрдХрд░реНрд╕ рд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдиреЗ рдФрд░ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдирдИ рд░рдХреНрд╖рд╛рддреНрдордХ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред

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

0x610 рдЕрдЯреИрдХ рдбрд┐рдЯреЗрдХреНрд╢рди рдЯреВрд▓


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

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

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

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

0x620 рд╕рд┐рд╕реНрдЯрдо рдбреЗрдореЙрди


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реИрдХрд░ рдФрд░ рдЙрдирдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдХрд╛рдЙрдВрдЯрд░рдореЗрд╢рд░реНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЕрдм рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд░ рд╣рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред UNIX- рдЬреИрд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рд╕рд┐рд╕реНрдЯрдо рдбреЗрдореЙрди рдЗрди рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдПрдХ рдбреЗрдореЙрди рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдпрд╣ рд╢рдмреНрдж 1960 рдХреЗ рджрд╢рдХ рдореЗрдВ рдореИрд╕рд╛рдЪреБрд╕реЗрдЯреНрд╕ рдЗрдВрд╕реНрдЯреАрдЯреНрдпреВрдЯ рдСрдл рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдХреЗ рд╣реИрдХрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдПрдХ рдкреМрд░рд╛рдгрд┐рдХ рдкреНрд░рд╛рдгреА рдерд╛ рдЬреЛ рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА рдЬреЗрдореНрд╕ рдореИрдХреНрд╕рд╡реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдорд╛рдирд╕рд┐рдХ рдкреНрд░рдпреЛрдЧ рд╕реЗ рдЕрдгреБрдУрдВ рдХреЛ рдЫрд╛рдВрдЯ рд░рд╣рд╛ рдерд╛ред рдореИрдХреНрд╕рд╡реЗрд▓ рджрд╛рдирд╡ рдХреЗ рдкрд╛рд╕ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрд▓реМрдХрд┐рдХ рдХреНрд╖рдорддрд╛ рдереА, рдЬреЛ рдКрд╖реНрдордкреНрд░рд╡реИрдЧрд┐рдХреА рдХреЗ рджреВрд╕рд░реЗ рдирд┐рдпрдо рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рдереЗред рдЗрд╕реА рддрд░рд╣, рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдореЙрди рдмрд┐рдирд╛ рдердХреЗ рдПрд╕рдПрд╕рдПрдЪ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдмрдирд╛рдП рд░рдЦрдиреЗ рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рджрд╛рдирд╡ рдирд╛рдо рдЖрдорддреМрд░ рдкрд░ рдбреА рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЙрдирдХреА рдкреНрд░рдХреГрддрд┐ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, sshd рдпрд╛ syslogdред

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕рдВрдкрд╛рджрди рд╕реЗ рдЫреЛрдЯреЗ xweb.c рдХреЛ рдЦрдВрдб 0x427 рд╕реЗ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдореЙрди рдХреЗ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╕рд╛рджреГрд╢реНрдп рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЛрдб рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбреЗрдорди () рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдПрдХ рдирдИ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдбреЗрдорди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЙрд╕реЗ рд╕рдорд░реНрдкрд┐рдд рдкреЗрдЬ рд╣реИ:

DAEMON (3) рд▓рд┐рдирдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рд╕рдВрджрд░реНрдн DAEMON (3)

рдирд╛рдо
рдбреЗрдореЙрди - рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ
SYNOPSIS

#include <unistd.h> int daemon(int nochdir, int noclose); 

рд╡рд░реНрдгрди

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

(рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдХрд╛рдВрдЯрд╛ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ)
рдЬрдирдХ _exit (0) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдЧреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ рджрд┐рдЦрд╛рдИ рджреЗ
рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред) рдпрджрд┐ рд╕рдлрд▓ рд╣реЛ, рддреЛ рд╢реВрдиреНрдп рджреЗрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдкрд░, рдлрд╝рдВрдХреНрд╢рди
рдбреЗрдореЙрди () рд░рд┐рдЯрд░реНрди -1 рдФрд░ рдПрд░рд░ рдирдВрдмрд░ рдХреЛ рдЧреНрд▓реЛрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдЗрд░рдиреЛ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ
рдлреЙрд░реНрдХ (2) рдФрд░ рд╕реЗрдЯрд╕рд┐рдб (2) рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗред

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

0x621 рд╕рд┐рдЧреНрдирд▓ рдЕрд╡рд▓реЛрдХрди


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

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

 signal_example.c #include <stdio.h> #include <stdlib.h> #include <signal.h> /*    signal.h * #define SIGHUP 1  * #define SIGINT 2  (Ctrl+C) * #define SIGQUIT 3  (Ctrl+\) * #define SIGILL 4   * #define SIGTRAP 5   * #define SIGABRT 6  * #define SIGBUS 7   * #define SIGFPE 8     * #define SIGKILL 9   * #define SIGUSR1 10   1 * #define SIGSEGV 11   * #define SIGUSR2 12   2 * #define SIGPIPE 13    ,    * #define SIGALRM 14   ,  alarm() * #define SIGTERM 15  (  kill) * #define SIGCHLD 17    * #define SIGCONT 18 ,    * #define SIGSTOP 19  (  ) * #define SIGTSTP 20   [] (Ctrl+Z) * #define SIGTTIN 21       * #define SIGTTOU 22       */ /*   */ void signal_handler(int signal) { printf("  %d\t", signal); if (signal == SIGTSTP) printf("SIGTSTP (Ctrl-Z)"); else if (signal == SIGQUIT) printf("SIGQUIT (Ctrl-\\)"); else if (signal == SIGUSR1) printf("SIGUSR1"); else if (signal == SIGUSR2) printf("SIGUSR2"); printf("\n"); } void sigint_handler(int x) { printf(" Ctrl-C (SIGINT)   \nExiting.\n"); exit(0); } int main() { /* Registering signal handlers */ signal(SIGQUIT, signal_handler); //  signal_handler() signal(SIGTSTP, signal_handler); //    signal(SIGUSR1, signal_handler); signal(SIGUSR2, signal_handler); signal(SIGINT, sigint_handler); //  sigint_handler()  SIGINT while(1) {} //   } 

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

 reader@hacking:~/booksrc $ gcc -o signal_example signal_example.c reader@hacking:~/booksrc $ ./signal_example   20 SIGTSTP (Ctrl-Z)   3 SIGQUIT (Ctrl-\)  Ctrl-C (SIGINT)    Exiting. reader@hacking:~/booksrc $ 

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

 reader@hacking:~/booksrc $ kill -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL 5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE 9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2 13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGSTKFLT 17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP 21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU 25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF     28) SIGWINCH 29) SIGIO       30) SIGPWR      31) SIGSYS      34) SIGRTMIN 35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3  38) SIGRTMIN+4 39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8 43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6 59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2 63) SIGRTMAX-1  64) SIGRTMAX reader@hacking:~/booksrc $ ps a | grep signal_example 24491 pts/3    R+     0:17 ./signal_example 24512 pts/1    S+     0:00 grep signal_example reader@hacking:~/booksrc $ kill -10 24491 reader@hacking:~/booksrc $ kill -12 24491 reader@hacking:~/booksrc $ kill -9 24491 reader@hacking:~/booksrc $ 

рдЕрдВрдд рдореЗрдВ, рдХрд┐рд▓ -9 SIGKILL рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддрд╛ рд╣реИред рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд▓ -9 рдХрдорд╛рдВрдб рд╣рдореЗрд╢рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ signal_example рдХрд╛рд░реНрдпрдХреНрд░рдо рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╖реНрдЯ рд╣реЛ рдЧрдИ рдереАред

 reader@hacking:~/booksrc $ ./signal_example   10       SIGUSR1   12       SIGUSR2 Killed reader@hacking:~/booksrc $ 

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

0x622 рдЯрд╛рдЗрдиреАрд╡реЗрдм рдбреЗрдорди


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

рдореВрд▓ рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рднреЗрджреНрдпрддрд╛ рдХреА рд╢реЛрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдзрд┐рдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдирдП рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдмреЛрд▓реНрдб рдореЗрдВ рд╣реИрдВред

 tinywebd.c #include <sys/stat.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <time.h> #include <signal.h> #include "hacking.h" #include "hacking-network.h" #define PORT 80 // ,     #define WEBROOT "./webroot" //   - #define LOGFILE "/var/log/tinywebd.log" //    int logfd, sockfd; //       void handle_connection(int, struct sockaddr_in *, int); int get_file_size(int); //         //  void timestamp(int); //        //       void handle_shutdown(int signal) { timestamp(logfd); write(logfd, " .\n", 16); close(logfd); close(sockfd); exit(0); } int main(void) { int new_sockfd, yes=1; struct sockaddr_in host_addr, client_addr; //    socklen_t sin_size; logfd = open(LOGFILE, O_WRONLY|O_CREAT|O_APPEND, S_IRUSR|S_IWUSR); if(logfd == -1) fatal("  ");  if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1)        fatal(" "); if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) fatal("   SO_REUSEADDR"); printf("  tiny web.\n"); if(daemon(1, 0) == -1) //    fatal("   "); signal(SIGTERM, handle_shutdown);   //    handle_shutdown signal(SIGINT, handle_shutdown);   //    handle_shutdown timestamp(logfd); write(logfd, ".\n", 15); host_addr.sin_family = AF_INET;       //    host_addr.sin_port = htons(PORT);     //  ,    host_addr.sin_addr.s_addr = INADDR_ANY; //    IP memset(&(host_addr.sin_zero), '\0', 8); //    if (bind(sockfd, (struct sockaddr *)&host_addr, sizeof(struct sockaddr)) == -1) fatal("  "); if (listen(sockfd, 20) == -1) fatal("   "); while(1) { //   accept sin_size = sizeof(struct sockaddr_in); new_sockfd = accept(sockfd, (struct sockaddr *)&client_addr, &sin_size); if(new_sockfd == -1) fatal(" "); handle_connection(new_sockfd, &client_addr, logfd); } return 0; } /*         *         FD. *    -,    *   .     . */ void handle_connection(int sockfd, struct sockaddr_in *client_addr_ptr, int logfd) { unsigned char *ptr, request[500], resource[500], log_buffer[500]; int fd, length; length = recv_line(sockfd, request); sprintf(log_buffer, " %s:%d \"%s\"\t", inet_ntoa(client_addr_ptr->sin_addr), ntohs(client_addr_ptr->sin_port), request); ptr = strstr(request, " HTTP/"); //    if(ptr == NULL) { //    HTTP  strcat(log_buffer, "  HTTP!\n"); } else { *ptr = 0; //      URL ptr = NULL; //  ptr  NULL (           //  ) if(strncmp(request, "GET ", 4) == 0) //  GET ptr = request+4; // ptr -  URL if(strncmp(request, "HEAD ", 5) == 0) //  HEAD ptr = request+5; // ptr -  URL if(ptr == NULL) { //     strcat(log_buffer, "  !\n"); } else { //    ptr,     if (ptr[strlen(ptr) - 1] == '/')   //  ,                                        //  '/', strcat(ptr, "index.html");   //    'index.html' strcpy(resource, WEBROOT);   //  resource                                            //  strcat(resource, ptr);   //      fd = open(resource, O_RDONLY, 0);  //    if(fd == -1) { //     strcat(log_buffer, " 404 Not Found\n");           send_string(sockfd, "HTTP/1.0 404 NOT FOUND\r\n");                send_string(sockfd, "Server: Tiny webserver\r\n\r\n");                send_string(sockfd, "<html><head><title>404 Not Found</title>                                     </head>");            send_string(sockfd, "<body><h1>URL not found</h1></body></html>                                     \r\n"); } else {       //      strcat(log_buffer, " 200 OK\n");             send_string(sockfd, "HTTP/1.0 200 OK\r\n");           send_string(sockfd, "Server: Tiny webserver\r\n\r\n");            if(ptr == request + 4) { //    GET     if( (length = get_file_size(fd)) == -1)          fatal("     ");     if( (ptr = (unsigned char *) malloc(length)) == NULL)          fatal("      ");          read(fd, ptr, length);  //              send(sockfd, ptr, length, 0);  //              free(ptr);  //      } close(fd); //   } //   if  /        } //   if     } //   if    HTTP timestamp(logfd); length = strlen(log_buffer); write(logfd, log_buffer, length); //    shutdown(sockfd, SHUT_RDWR); //    } /*         *    .    -1. */ int get_file_size(int fd) { struct stat stat_struct; if(fstat(fd, &stat_struct) == -1) return -1; return (int) stat_struct.st_size; } /*          *   . */ void timestamp(fd) { time_t now; struct tm *time_struct; int length; char time_buffer[40]; time(&now); //       time_struct = localtime((const time_t *)&now); //    tm length = strftime(time_buffer, 40, "%m/%d/%Y %H:%M:%S> ", time_struct); write(fd, time_buffer, length); //       } 

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

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

 reader@hacking:~/booksrc $ gcc -o tinywebd tinywebd.c reader@hacking:~/booksrc $ sudo chown root ./tinywebd reader@hacking:~/booksrc $ sudo chmod u+s ./tinywebd reader@hacking:~/booksrc $ ./tinywebd   tiny web. reader@hacking:~/booksrc $ ./webserver_id 127.0.0.1 The web server for 127.0.0.1 is Tiny webserver reader@hacking:~/booksrc $ ps ax | grep tinywebd 25058 ? Ss 0:00 ./tinywebd 25075 pts/3 R+ 0:00 grep tinywebd reader@hacking:~/booksrc $ kill 25058 reader@hacking:~/booksrc $ ps ax | grep tinywebd 25121 pts/3 R+ 0:00 grep tinywebd reader@hacking:~/booksrc $ cat /var/log/tinywebd.log cat: /var/log/tinywebd.log: Permission denied reader@hacking:~/booksrc $ sudo cat /var/log/tinywebd.log 07/22/2007 17:55:45> . 07/22/2007 17:57:00>  127.0.0.1:38127 "HEAD / HTTP/1.0" 200 OK 07/22/2007 17:57:21>  . reader@hacking:~/booksrc $ 

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

┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
┬╗ рд╕рд╛рдордЧреНрд░реА
┬╗ рдЕрдВрд╢

Habrozhitel рдХреЗ рд▓рд┐рдП рдХреВрдкрди рдкрд░ 20% рдХреА рдЫреВрдЯ - рд╣реИрдХрд┐рдВрдЧ

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


All Articles