обфускация исходного ΠΊΠΎΠ΄Π° c

Π—Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π½Π° C#

ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

К соТалСнию, дотнСтовскиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ дТавовскиС, довольно-Ρ‚Π°ΠΊΠΈ просто Β«Π²ΡΠΊΡ€Ρ‹Ρ‚ΡŒΒ». Π’ΠΈΠ½ΠΎΠΉ всСму Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π»Π΅Π³ΠΊΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π”Π°Π»Π΅ΠΊΠΎ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°ΠΆΠ΅ VS поставляСтся с дизассСмблСром ILDasm.

обфускация исходного ΠΊΠΎΠ΄Π° c. ildasm. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-ildasm. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ildasm. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

На самом Π΄Π΅Π»Π΅, эту Ρ‚Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΏΠ½ΡƒΡ‚ΡŒ Π½Π° страниц 20 ΠΈ всС Ρ€Π°Π²Π½ΠΎ ΠΎΠ½Π° получится достаточно повСрхностной. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ инструмСнтария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ крэкСры ΠΈ программисты. Π₯отя это ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ скорСС обзорная ΡΡ‚Π°Ρ‚ΡŒΡ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ C# прилоТСния

Π‘Ρ‹Π²Π°Π»Ρ‹Π΅ программисты, ΡƒΠ²ΠΈΠ΄Π΅Π² Π΄Π°Π½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, просто усмСхнутся ΠΈ скаТут, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ прилоТСния всС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π΅Π³ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ сразу ΠΎΠ±Ρ€Π΅Ρ‡Π΅Π½Ρ‹. На самом Π΄Π΅Π»Π΅, с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ ΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π”Π°, Ссли ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вся Π»ΠΎΠ³ΠΈΠΊΠ° рассчитываСтся Π½Π° сСрвСрС, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ просто слуТит для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° экранС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ – Π³Π»ΡƒΠΏΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ΠΈ хранятся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСрС ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ просто свСряСтся с Π±Π°Π·ΠΎΠΉ, Π΄Π° ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠ°Π»ΠΎ Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ. Π’ эпоху повальной ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π²Π½Π΅Π΄Ρ€ΡΠ»ΠΎΡΡŒ повсСмСстно, вызывая ΠΊΡƒΡ‡Ρƒ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²Π° Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π”Π°, ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ ΠΊ элСктронным ΠΊΠ»ΡŽΡ‡Π°ΠΌ, вставляСмым Π² ПК, Π½ΠΎ Ρƒ ΠΈΠ½Π΄ΠΈ-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… возмоТностСй просто Π½Π΅Ρ‚, Π΄Π° ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всС ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, хотя ΠΈ довольно-Ρ‚Π°ΠΊΠΈ слоТно.

обфускация исходного ΠΊΠΎΠ΄Π° c. decompiler. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-decompiler. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° decompiler. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

К соТалСнию, описаниС dotPeek ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, поэтому просто ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ этот инструмСнт Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡƒΠΌΠ΅Π΅Ρ‚. А этот список вСсьма ΠΈ вСсьма Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Π― просто ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ для крэкСра Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Для отобраТСния Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° dotPeek ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Microsoft Visual Studio: ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ…, подсвСтка синтаксиса, сворачиваниС Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, нумСрация строк ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ сборку, Π½ΠΎ ΠΈ внСсти Π² Π½Π΅Π΅ измСнСния, dotPeek ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Microsoft Visual Studio ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡƒΠΆΠ΅ с исходным ΠΊΠΎΠ΄ΠΎΠΌ сборки.

Занятная Ρ‚ΡƒΠ»Π·Π°, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Но самоС Π³Π»Π°Π²Π½ΠΎΠ΅ – dotPeek Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатный, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Β«Π΄Π΅Π΄ΡƒΡˆΠΊΠΈΒ» .NET Reflector, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π» Π΅Π΄Π²Π° Π»ΠΈ Π½Π΅ стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для дСкомпиляции дотнСтовских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΠΎ, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΠ»ΠΈ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ dotPeek Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρƒ вас всСгда. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° сайтС https://jetbrains.ru/products/dotpeek/

ЕстСствСнно, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° всС Π·Π½Π°ΡŽΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° C# ΠΌΠΎΠΆΠ΅Ρ‚ Β«Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒΒ» любой, способный ΠΊΡ€ΡΠΊΠ½ΡƒΡ‚ΡŒ ΠΈΠ³Ρ€Ρƒ, начинаСтся шСвСлСниС ΠΈ Π²ΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π·Π°Ρ‰ΠΈΡ‚Π΅.

обфускация исходного ΠΊΠΎΠ΄Π° c. Dotfuscator. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-Dotfuscator. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Dotfuscator. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ обфускатор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ нравится – это прСсловутый ConfuserEx. Он опСнсорсный ΠΈ Π΄Π°Π΅Ρ‚ вСсьма ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Β«ΠΏΡƒΡ‚Π°Π΅Ρ‚Β» ΠΊΠΎΠ΄ ΠΈ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ исслСдоватСля ILSpy.

обфускация исходного ΠΊΠΎΠ΄Π° c. prot1. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-prot1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° prot1. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

обфускация исходного ΠΊΠΎΠ΄Π° c. prot2. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-prot2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° prot2. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° https://yck1509.github.io/ConfuserEx/. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ всС ΠΆΠ΅ ΡΠ½ΡΡ‚ΡŒ нСбСзызвСстным De4dot, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ рСвСрсСр Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚, ΠΈΠΌΠ΅ΠΉΡ‚Π΅ это Π² Π²ΠΈΠ΄Ρƒ.

2 ) ΠšΡ€ΠΈΠΏΡ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ€Ρ‹. На самом Π΄Π΅Π»Π΅, хотя ΠΈ Π΄Π°ΡŽΡ‚ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² попросту Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ стоят Π±Π΅Π·ΡƒΠΌΠ½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π΅Π½Π΅Π³. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° Π½ΠΈΡ… я ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ стану.

3) НовыС студии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (начиная с 2015) мСня большС Ρ€Π°Π΄ΡƒΡŽΡ‚. ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ .NET Native, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дотнСтовскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

обфускация исходного ΠΊΠΎΠ΄Π° c. blocks. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-blocks. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° blocks. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

РСзюмС

Вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности стоял всСгда ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. ΠŸΠΈΡ€Π°Ρ‚ΡΡ‚Π²ΠΎ ΠΈ антипиратство Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΡˆΠ°Π³Π°ΡŽΡ‚ Ρ€ΡƒΠΊΠ° ΠΎΠ± Ρ€ΡƒΠΊΡƒ, создавая всСвозмоТныС инструмСнты.

C# прилоТСния Π±Ρ‹Π»ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ уязвимы для рСвСрсинга. Π’ этом ΠΏΠ»Π°Π½Π΅, ΠΎΠ½ΠΈ Π½Π΅ сильно Π΄Π°Π»Π΅ΠΊΠΎ ΡƒΡˆΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ JS, хотя Ρ‚Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ всС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ. ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ Π·Π°ΠΏΡƒΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ инструмСнты Ρ‚ΠΈΠΏΠ° dotPeek ΠΈΠ»ΠΈ ILSpy. Но Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΎΠ½ΠΈ обрасли Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΈ всячСски Π΅Π΅ ΡΠ½ΡΡ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Ρ‚ΡŒ ΠΈΠΌΠΈ Π½Π΅ стоит.

Если Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ написано Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для майкрософтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, я Π±Ρ‹ всС-Ρ‚Π°ΠΊΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .NET Native.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ. Вопрос стоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ, ΠΊΠΎΠΌΡƒ это понадобится.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

обфускация исходного ΠΊΠΎΠ΄Π° c. image loader. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

Или Ρ‚ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π΄Π°Ρ‚ΡŒ свою ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Counter Strike ΠΈ ΡƒΠ΅Ρ…Π°Ρ‚ΡŒ ΠΆΠΈΡ‚ΡŒ Π½Π° Π“Π°Π²Π°ΠΉΠΈ.

О Ρ‡Ρ‘ΠΌ Ρ€Π΅Ρ‡ΡŒ?

обфускация исходного ΠΊΠΎΠ΄Π° c. 8368c21be891988223f288826a60d80e. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-8368c21be891988223f288826a60d80e. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8368c21be891988223f288826a60d80e. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.ΠšΡ€Π°ΡΠΈΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΎΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡŽ.

Π”Π°Π»Π΅Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Как это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

БостояниС Π΄Π΅Π» сСйчас

Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ?

Π’Π°ΠΊ ΠΆΠ΅, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ обфускации Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для затруднСния Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π±-сСрвисов ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Как это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

Как понятно ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ обфускации Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π² Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ† Π»ΠΎΠ³ΠΈΠΊΡƒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обфускации ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ аспСктов ΠΊΠΎΠ΄Π°:

β€’ Π”Π°Π½Π½Ρ‹Π΅: Π΄Π΅Π»Π°ΡŽΡ‚ элСмСнты ΠΊΠΎΠ΄Π° ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌΠΈ Π½Π° Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ

β€’ ΠŸΠΎΡ‚ΠΎΠΊ ΠΊΠΎΠ΄Π°: Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ абсурдной ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ

β€’ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°: ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊΠΎΠ΄Π° ΠΈ Ρ‚.Π΄.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ обфускации ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с source ΠΈΠ»ΠΈ Π±Π°ΠΉΡ‚ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ обфускация Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² слоТнСС, ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСмы.

ΠŸΡ€ΠΈ обфускации ΠΊΠΎΠ΄Π°, Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ части ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ эффСктивно Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ обфускации ΠΊΠΎΠ΄Π°, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

обфускация исходного ΠΊΠΎΠ΄Π° c. 3d7fca8e9b34526e1ef24feb33686942. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-3d7fca8e9b34526e1ef24feb33686942. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 3d7fca8e9b34526e1ef24feb33686942. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

1. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… элСмСнтов обфускации являСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π² ΠΈΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ минимальноС виляниС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‰Π΅Π΅ Ρ…Π°ΠΊΠ΅Ρ€Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€Π½Π³Π°.

По ссылкС ΠΌΠΎΠΆΠ½ΠΎ ознакомится с интСрСсными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ использования Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ записи чисСл для услоТнСния Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ тоТдСствСнными ΠΈΠΌ выраТСниями.

2. ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния ΠΊΠΎΠ΄ΠΎΠΌ

ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ измСнСния порядка ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ИзмСнСниС Π³Ρ€Π°Ρ„Π° управлСния ΠΏΡƒΡ‚Π΅ΠΌ вставки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… инструкций ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ прСобразования Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… условных конструкций Π² плоскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅.

3. ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ адрСсов

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ измСняСт структура хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΈΡ… использованиС. НапримСр Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ случайными адрСса Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ элСмСнтами Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΈ смоТСт «Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ» Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ устройствС, Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах ΠΎΠ½ всё Ρ€Π°Π²Π½ΠΎ Π½Π΅ смоТСт воспроизвСсти свой успСх.

4. РСгулярноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°Ρ‚Π°ΠΊΠΈ, рСгулярно выпуская обновлСния обфусцированного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘Π²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ частСй ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½ΠΎΠ²Ρ‹ΠΌΠΈ обфусцированными экзСмплярами, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π½ΡƒΠ΄ΠΈΡ‚ΡŒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ° ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ усилия ΠΏΠΎ Π²Π·Π»ΠΎΠΌΡƒ ΠΊΠΎΠ΄Π° Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡƒΡŽ ΠΎΡ‚ этого Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ.

5. ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ инструкций ассСмблСра

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ассСмблСрного ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ процСсс ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π°. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² являСтся использованиС ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ инструкций (jump-in-a-middle), Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ дизассСмблСр ΠΌΠΎΠΆΠ΅Ρ‚ произвСсти Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. АссСмблСрный ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ усилСн ΠΏΡ€ΠΎΡ‚ΠΈΠ² проникновСния Π·Π° счёт Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ бСсполСзных ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ мусорного ΠΊΠΎΠ΄Π°.

6. ΠžΠ±Ρ„ΡƒΡΠΊΠ°Ρ†ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ проСктирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, поэтому Π²Π°ΠΆΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсанкционированный доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ обфускации Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ этого, измСняя Π½ΠΎΠΌΠ΅Ρ€Π° строк ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляя ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π― Π½Π΅ стал ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ развития Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ обфускации, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° ΠΌΠΎΠΉ взгляд, ΠΎΠ½Π° Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π° Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π½Π° Π₯Π°Π±Ρ€Π΅ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ Π±Ρ‹Π»Π° написана Π² 2015 Π³ΠΎΠ΄Ρƒ, ΠΈ ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ сущСствСнного количСства статСй ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π½Π° Ρ‚Π΅ΠΌΡƒ ΠΌΠΎΠ΅Π³ΠΎ поста, Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡˆΠΈΡ…ΡΡ Π·Π° это врСмя. На ΠΌΠΎΠΉ взгляд, Π² наш Π²Π΅ΠΊ всё Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° всСвозмоТных Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ°Π»ΠΎ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² обфускации Π² качСствС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Однако ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈ сТатиС исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обфускации Π² Ρ‚Π°ΠΊΠΈΡ… прилоТСниях Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ оказываСтся ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² обфускации Π½Π΅ слСдуСт ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ вашСго ΠΊΠΎΠ΄Π°, вСдь обфускация Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ сСрСбряная пуля Π² вопросС Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ Π²Π·Π»ΠΎΠΌΠ°.

обфускация исходного ΠΊΠΎΠ΄Π° c. 7b2704ddc932d7ae58ca0c6502236447. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-7b2704ddc932d7ae58ca0c6502236447. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 7b2704ddc932d7ae58ca0c6502236447. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.

Бсылки ΠΈ источники

[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 πŸ˜‰

Иногда ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Β«ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Β»:
обфускация исходного ΠΊΠΎΠ΄Π° c. image loader. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.
Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ я Π²ΠΈΠ΄Π΅Π» Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΈΠ· 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
Π’ΡƒΡ‚ всё ΠΎΡ‡Π΅Π½ΡŒ просто. Π’ участки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ исполнСны, Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ описанныС Π² стандартС ΠΎΠΏΠΊΠΎΠ΄Ρ‹ (Ρ‚.Π΅. Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Ρ‹Π΅ инструкции).
Π’ Ρ€Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΎΡ€Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅:
обфускация исходного ΠΊΠΎΠ΄Π° c. image loader. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.
ΠΈΠ»ΠΈ, Ссли ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° IL:
обфускация исходного ΠΊΠΎΠ΄Π° c. image loader. обфускация исходного ΠΊΠΎΠ΄Π° c Ρ„ΠΎΡ‚ΠΎ. обфускация исходного ΠΊΠΎΠ΄Π° c-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° обфускация исходного ΠΊΠΎΠ΄Π° c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΌΠ½Π΅ ΠΏΠΈΡˆΡƒΡ‚ с вопросом ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° дотнСтовской ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π§Ρ‚ΠΎ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Π½ΠΎ вопрос Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ программистов всСгда.
Данная ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° обСскураТиваСт Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… «хаксоров». Но Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ слоТным для ΠΎΠ±Ρ…ΠΎΠ΄Π° (Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠΊΠΎΠ΄Ρ‹ просто Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° 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 πŸ˜‰

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *