ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° c
ΠΠ°ΡΠΈΡΠ°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° C#
ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡΡΡ Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Π΄ΠΎΡΠ½Π΅ΡΠΎΠ²ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅. Π§ΡΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ, Π½ΠΎ Π²ΠΎΠΏΡΠΎΡ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π²ΡΠ΅Π³Π΄Π°.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΄ΠΎΡΠ½Π΅ΡΠΎΠ²ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ Π΄ΠΆΠ°Π²ΠΎΠ²ΡΠΊΠΈΠ΅, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΠΏΡΠΎΡΡΠΎ Β«Π²ΡΠΊΡΡΡΡΒ». ΠΠΈΠ½ΠΎΠΉ Π²ΡΠ΅ΠΌΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π»Π΅Π³ΠΊΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°Π»Π΅ΠΊΠΎ Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°ΠΆΠ΅ VS ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ ILDasm.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΡ ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠ½ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡ 20 ΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΡΡΠΊΠ΅ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΡΠ΅Π΅ ΠΎΠ±Π·ΠΎΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ Π΄Π°Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ΅ΡΠΎΠ΄Ρ Π·Π°ΡΠΈΡΡ C# ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠ²Π°Π»ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠ²ΠΈΠ΄Π΅Π² Π΄Π°Π½Π½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΡΠΎΡΡΠΎ ΡΡΠΌΠ΅Ρ Π½ΡΡΡΡ ΠΈ ΡΠΊΠ°ΠΆΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π΅Π³ΠΎ Π·Π°ΡΠΈΡΠΈΡΡ Π±ΡΠ΄ΡΡ ΡΡΠ°Π·Ρ ΠΎΠ±ΡΠ΅ΡΠ΅Π½Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ ΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°, Π΅ΡΠ»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ Π·Π°ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π³Π»ΡΠΏΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ²Π΅ΡΡΠ΅ΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ, Π΄Π° ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΌΠ°Π»ΠΎ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ. Π ΡΠΏΠΎΡ Ρ ΠΏΠΎΠ²Π°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π½Π΅Π΄ΡΡΠ»ΠΎΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ, Π²ΡΠ·ΡΠ²Π°Ρ ΠΊΡΡΡ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²Π° Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ°, ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΌ ΠΊΠ»ΡΡΠ°ΠΌ, Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ Π² ΠΠ, Π½ΠΎ Ρ ΠΈΠ½Π΄ΠΈ-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎ Π½Π΅Ρ, Π΄Π° ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Ρ ΠΎΡΡ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ dotPeek ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠΌΠ΅Π΅Ρ. Π ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΡΠΌΠ° ΠΈ Π²Π΅ΡΡΠΌΠ° Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ. Π― ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΡΡΠΊΠ΅ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° dotPeek ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Microsoft Visual Studio: ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ , ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ, Π½ΠΎ ΠΈ Π²Π½Π΅ΡΡΠΈ Π² Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, dotPeek ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π΅ Π² ΠΏΡΠΎΠ΅ΠΊΡ Microsoft Visual Studio ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΆΠ΅ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΠ°Π½ΡΡΠ½Π°Ρ ΡΡΠ»Π·Π°, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ? ΠΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ β dotPeek Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Β«Π΄Π΅Π΄ΡΡΠΊΠΈΒ» .NET Reflector, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π½ΡΡΠ΅ Π±ΡΠ» Π΅Π΄Π²Π° Π»ΠΈ Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π΄ΠΎΡΠ½Π΅ΡΠΎΠ²ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ Π²Ρ Π·Π°ΡΠΈΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ dotPeek Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Ρ Π²Π°Ρ Π²ΡΠ΅Π³Π΄Π°. Π‘ΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ°ΠΉΡΠ΅ https://jetbrains.ru/products/dotpeek/
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C# ΠΌΠΎΠΆΠ΅Ρ Β«Π²Π·Π»ΠΎΠΌΠ°ΡΡΒ» Π»ΡΠ±ΠΎΠΉ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΊΡΡΠΊΠ½ΡΡΡ ΠΈΠ³ΡΡ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ΅Π²Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π ΠΈΡΠΎΠ³Π΅, Π½ΡΠΆΠ½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π·Π°ΡΠΈΡΠ΅.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΠΈΡΠ½ΠΎ ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ β ΡΡΠΎ ΠΏΡΠ΅ΡΠ»ΠΎΠ²ΡΡΡΠΉ ConfuserEx. ΠΠ½ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΠΉ ΠΈ Π΄Π°Π΅Ρ Π²Π΅ΡΡΠΌΠ° ΡΠΈΠ»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Β«ΠΏΡΡΠ°Π΅ΡΒ» ΠΊΠΎΠ΄ ΠΈ Π½Π΅ Π΄Π°Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ ILSpy.
Π‘ΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π° https://yck1509.github.io/ConfuserEx/. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ½ΡΡΡ Π½Π΅Π±Π΅Π·ΡΠ·Π²Π΅ΡΡΠ½ΡΠΌ De4dot, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΠ΅Π²Π΅ΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΠΈΠΌΠ΅ΠΉΡΠ΅ ΡΡΠΎ Π² Π²ΠΈΠ΄Ρ.
2 ) ΠΡΠΈΠΏΡΠΎΡΡ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΠΎΡΡ ΠΈ Π΄Π°ΡΡ ΡΠΈΠ»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ, Π½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠΏΡΠΎΡΡΡ Π±ΡΠΎΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ ΡΡΠΎΡΡ Π±Π΅Π·ΡΠΌΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π΅Π½Π΅Π³. ΠΠΎΡΡΠΎΠΌΡ Π½Π° Π½ΠΈΡ Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ ΡΡΠ°Π½Ρ.
3) ΠΠΎΠ²ΡΠ΅ ΡΡΡΠ΄ΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ 2015) ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π΄ΡΡΡ. ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ .NET Native, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΠ½Π΅ΡΠΎΠ²ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄.
Π Π΅Π·ΡΠΌΠ΅
ΠΠΎΠΏΡΠΎΡ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠΎΡΠ» Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΠΈΡΠ°ΡΡΡΠ²ΠΎ ΠΈ Π°Π½ΡΠΈΠΏΠΈΡΠ°ΡΡΡΠ²ΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΡΠ°Π³Π°ΡΡ ΡΡΠΊΠ° ΠΎΠ± ΡΡΠΊΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ.
C# ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠ·Π²ΠΈΠΌΡ Π΄Π»Ρ ΡΠ΅Π²Π΅ΡΡΠΈΠ½Π³Π°. Π ΡΡΠΎΠΌ ΠΏΠ»Π°Π½Π΅, ΠΎΠ½ΠΈ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ ΡΡΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ JS, Ρ ΠΎΡΡ ΡΠ°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ. ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π·Π°ΠΏΡΡΠ°Π΅Ρ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΈΠΏΠ° dotPeek ΠΈΠ»ΠΈ ILSpy. ΠΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠ±ΡΠ°ΡΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π°ΡΠΈΡΡ ΠΈ Π²ΡΡΡΠ΅ΡΠΊΠΈ Π΅Π΅ ΡΠ½ΡΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΡΡ ΠΈΠΌΠΈ Π½Π΅ ΡΡΠΎΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΌΠ°ΠΉΠΊΡΠΎΡΠΎΡΡΠΎΠ²ΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Ρ Π±Ρ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ .NET Native.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π»ΠΎΠΌΠ°ΡΡ. ΠΠΎΠΏΡΠΎΡ ΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΠΊΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ»ΠΈ ΡΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ»ΡΡΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Counter Strike ΠΈ ΡΠ΅Ρ Π°ΡΡ ΠΆΠΈΡΡ Π½Π° ΠΠ°Π²Π°ΠΉΠΈ.
Π ΡΡΠΌ ΡΠ΅ΡΡ?
ΠΡΠ°ΡΠΈΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ.
ΠΠ°Π»Π΅Π΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
ΠΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ?
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄Π΅Π» ΡΠ΅ΠΉΡΠ°Ρ
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ?
Π’Π°ΠΊ ΠΆΠ΅, Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΠΎ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΊ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ?
ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΊΠΎΠ΄, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π² Π΅Π³ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ ΠΎΡ ΡΡΠ΅ΡΡΠΈΡ Π»ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΊΠΎΠ΄Π°:
β’ ΠΠ°Π½Π½ΡΠ΅: Π΄Π΅Π»Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π½Π° ΡΠΎ, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ
β’ ΠΠΎΡΠΎΠΊ ΠΊΠΎΠ΄Π°: Π²ΡΡΡΠ°Π²Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π°Π±ΡΡΡΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ
β’ Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠΎΡΠΌΠ°ΡΠ°: ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΊΠΎΠ΄Π° ΠΈ Ρ.Π΄.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ source ΠΈΠ»ΠΈ Π±Π°ΠΉΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΈ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°ΠΏΡΡΠ°ΡΡ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ΅ΡΠΎΠ΄Ρ
1. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π² ΠΈΠ½ΡΡ ΡΠΎΡΠΌΡ, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΈΠ»ΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΠ΅Π΅ Ρ Π°ΠΊΠ΅ΡΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠ½Π³Π°.
ΠΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΡΠ΅Π» Π΄Π»Ρ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
2. ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ
ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² ΠΏΠ»ΠΎΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅.
3. ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ²
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΈ ΡΠΌΠΎΠΆΠ΅Ρ «Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ» Π΄Π°Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΎΠ½ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ ΡΡΠΏΠ΅Ρ .
4. Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΠ°ΠΊΠΈ, ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π²ΡΠΏΡΡΠΊΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. Π‘Π²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ°ΡΡΠ΅ΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΠΌΠΈ ΠΎΠ±ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ, ΠΌΠΎΠ³ΡΡ Π²ΡΠ½ΡΠ΄ΠΈΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈΠ»ΠΈΡ ΠΏΠΎ Π²Π·Π»ΠΎΠΌΡ ΠΊΠΎΠ΄Π° Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π½Π½ΠΎΡΡΡ.
5. ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³Π°. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (jump-in-a-middle), Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄. ΠΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΈΠ»Π΅Π½ ΠΏΡΠΎΡΠΈΠ² ΠΏΡΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π·Π° ΡΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΠΌΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
6. ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ ΡΡΠΎΠ³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ ΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΡΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π― Π½Π΅ ΡΡΠ°Π» ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΎΠ½Π° Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½Π° Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π½Π° Π₯Π°Π±ΡΠ΅ ΡΡΠ°ΡΡΠ΅.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π² 2015 Π³ΠΎΠ΄Ρ, ΠΈ ΠΌΠ½Π΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π½Π°ΠΉΡΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΈΠ½ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² Π½Π° ΡΠ΅ΠΌΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°, Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡΠΈΡ ΡΡ Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π² Π½Π°Ρ Π²Π΅ΠΊ Π²ΡΡ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°Π»ΠΎ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠ°ΠΊΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π·Π°ΡΠ°ΡΡΡΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Ρ ΠΎΡΠ΅Π» Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π·Π°ΡΠΈΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π²Π΅Π΄Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π±ΡΡΠ½Π°Ρ ΠΏΡΠ»Ρ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ Π·Π°ΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡ Π²Π·Π»ΠΎΠΌΠ°.
Π‘ΡΡΠ»ΠΊΠΈ ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ
[3] Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vadhan S. and Yang K. Β«On the (im) possibility of obfuscating programs.Β» CRYPTO 2001.
ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ C++ Π² Visual Studio
ΠΠΈΠ½Π°ΡΠ½Π°Ρ Π·Π°ΡΠΈΡΠ° ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ β Π΄Π΅Π»ΠΎ ΡΠ°ΡΡΠΎ Π½Π΅Π»ΡΠ³ΠΊΠΎΠ΅ ΠΈ Π½Π΅Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΠ΅, Π²Π΅Π΄Ρ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΊΠΎΠΌΡ-ΡΠΎ Π½ΡΠΆΠ΅Π½, Π΅Π³ΠΎ Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠ»ΠΎΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ Π½ΠΈ ΡΡΠ°ΡΠ°ΠΉΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΌΠ°Ρ Π»ΡΡΡΠ°Ρ Π·Π°ΡΠΈΡΠ° Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΈΡΠ°ΡΡΡΡ, Π½Ρ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ, Π²ΡΡΡΠ½ΡΡ, Π° Π²ΡΡΠΊΠΈΠ΅ ΡΠ°ΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ/ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ/Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΡΠΎΠΆΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ, Π½ΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΠ°, ΡΠ΅ΠΌ Π»Π΅Π³ΡΠ΅ ΠΎΠ½Π° ΠΏΠΎΡΠΎΠΌ Π»ΠΎΠΌΠ°Π΅ΡΡΡ, ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ, ΡΠΎ ΠΊΡΠ°ΠΊΠ΅ΡΡ Π΅Π³ΠΎ ΡΠΆΠ΅ 10 ΡΠ°Π· Π»ΠΎΠΌΠ°Π»ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ , ΠΈ Π·Π½Π°ΡΡ ΡΡΠΎ Π² Π½ΡΠΌ ΠΊ ΡΠ΅ΠΌΡ. Π ΡΠΎΠΌΡ ΠΆΠ΅ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄Π°ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π·Π°ΡΠΈΡ ΡΡΠΎΡΡ Π½Π΅ΠΌΠ°Π»ΡΡ Π΄Π΅Π½Π΅Π³.
ΠΠΏΡΡΡ-ΡΠ°ΠΊΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π²ΠΎΡΠΎΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΡΠΈΡΡ ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠ½Π° ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²ΡΡΠΊΠΈΠ΅ ΡΠ°ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΠΎ-Ρ ΠΎΡΠΎΡΠ΅ΠΌΡ, Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡ Π°ΡΡ Π² ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΡΠ° Π² ΠΊΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ ΠΊΡΠ°ΠΊΠ΅ΡΡ Π±ΡΠ»ΠΎ ΡΡΡΠ΄Π½Π΅Π΅ Π½Π°ΠΉΡΠΈ. ΠΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΡΠΎ Π²ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ. Π΄.
ΠΠΎΡ ΠΈ Π²ΡΡΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ Π·Π°ΡΠΈΡΡ/Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ/ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡΡ ΠΊΠΎΠ΄Π°/ΡΡΠΎΠΈΠΌΠΎΡΡΡΡ ΠΈ Ρ. Π΄.
Π₯ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π²Π°ΠΌΠΈ ΠΌΠΎΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΡΡΡΠΎΠΊ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΎΡΡ ΠΈ Π΄Π°ΡΡ Π»ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ 1) Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ 2) Π»ΡΠ³ΠΊΠΈΠΌ 3) ΠΏΠΎΡΡΠΈ Π½Π΅ ΠΏΠΎΡΡΡΡΠΈΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ΄Π° 4) Π½ΠΎΠ²ΡΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΡΠ°ΠΊΠ΅Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΅ΡΡ Π½Π΅ Π²ΠΈΠ΄Π΅Π».
Π‘ΡΠ°Π·Ρ Ρ ΠΎΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΡ Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ Π°ΠΊΠ΅ΡΠ° ΡΠΎ ΡΡΠ°ΠΆΠ΅ΠΌ, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π»ΠΈΡΡ ΠΎΡ ΡΠΈΠ»Ρ ΠΌΠΈΠ½ΡΡ 15 Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅. ΠΠ½ΠΎ ΠΏΡΠΈΠ·Π²Π°Π½ΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π΄Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π½ΡΠ±ΠΎ-Ρ Π°ΠΊΠ΅ΡΠΎΠ² ΠΈ ΡΠΊΠΎΡΠ΅Π΅ Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΡΡ Π²Π°Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉ ΡΠΈΠΏ ΠΌΡΡΠ»Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄ΠΈΠ½Π³Π΅, ΠΈ Π΄Π°ΡΡ Π²Π°ΠΌ ΡΠ°Π½Ρ ΡΠ°ΠΌΠΈΠΌ ΡΠ°Π·Π²ΠΈΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°ΡΠΈΡ.
ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΡΡΡΠΎΠΊ β Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌΠΈ β ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄, ΠΈ ΡΡΡΠΎΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² ΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅, Π½ΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ΅, Π½ΠΈ Π² ΠΎΠ±ΡΠ°Π·Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ΄ΠΈΡΡΡΡ ΡΡΡΠΎΠΊΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ΅, Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡ ΠΈΡ . ΠΡΠΎ ΠΊΠΎΠ½ΡΡ-ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎ, Π²Π΅Π΄Ρ ΠΈΠ· ΠΎΠ±ΡΠ°Π·Π° ΡΡΡΠΎΠΊΠΈ ΡΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° β Π΄Π°ΠΆΠ΅ ΡΠ΅ΠΌ ΠΆΠ΅ Process Explorer. (ΠΠΎΡΠΎΡΡΠΉ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΡΠ°ΠΊΠ΅ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π° ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅Π»Ρ taskmgr.)
Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Π² php, ΡΠ°ΠΊ ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈ ΡΠ°ΠΌ php ΠΈ ΠΏΡΡΡ ΠΊ php.exe Π² PATH.
ΠΡΠ°ΠΊ, ΠΏΡΠ΅ΡΡΡΠΏΠΈΠΌ ΠΊ Π΄Π΅Π»Ρ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Visual Studio 2008, Π½ΠΎ Π²ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
Visual Studio. Π Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
Π±ΡΠ΄Π΅Ρ Π΄Π°ΠΆΠ΅ Π»Π΅Π³ΡΠ΅, ΡΡΠΈΡΡΠ²Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½Π½ΠΎΡΡΠΈ VS, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° β Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ, obfuscator.h
ΠΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ°ΠΊΡΠΎc X(), Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΎΠ±ΡΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡΠΊΠ²Ρ (Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Π·Π°ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄), ΠΈ Π΅ΡΡΡ ΡΠ°Π½Ρ ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΈΠ»ΠΈ Π² ΡΡΠΆΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅) ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΠΊΡΠΎΡ ΡΠΎΠΆΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½, Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π² ΠΎΠΊΠ½Π΅ Π»ΠΎΠ³Π° Π±ΠΈΠ»Π΄Π°.
ΠΡΠ»ΠΈ DO_OBFUSCATE_STRINGS ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½, ΡΠΎ ΡΡΡΠΎΠΊΠ° Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° X(s)obDecodeStr(OBPREPROCESSENCODEDSTR(s))
Β«OBPREPROCESSENCODEDSTRΒ» β ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΊΠ°ΡΡ ΠΌΠΎΠΉ ΡΠΊΡΠΈΠΏΡ ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΌ ΡΡΠΎΠ±Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ² Π²ΡΡΡΠ΅ΡΠΈΡΡΡ Π³Π΄Π΅-ΡΠΎ Π΅ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΡΠ°ΠΊ, ΡΠ°ΠΌ ΡΠΊΡΠΈΠΏΡ:
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠΊΡΠΈΠΏΡ ΡΠΈΡΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΈΡΠ΅Ρ Π½Π°ΡΠΈ ΡΠΎΠΊΠ΅Π½Ρ, Β«OBPREPROCESSENCODEDSTRΒ». ΠΠ°ΠΉΠ΄Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΎΠΊΠ΅Π½, ΡΡΡΠΎΠΊΠ° Β«ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡΒ».
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΡΡΠΎΠΉΠΊΠΈΠΉ, Π½ΠΎ Π΅Π³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΡΠΈΡΡ. ΠΠ΄Π΅ΡΡ ΠΎΠ½ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΠΊΠΎΡΠ½Π΅Π²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ obfuscate-i.php
ΠΡ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Π§ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎ ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Π² ΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π³Π΄Π΅ ΠΎΠ½Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π°, Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π΅Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ, Π°Π΄ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ Π² Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π² ΠΎΠ±ΡΠ°Π·Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ 4 ΠΈΠ· Π½ΠΈΡ , ΡΠ΅ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ.
__forceinline ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΡΠ΅ΠΉΠΊΠΏΠΎΠΉΠ½Ρ Π² ΡΠ°ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ obDecodeStr ΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Π±ΡΡΠ΅ΡΠΎΠ² 4 Π° Π½Π΅ 1?
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ Π²ΡΠ·ΠΎΠ² MessageBox(0, X(βSome valueβ), X(βsome another valueβ), MB_OK)
ΠΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ, ΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ MessageBox ΠΏΠΎΠΏΠ°Π»ΠΈ Π±Ρ ΠΏΡΠΎΡΡΠΎ Π°Π΄ΡΠ΅ΡΠ° ΡΡΡΠΎΠΊ ΠΈ Π²ΡΡ Π±ΡΠ»ΠΎ Π±Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. ΠΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π°, ΡΡΠΎΡ Π²ΡΠ·ΠΎΠ² ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² MessageBox(0, obDecodeStr(βSome valueβ), obDecodeStr(βsome another valueβ), MB_OK), ΠΈ ΠΎΠ±Π° Π²ΡΠ·ΠΎΠ²Π° obDecodeStr Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ *ΠΏΠ΅ΡΠ΅Π΄* ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ MessageBox. Π Π΅ΡΠ»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΡΡΠ΅Ρ, ΡΠΎ Π²ΡΠΎΡΠΎΠΉ Π²ΡΠ·ΠΎΠ² obDecodeStr ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π» Π±Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ, ΠΈ Π² ΠΎΠ±Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΏΠ°Π»ΠΎ Π±Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅:MessageBox(0, βsome another valueβ, βsome another valueβ, MB_OK).
ΠΠΎΡΡΠΎΠΌΡ 4 Π±ΡΡΠ΅ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ 1. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ 4 ΠΎΠ±ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ char* ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ°Π·Ρ, ΡΠΎ Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΡΠ΅ΡΠΎΠ².
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΡ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ?
(ΠΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΠΏΠΈΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ, Ρ Π΄ΡΠΌΠ°Ρ ΡΠ°Π·Π±Π΅ΡΡΡΠ΅ΡΡ Π΅ΡΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ Π²Π°Ρ ΡΡΡΡΠΊΠ°Ρ ΡΡΡΠ΄ΠΈΡ)
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² X(), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΈ Π²Π°ΡΠΈ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ Π·Π°ΡΠΈΡΠ΅Π½Ρ.
ΠΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Release/Debug, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ΄ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ, ΠΏΠΎΡΡΡΠΎΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Release-obfuscated-prestep (ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΏΠΎΡΡΡΠΎΠΈΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°), ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ Release-obfuscated, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Β«Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΉΒ» Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ.
(ΠΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π·ΠΎΡΠ° ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠΎΠ². ΠΠ°ΡΠ°Π»ΠΎ ΡΡΡ)
1. ΠΠ±ΡΡΡΠΊΠ°ΡΠΎΡΡ.
1.1. ΠΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ±ΠΎΡΠΎΠΊ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ (Assembly Merge, Namespace Flatten)
ΠΠ°Π½Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° Π½ΠΈ Π½Π° ΠΌΠΈΠ½ΡΡΡ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠ²Π°Π½ΠΈΡ. Π’.ΠΊ. ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ ΡΠ±ΠΎΡΠΊΠ°, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π±Π΅Π· Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΡΠ΄Π΅Ρ Π² Π½Π΅ΠΉ Π½Π°ΠΉΡΠΈ ΡΠΎ, ΡΡΠΎ Π½Π°Π΄ΠΎ.
ΠΠΏΡΡΡ ΠΆΠ΅, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΊΡΠ°ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ΄, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ΄ΡΡ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ (ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠ΅).
ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ilmerge, Π»ΠΈΠ±ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π² ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ ΠΈΠΌΡΠ½ ΠΊΠ»Π°ΡΡΠΎΠ² (ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π½Π°Π·Π²Π°Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈΠ· ΡΠ°Π·Π½ΡΡ Π½Π΅ΠΉΠΌΡΠΏΠ΅ΠΉΡΠΎΠ²).
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½, ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΈΠ· ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ. ΠΠΎ ΡΠ°ΠΊΠ°Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ.
ΠΠ±ΡΡΡΠΊΠ°ΡΠΈΡ control flow
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΡΠΏΠΎΡΠ½ΡΠΉ ΡΡΠ°ΠΏ.
ΠΠ°Π½Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²Π΅ΡΡΠΈ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π² ΠΏΠΎΠ»Π½ΡΠΉ ΡΡΡΠΏΠΎΡ) Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΡΠ·ΡΠΊΠΎΠ² Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π§ΡΠΎ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Β«Π²ΠΎΡΠΎΠ²ΡΡΠ²ΡΒ» ΠΊΠΎΠ΄Π°. Π’Π°ΠΊΠΆΠ΅ Β«Π·Π°ΠΏΡΡΡΠ²Π°Π΅ΡΒ» ΠΊΡΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈ Π°Π²ΡΠΎΡΠΎΠ² ΠΊΠ΅ΠΉΠ³Π΅Π½ΠΎΠ².
ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΌΠ΅Π΄Π°Π»ΠΈ β ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ½ΠΈΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ³ΠΈΡΠ½ΠΎ ΡΡΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡ Π·Π°ΠΏΡΡΡΠ²Π°Π΅ΠΌ Ρ
ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΊΠΎΠ΄ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΡΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈ, ΡΡΠΈ Π±Π»ΠΎΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈ Β«ΡΠΊΠ»Π΅ΠΈΠ²Π°ΡΡΡΡΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ² (ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ br ΠΈ br.s). Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΡΠ²Π°ΡΡ ΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ, ΠΈ Β«ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΒ» Π΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΡ Π²ΡΠ΄Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ:
ΠΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°, ΠΈ Π΅Ρ ΡΠ΅Π»ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠΊΠΎΠ΅ Β«ΡΡΡΠ»ΠΎΒ», ΡΠΈΠΏΠ° Π²ΡΠΏΠ°Π΄Π΅Π½ΠΈΡ Π² Π΄Π΅Π±Π°Π³Π³Π΅Ρ, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° (ΠΊΠ°ΠΊ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅) Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° switch:
L_0000: br.s L_0023
L_0002: ldloc num3
L_0006: switch (L_005b, L_0068, L_00ce, L_00af, L_0047, L_007b)
.
.
.
L_003c: ldc.i4 4
L_0041: stloc num3
L_0045: br.s L_0002
ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ L_0045 Β«Π² Π΄Π΅Π²ΠΈΡΠ΅ΡΡΠ²Π΅Β» Π±ΡΠ»Π° br L_0047, Π° Π΅ΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ, ΡΠΎ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ nop π
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Β«ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π½Π° ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Β»:
Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π²ΠΈΠ΄Π΅Π» ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΈΠ· 6 (ΡΠ΅ΡΡΠΈ) ΡΠ°ΠΊΠΈΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ² π
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ»ΠΎΠ²Π½ΡΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ΅Π³Π΄Π° Π²Π΅ΡΠ½Ρ (ΠΈΠ»ΠΈ Π½Π΅Π²Π΅ΡΠ½Ρ).
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΡΠ»Π΅Π³ΠΊΠ° Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠ΅:
L_0014: ldc.i4.1
L_0015: stloc.0
L_0016: br.s L_001c
L_0018: nop
L_0019: ldarg.1
L_001a: br.s L_002e
L_001c: ldloc.0
L_001d: brtrue.s L_0018
L_0000: ldc.i4.5
L_0001: dup
L_0002: dup
L_0003: ldc.i4.6
L_0004: sub
L_0005: blt L_0001
ΠΡΠΎΡΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
L_0000: ldc.i4 4
L_0005: stloc num
L_0009: ldstr «\u5f03»
L_000e: ldloc num
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΊΠΎΠ΄ Π²ΠΈΠ΄Π° stloc X, ldloc X, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π½ΠΎ Π½Π΅ ΡΠ±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠΎ ΡΡΡΠΊΠ°. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠΎΠ², ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ (num) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π½ΠΈΠ³Π΄Π΅ ΠΊΡΠΎΠΌΠ΅ Π΄Π°Π½Π½ΡΡ Π΄Π²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ Β«ΠΆΡΡΡΠΊΠΈΡ Β» ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² β Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° tryβcatch ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ, Ρ.ΠΊ. ΡΠ΅Π·ΠΊΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΊΡΠΈΠ½ΡΠΎΡ Ρ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠΆΡ Ρ. ΠΊ. ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°.
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ», Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ Π΅ΡΡ, ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°Ρ .
Invalid IL
Π’ΡΡ Π²ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. Π ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½Ρ, Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΠΎΠΏΠΊΠΎΠ΄Ρ (Ρ.Π΅. Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ).
Π ΡΠ΅ΡΠ»Π΅ΠΊΡΠΎΡΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅:
ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° IL:
ΠΠ°Π½Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΎΠ±Π΅ΡΠΊΡΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Β«Ρ
Π°ΠΊΡΠΎΡΠΎΠ²Β». ΠΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° (Π΄Π°Π½Π½ΡΠ΅ ΠΎΠΏΠΊΠΎΠ΄Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ Π½Π° nop).
Π‘ΠΎΠΊΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊ
ΠΠ΅ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΒ», Π½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΡΡΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ·ΡΠΊ.
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ Β«Π΄Π΅ΡΡΠΊΠΈΠΌΒ» Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° XOR Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ:
public static string Decode( string str, int num)
<
int length = str.Length;
char [] chArray = str.ToCharArray();
while (—length >= 0)
chArray[length] = ( char )(chArray[length] ^ num);
return new string (chArray);
>
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΡΠΎΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ΄Π½Ρ, ΠΈ ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Substring; ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΡΠΎΠΊΠΈ ΠΏΡΡΡΡΡ Π² ΡΠ΅ΡΡΡΡΡ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Β«ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅Β» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΡΡΠΎΠΊΠ° ΠΈ/ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎ. ΠΠΈΠΊΠ°ΠΊΠΈΡ
ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ: Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π·Π΄Π΅ΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π΅ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π±Π΅Π·Π±ΠΎΠΆΠ½ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΡΡ.
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΏΠ°ΡΠ°Π΅Ρ ΠΎΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΊΡΠ°ΠΊΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΏΠ° βInvalid serial numberβ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ Π±Π°Π³ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²
Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΠΉ Π°ΡΡΠΈΠ±ΡΡ β [SuppressIldasm], ΠΊΠΎΡΠΎΡΡΠΉ Β«Π²Π΅ΠΆΠ»ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠΈΡΒ» Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Microsoft β ildasm. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΎΡΠ° ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ
Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π΅Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ»Π΅ΠΊΡΠΎΡ Π²ΡΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ldfld string ε½.ε::ε½, Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ Mono.Cecil β Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ RVA), ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠΈΡΠΊΠΈΠ΅ Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΡ: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠΊΠ°, Π½ΠΎ ΠΈΠ΄ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΠΊΠ°ΠΊ ΠΏΠΎ Π³ΡΠ°ΡΡ, Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, ΠΈ ΡΠ°Π΄ΠΎΡΡΠ½ΠΎ Π²Π°Π»ΡΡΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°Ρ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ret Π²ΡΡΠ°Π²Π»Π΅Π½ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ». ΠΡΠΎΡΠΈΠ² ΠΏΠ»Π°Π³ΠΈΠ½Π° Reflexil Ρ ΠΎΡΠΎΡΠΎ Β«ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΡΒ» ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡΠ°Ρ ΡΠ°ΠΌΠ° Π½Π° ΡΠ΅Π±Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Exaktus Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡ 1.2. ΠΠ±Π·ΠΎΡ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΎΡΠΎΠ²
ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ.
* All source code was highlighted with MSVS and wordpad π