рд░рд┐рд╡рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп ...

рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдЕрдкреНрд░реИрд▓ рдХреА рдореМрдд рд╣реЛ рдЧрдИред рдХрд┐рд╕реА рдиреЗ рдЙрд╕ рджрд┐рди рдирдИ Google рдирд╛рдХ рд╕реЗрд╡рд╛ рдкрд░ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕реВрдБрдШ рд▓рд┐рдпрд╛, рдХрд┐рд╕реА рдиреЗ "рдЪрдорддреНрдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░" рдореЗрдВ рдЦреЗрд▓рд╛, рдФрд░ рдХрд┐рд╕реА рдиреЗ рднрд╛рдЧреНрдп рдХреА рддрд╛рд░реАрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдХрд░, рдмрд╕ рдирд┐рд░рд╛рд╢рд╛ рд╕реЗ рдЪрд╛рдХ рд╕реЗ рдЕрдкрдиреА рдкреАрда рд╣рд┐рд▓рд╛ рджреА ...

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

рдЯреНрд░реЗрдирд┐рдВрдЧ


рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:
  1. Explorer.exe рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рдпрд╣ рд╕рдордп рдХреИрд╕реЗ рдЧрд┐рдирддрд╛ рд╣реИ
  2. рддрд░реНрдХ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рдирд╛ рддрд╛рдХрд┐ рдШрдбрд╝реА рд╡рд╛рдкрд╕ рдЪрд▓реА рдЬрд╛рдП

рдХреБрдЫ 32-рдмрд┐рдЯ рд╡рд░рдореЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рддрд░реНрдХ рдХреЛ рдмрджрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ: рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрдИ рдбрд┐рдмрдЧрд░ рдУрд▓реАрдбрдмрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд░реВрд╕реА рдореЗрдВ рднреА рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдПрдХ рдореЛрдбрд╝ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ 64-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬ 7 рдкрд░ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рджреЛрд╣рд░реЗ рдЕрдВрдХреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реА рдХреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╡рд╣рд╛рдВ рд░рд╣рддреА рд╣реИрдВ ...

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбрд┐рд╕реНрд╕реЗрдореНрдмрд▓рд░ рд╕реНрддрд░ рдкрд░ 64-рдмрд┐рдЯ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЬреАрд╡рди рдмрд╣реБрдд рдкреНрдпрд╛рд░рд╛ рдирд╣реАрдВ рд╣реИ: рди рддреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд░рд╛рдо рд╕реЗ рдУрд▓реА, рдФрд░ рди рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбрд┐рдЯреЛрд░реНрд╕ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ $ 9,999.95 рд╕реЗ рдХрдо рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, $ 10k - рдорд╛рд░реНрдХреЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреАрдордд рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП)ред 64-рдмрд┐рдЯ dll рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ 32-рдмрд┐рдЯ рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореЗрд░реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦреЛрдЬ рдЗрдВрдЬрди рдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреА рд╣реЛрдЧреА ...

рд╣рд╛рдВ, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ рдореБрдЭреЗ рдорд╛рдл рдХрд░ рджреЗрдВрдЧреЗ, рдореЗрд░рд╛ рдЖрдИрдбреАрдП рдкреНрд░реЛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ - рдкреБрд░рд╛рдиреЗ WinDbg рдиреЗ рдкрдВрдЦреЛрдВ рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ред
WinDbg рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕реВрдЪрдирд╛ рдХрд╛ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╕реНрд░реЛрдд windbg.info рд╕рдВрд╕рд╛рдзрди рд╣реИ ред

рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░реЗрдВ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░


рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ " рдШрдбрд╝реА " рд╢рдмреНрдж рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ:



рдХрд╛рд░реНрдпреЛрдВ рдХреА рджреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдмреЗрд╣рддрд░ explorer!CClockCtl::_RecalcCurTime , рдХреЛрдИ рднреА рдЕрд╕рдВрдЧрдд рдлрд╝рдВрдХреНрд╢рди explorer!CClockCtl::_RecalcCurTime рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ explorer!CClockCtl::_RecalcCurTime ред рдХреНрдпрд╛ рдирд┐рд╢рд╛рдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рд╢реЙрдЯ рд╕рд╣реА рд╣реИ? рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ:



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

рдЕрдкрдиреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ explorer.exe рдХреЗ рдкрддрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╕реАрдПрд▓рдЖрдИ рдбреАрдПрд▓рдПрд▓-рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдпрдерд╛рд╕рдВрднрд╡ рдорджрдж рдХрд░реЗрдЧреАред рди рдХреЗрд╡рд▓ рдпрд╣ 32 рдФрд░ 64 рдмрд┐рдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдбреАрдПрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рднреА рдЬрд╛рдирддрд╛ рд╣реИ: рд▓реЛрдбрд▓реЙрдЙрдВрд╕ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдФрд░ рд░рд╛рдЗрдЯрдкреНрд░реЛрдХреЗрд╕рдореЗрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЛрдб рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕рдХреЗ рдмрд╛рдж рд░реАрд▓реЛ рдЯреНрд░рд╛рдВрд╕рдлрд░ред

рд╣рдо рд╕реАрдзреЗ explorer.exe рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рд╣реБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп MinHook рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рд╛рджрдЧреА рдХреЗ рдкреАрдЫреЗ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рддрд░реНрдХ рд╣реИ рдЬреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ, рдкрд╛рд╡рд░рдлреБрд▓ x86 / x64 рдорд┐рдиреА рд╣реБрдХ-рдЗрдВрдЬрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдПрдХреНрд╕реЗрд╕ рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ GetLocalTime рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рдирд┐рд░реНрджреЗрд╢ рдПрдХ рд░рд┐рд╢реНрддреЗрджрд╛рд░ JMP рд╕рдВрдХреНрд░рдордг рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдлрд╕реЗрдЯ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдХрд╛рд░реНрдп рдЬрдЯрд┐рд▓ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╣рдордиреЗ рдФрдЬрд╛рд░реЛрдВ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдм рдпрд╣ рдПрдХ dll рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЬреЛ DLL_PROCESS_ATTACH рдХреЗ рд╕рд╛рде GetLiveTime рдкрд░ рдПрдХ рд╣реБрдХ рд▓рдЧрд╛рдПрдЧрд╛:

 #include <windows.h> #include "MinHook.h" //    libMinHook.dll #pragma comment(lib, "libMinHook.x64.lib") //    GetLocalTime static void (WINAPI *GetLocalTime_)(LPSYSTEMTIME lpSystemTime); void WINAPI MyGetLocalTime(LPSYSTEMTIME lpSystemTime) { //   GetLocalTime GetLocalTime_(lpSystemTime); //   : 59 -> 0, 0 -> 59 lpSystemTime->wSecond = 59 - lpSystemTime->wSecond; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved) { switch (dwReason) { case DLL_PROCESS_ATTACH: //     ! //    ,  DllMain()       //   libMinHook if (MH_Initialize() != MH_OK) { return FALSE; } //   (      ) if (MH_CreateHook(&GetLocalTime, &MyGetLocalTime, reinterpret_cast<void**>(&GetLocalTime_)) != MH_OK) { return FALSE; } //   if (MH_EnableHook(&GetLocalTime) != MH_OK) { return FALSE; } } return TRUE; } 

рд╣рдо рдкреНрд░рд╛рдкреНрдд dll рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ


рдЕрдм рдЖрдк dll рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯрд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:



--Lib рдХреБрдВрдЬреА рдореЗрдВ, dll рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХреНрдпреЛрдВ рдХреА рдЬрд╛рддреА рд╣реИ

рд╕рдм рдХреБрдЫ, рдЖрдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ! (рд╕рд╛рд╡рдзрд╛рди, рд╕рдореНрдореЛрд╣рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛)

рд╕реВрддреНрд░реЛрдВ (VS2010 рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ) рдФрд░ рд╕реНрд╡рдпрдВ-рдмреАрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред

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


All Articles