рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЛрдЯреЗрдХреНрд╢рди: AppFuscator 2.0

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

рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ



рдирдпрд╛ WPF рдСрдмрдлреНрдпреВрдЬрди рдХреЛрд░



рдЫрд╡рд┐

(рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)

рдПрдХрддрд╛ 3 рдбреА рд╕рдкреЛрд░реНрдЯ


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

.NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4.5 рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рд╕рдВрдЧрддрддрд╛





рдСрдЯреЛрдореИрдЯрд┐рдХ рдЗрдВрдЯреЗрд▓реАрдЬреЗрдВрд╕ рдСрдмреНрд╕рдлрд┐рдХреЗрд╢рди



рд╕реНрдорд╛рд░реНрдЯ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг

enums

string name = "Second"; var result = (Mode)Enum.Parse(typeof(Mode), name); 

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

serializer

 var serializer = new XmlSerializer(typeof(RealySerializable)); var writer = new StringWriter(new StringBuilder()); serializer.Serialize(writer, new RealySerializable()); string res = writer.ToString(); public enum DataState { One, Two } public class RealySerializable { public int MyProperty { get; set; } public DataState State { get; set; } } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, RealySerializable рдФрд░ DataState SerializableAttribute рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди RealySerializable рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде XmlSerializer рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдкрд░, рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЗрд╕реЗ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдиреНрдп рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ (JSON, рдмрд╛рдЗрдирд░реА, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ рдПрдХ Enum DataState рдХреНрд░рдордмрджреНрдз рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЗрд╕реЗ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдЧрд╛ред

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреНрд╡рд╛рд░рд╛ CreateInstance

 var instance = Activator.CreateInstance(anyUnresolvedName); var work = instance as IRef; 

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

рдЕрдиреНрдп рдорд╛рдорд▓реЗ рднреА рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрд╝рдорд╛рдПрдБ : appfuscator.com

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рдирд╛


рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдкреЛрд╖рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рдФрд░ рднреА рдХрд░реАрдм рд╣реИрдВ - рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдмрд┐рд▓рдХреБрд▓ рднреА рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЕрдкрдиреА рдХрд┐рд╕реА рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

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

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛рдУрдВ рдФрд░ рдЕрдЪреНрдЫреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреБрд╢ рд╣реЛрдВрдЧреЗред

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


All Articles