рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ C ++ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмрдлреНрдпреВрдЬрди

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

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

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

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

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

рдЖрдХреНрд╖реЗрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ - рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ



рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ C / C ++ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ .exe рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рдмреБрд░рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:
  1. рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рд╕реА рднреА рдкрд╛рд╕рд╡рд░реНрдб / рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдЬреЛ рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИред
  2. рдкреНрд░реЛрдЯреЛрдХреЙрд▓ / рдлрд╝рдВрдХреНрд╢рди / рд╕рдВрджреЗрд╢ рдФрд░ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рджреЗрдЦрдХрд░, рд╣рдорд▓рд╛рд╡рд░ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ / рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдХрд┐рд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╣реИрдХрд┐рдВрдЧ рдХреЗ рдХрд╛рдо рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЖрдпрд╛ рд╣реИ Pokerbotoscar.wordpress.com/2009/03/20/how-casinos-detect-pokerbots рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдкрд░, рд▓реЗрдЦрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЙрд╕рдиреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рд╣реИ рдХрд┐ рдкреЛрдХрд░ рдЧреНрд░рд╛рд╣рдХ рдмрд╕ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдмрдирд╛рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
  3. рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЫрд╡рд┐ рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдкрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд▓рд╛рд╡рд░ рд╕реАрдзреЗ рдбрд┐рдмрдЧрд░ рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛ рд╕рдХреЗрдЧрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреБрд░рдВрдд рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рдвреВрдВрдвреЗрдВ рдЬрд╣рд╛рдВ рд╕реЗ рд▓рд╛рдЗрди "рдПрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЦрд░реАрджреЗрдВ" рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЪреЗрдХ рдлрдВрдХреНрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдЧрд╛, рдФрд░ рд╡рд╣рд╛рдБ рдпрд╣ рддрдХрдиреАрдХ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рдпрджрд┐ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдХреЛрдИ рд░реЗрдЦрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЦреЛрдЬ рдереЛрдбрд╝реА рдзреАрдореА рд╣реЛ рдЬрд╛рдПрдЧреАред
    рдЖрдк Sysinternals Process Explorer рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рднреА рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рддреАрди рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреЗ рд╕рднреА рд╡рд░реНрдг рд╡рд░реНрдгреЛрдВ рдХреЛ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред


рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ



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

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

рдореИрдВрдиреЗ php рдореЗрдВ рд╕реАрдзреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рджреЛрдиреЛрдВ php рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ PATH рдореЗрдВ php.exe рдХреЗ рд▓рд┐рдП рдкрдеред

рддреЛ, рдЪрд▓реЛ рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛред
рдореИрдВрдиреЗ Visual Studio 2008 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ Visual Studio рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЕрдиреНрдп рд╕рдВрдХрд▓рдХ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдХреБрдЫ рд╡реАрдПрд╕ рд╡рд┐рд╖рдорддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рджред

рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, obfuscation рд╢реАрд░реНрд╖ рд▓реЗрдЦ, obfuscator.h
рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдУрдлрд╝реНрдлрд╝рдХреНрдпреВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
#ifndef _OBFUSCATOR_H #define _OBFUSCATOR_H #ifdef X #pragma message("MACRO X IS ALREADY DEFINED, EXPECT SERIOUS ERRORS") #endif #ifdef DO_OBFUSCATE_STRINGS __forceinline char *obDecodeStr(char *inst); #define X(s)obDecodeStr(OBPREPROCESSENCODEDSTR(s)) #else #define X(s)s #endif #endif 


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

рдпрджрд┐ DO_OBFUSCATE_STRINGS рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ X (s) obDecodeStr (OBPREPROCESSENCODEDSTR (s) рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"OBPREPROCESSENCODEDSTR" рд╕рд┐рд░реНрдл рдПрдХ рдЯреЛрдХрди рд╣реИ рдЬреЛ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рддрдм рдЦреЛрдЬреЗрдЧрд╛ред рдпрд╣ рдирд╛рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд╛ рд╣реИ рдХрд┐ рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдпрд╣ рд╕рдВрдпреЛрдЬрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдкрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА:

 <?php date_default_timezone_set('UTC'); function parseArgs($argv){ array_shift($argv); $out = array(); foreach ($argv as $arg){ // --foo --bar=baz if (substr($arg,0,2) == '--'){ $eqPos = strpos($arg,'='); // --foo if ($eqPos === false){ $key = substr($arg,2); $value = isset($out[$key]) ? $out[$key] : true; $out[$key] = $value; } // --bar=baz else { $key = substr($arg,2,$eqPos-2); $value = substr($arg,$eqPos+1); $out[$key] = $value; } } // -k=value -abc else if (substr($arg,0,1) == '-'){ // -k=value if (substr($arg,2,1) == '='){ $key = substr($arg,1,1); $value = substr($arg,3); $out[$key] = $value; } // -abc else { $chars = str_split(substr($arg,1)); foreach ($chars as $char){ $key = $char; $value = isset($out[$key]) ? $out[$key] : true; $out[$key] = $value; } } } // plain-arg else { $value = $arg; $out[] = $value; } } return $out; } $args = parseArgs($argv); echo "Obfuscating strings in ".$args[1]."\r\n"; $f = fopen($args[0], 'rb'); $o = fopen($args[1], 'wb'); define('ENCODESTRTOKEN', 'OBPREPROCESSENCODEDSTR('); while ($line= fgets ($f)) { while (($esp = strpos($line, ENCODESTRTOKEN))!==false) { $sesp = $esp; $esp+=strlen(ENCODESTRTOKEN); while ($line[$esp]!='"') $esp++; $esp++; $sstart = $esp; $s = ''; while (true) { if ($line[$esp]=='"') break; if ($esp>=strlen($line)) break; if ($line[$esp]=='\\') { if ($line[$esp+1]=='\\') $s.='\\'; if ($line[$esp+1]=='r') $s.="\r"; if ($line[$esp+1]=='n') $s.="\n"; if ($line[$esp+1]=='t') $s.="\t"; $esp+=2; continue; } $s.=$line[$esp]; $esp++; } $enc = ""; $ch = 0; $chphase = 0; while ($ch<strlen($s)) { if ($chphase==0) $cod = ord($s[$ch]) & 15; else $cod = (ord($s[$ch]) & (255-15))/16; $cod = dechex(rand(1,15)*16 + $cod); $enc.="\\x$cod"; if ($chphase==0) $chphase = 1; else { $ch++; $chphase = 0;}; } echo "Obfuscating string \"$s\" to \"$enc\"\r\n"; $line = substr_replace($line, $enc, $sstart, $esp-$sstart); $line = substr_replace($line, "", $sesp, strlen(ENCODESTRTOKEN)-1); }; fputs($o, $line); }; ?> 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкрдврд╝рддреА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрддреА рд╣реИ, "OBPREPROCESSENCODEDSTR"ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЯреЛрдХрди рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдПрдиреНрдХреЛрдбреЗрдб" рд╣реИред

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

рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ obfuscate-i.php рдирд╛рдо рджреЗрдВ

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдлрд╛рдЗрд▓ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ
 #include "obfuscator.h" typedef char odecoded[4095]; odecoded obbuf[4]; unsigned short lastbuf = 0; __forceinline char *obDecodeStr(char *inst) { lastbuf++; if (lastbuf>3) lastbuf = 0; unsigned int i = 0; unsigned int db = 0; bool phase = true; unsigned short schar = 0; while (inst[i]!=(char)0) { if (phase) { schar = 0; schar+=(((unsigned short)inst[i]) & 0x0F); } else { schar+=(((unsigned short)inst[i]) & 0x0F) * 16; obbuf[lastbuf][db] = (char)schar; db++; } phase = !phase; i++; } obbuf[lastbuf][db] = (char)0; return obbuf[lastbuf]; } 


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

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

рдмрдлрд╝рд░реНрд╕ 4 рдФрд░ 1 рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?


рдореИрд╕реЗрдЬрдмреЙрдХреНрд╕ (0, X ("рдХреБрдЫ рдорд╛рди"), X ("рдХреБрдЫ рдЕрдиреНрдп рдореВрд▓реНрдп"), MB_OK рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╕ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдкрддрд╛ рдореИрд╕реЗрдЬрдмреЙрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рдУрдлрд╝реНрдлрд╝реИрдХреНрд╢рди рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрд▓ MessageBox (0, obDecodeStr ("рдХреБрдЫ рдЕрдиреНрдп рдореВрд▓реНрдп"), obDecodeStr ("рдХреБрдЫ рдЕрдиреНрдп рдореВрд▓реНрдп"), MB_OK) рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ obDStStr рдХреЛ рджреЛрдиреЛрдВ рдХреЙрд▓ * рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ * MessageBox рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрдлрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ obDecodeStr рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рдХреЙрд▓ рдмрд╕ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣реА рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛрдиреЛрдВ рддрд░реНрдХреЛрдВ рдореЗрдВ рдЖрдПрдЧрд╛: рдореИрд╕реЗрдЬрдмреЙрдХреНрд╕ (0, "рдХреБрдЫ рдЕрдиреНрдп рдореВрд▓реНрдп", "рдХреБрдЫ рдЕрдиреНрдп рдореВрд▓реНрдп", MB_OK)ред

рдЗрд╕рд▓рд┐рдП, 1 рдХреЗ рдмрдЬрд╛рдп 4 рдмрдлрд╝рд░реНрд╕ред рдпрджрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ 4 рд╕реЗ рдЕрдзрд┐рдХ рдСрдмрдлреНрдпреВрдЬреЗрдб рдЪрд╛рд░ * рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрдлрд╝рд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреА рд╣реЛрдЧреАред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди



рддреЛ рдпрд╣ рд╕рдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ?
(рдореИрдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╕рднреА рд╡рд┐рдХрд▓реНрдк рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реВрд╕реА рд╕реНрдЯреВрдбрд┐рдпреЛ рд╣реЛрдиреЗ рдкрд░ рднреА рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛)

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рд░рд┐рд▓реАрдЬрд╝-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА 2 рдмрд╛рд░ рдХреЙрдкреА рдХрд░реЗрдВред рдкрд╣рд▓реА рдкреНрд░рддрд┐ рдХреЛ рд░рд┐рд▓реАрдЬрд╝-рдУрдмреНрд╕реЗрдХреНрдЯреЗрдб-рдкреНрд░реАрд╕реНрдЯреЗрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реА рд░рд┐рд▓реАрдЬрд╝-рдУрдмреНрд╕реЗрдлрд╝рд┐рдХреЗрдЯреЗрдб рд╣реИред (prestep рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ VisualStudio рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рд╣реЗрдЬрдирд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд╣рд░реА рдЯреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдЪрд░рдг рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ)ред
  2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рд┐рд▓реАрдЬрд╝- obfuscated-prestep рдореЗрдВ, рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪреБрдиреЗрдВред Obfuscator.pp рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдФрд░ рдЧреБрдг рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣рд╛рдВ, C ++ / Preprocessor / Generate рддреИрдпрд╛рд░ рдлрд╛рдЗрд▓ рдХреЗ рддрд╣рдд, рдмрд┐рдирд╛ рд▓рд╛рдЗрди рдирдВрдмрд░ / EP / P рдХреЗ рд╕реЗрд▓реЗрдХреНрдЯ рдХрд░реЗрдВ
    рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ рдХрд┐ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рднреА .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреВрд░реНрд╡рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдлрд╝реЙрд░реНрдо рдореЗрдВ .i рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣реА рд╣реИ, рдЙрдирдореЗрдВ рд╕рднреА рдореИрдХреНрд░реЛрдЬрд╝ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдирд╛рдд рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдХреНрд╕ () рдореИрдХреНрд░реЛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  3. рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рд░рд┐рд▓реАрдЬрд╝-obfuscated-prestep) рдмрдирд╛рдПрдБред рд▓рд┐рдВрдХрд░ рдпрд╣ рдХрд╕рдо рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдмрд┐рд▓реНрдб рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╣рдореЗрдВ рдЙрддреНрдкрдиреНрди .i рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  4. рдЗрди рд╕рднреА рдирдИ .i рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдпрджрд┐ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдирд┐рдпрдо рдмрдирд╛рдирд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ NO рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
  5. рдЕрдм рдЗрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЪреБрдиреЗрдВ рдФрд░ рдкреНрд░реЙрдкрд░реНрдЯреАрдЬ рдкрд░ рдЬрд╛рдПрдВред рд░рд┐рд▓реАрдЬрд╝-рдУрдмреНрд╕реЗрд╕реНрдХреЗрдЯреЗрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб тЖТ YES рд╕реЗ рдЕрд▓рдЧ рд╕реЗрдЯ рдХрд░реЗрдВред
  6. рд░рд┐рд▓реАрдЬрд╝-рдУрдлрд╝реНрдлрд╝реБрд╕реЗрдЯреЗрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб тЖТ NO рд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ, рджрд░реНрдЬ рдХрд░реЗрдВ
    php obfuscate-i.php $(InputPath) src-obfuscated\$(InputName).ob.cpp
    рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рджрд░реНрдЬ рдХрд░реЗрдВ
    src-obfuscated\$(InputName).ob.cpp
    рдЖрдкрдХреЛ src-obfuscated рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╣реЗрдЬреА рдЬрд╛рдПрдВрдЧреАред
  7. рдЕрдм рдЗрди рд╕рднреА .i рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рдЪреБрдиреЗрдВ, рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдХрдВрдкрд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЛ рд▓реЙрдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ * .ob.cpp рдлрд╛рдЗрд▓реЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП
  8. рдЗрди рдирдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдмрд┐рд▓реНрдб рд╕реЗ рдирд┐рд░реНрдЧрдорди-рд░рд┐рд▓реАрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП NO рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП YES рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
  9. Obfuscator.cpp рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрдкрдиреА рд╕рднреА рдореВрд▓ .cpp рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рд░рд┐рд▓реАрдЬрд╝-obfuscated рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рд╕реЗ рдЕрд▓рдЧ YES рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ
  10. рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рд┐рд▓реАрдЬрд╝-obfuscated-prestep рдФрд░ Release-obfuscated рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ C / C ++ / Preprocessor / Preperocurer рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░рддреАрдХ рдЬреЛрдбрд╝реЗрдВ DO_OBFUSCATE_STRINGS рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдСрдмрдлреНрдпреВрд╢реЗрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред


рдЕрдм X () рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдУрдлрд╝реНрд╕реЗрд╢рди рд╣реЗрдбрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреА рд▓рд╛рдЗрдиреЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╣реЗрдВрдЧреАред

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

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


All Articles