Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Jak wiadomo program napisany w dowolnym języku platformy .NET jest podatny na dekompilację. Kod wynikowy który otrzymamy z dekompilatora podobny jest a w niektórych przypadkach wręcz taki sam (mam na myśli to co widzi programista oczami). W tym poradniku pokaże jak łatwo i tanio się zabezpieczyć przed dekompilacją.

 

Potrzebujemy:

 

- obfuscator (zaciemniacz kodu)

- dekompilator

- jakąś aplikację

 

Obfuscator

Dostępnych jest wiele obfuscatorów. Niektóre za free, za niektóre trzeba zapłacić. W sieci bardzo polecanym i darmowym zaciemniaczem kodu jest Eazfuscator.NET. I to właśnie na nim będzie się opierać ten poradnik. (Uwaga! Wersja 3.3 jest ostatnią darmową wersją tego programu. Nie współpracuje z .NET 4.5)

 

http://www.mediafire.com/?qrudv912heqxi6o

 

Virustotal: https://www.virustotal.com/pl/file/b71f4a1907e344eb8b661f1752abf772ede75691c14240107bf003b17be4580e/analysis/

 

Decompiler

 

Jak wyżej są i wersje płatne i darmowe. Ja polecam JetBrains dotPeek. Można skorzystać też m.in. z triala .NET Reflector

 

http://www.jetbrains.com/decompiler/

 

Teraz należałoby sprawdzić jak to wszystko będzie działać. Tak więc napiszmy sobie jakiś program.

 

using System;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().Say(Console.ReadLine());
        }

        private void Say(string msg)
        {
            Console.WriteLine(msg);
        }
        
    }
}

 

Kompilujemy. Odpalamy dekompilator (ja skorzystam z dotPeeka). Z menu wybieramy File -> Open. Następnie przechodzimy do katalogu naszego programu i otwieramy nasza binarkę. Gdy klikniemy Open zauważymy, że do drzewka zostanie dodana nasza aplikacja. Rozwijając kolejno to drzewko zauważymy Referencję, przestrzenie nazw, nazwy klas, metod.

 

image.png

 

Otwórzmy klase Program (dwukrotne kliknięcie). Ujrzymy taki kod:

 

using System;

namespace ConsoleApplication9
{
  internal class Program
  {
    private static void Main(string[] args)
    {
      new Program().Say(Console.ReadLine());
    }

    private void Say(string msg)
    {
      Console.WriteLine(msg);
    }
  }
}

 

Czyli kod który uzyskaliśmy z dekompilacji jest w 99% identyczny z kodem który poddaliśmy kompilacji. Słowo internal które się pojawiło wynika z właściwości języka c# więc można uznać, że oba są identyczne.

 

Ten sam program poddamy teraz działaniu obfuscatora. Uruchom Eazfuscatora. Powinno ukazać się takie oto okienko:

 

image.png

 

Jak użyć tej aplikacji. Bardzo proste. Przeciągamy naszą binarkę na zielone pole. Czekamy chwilke i gotowe. Waga naszego programu troszkę się zwiększy. Po procesie zaciemniania kodu pojawi się nawet informacja, że ta wersja jest jako ostatnia, darmowa :)

 

Tak więc ponownie otwórzmy naszą binarkę w dotPeeku. Na pierwszy rzut oka nie zauważymy nazw przestrzeni nazw czy klas. Zagłębiając się dalej zauważymy zamazane nazwy parametrów czy metod.

Na większym projekcie lepiej widać różnicę.

 

using System;

internal sealed class 
{
  private static void (string[] )
  {
    new ().(Console.ReadLine());
  }

  private void (string )
  {
    Console.WriteLine(param0);
  }
}

 

Oczywiście to, że zaciemnimy sobie kod nie oznacza, że kod naszego programu nie zostanie odczytany. Utrudnimy tylko potencjalnemu "hakierowi" odczytanie kodu.

 

Mam nadzieję, że ten poradnik komuś się przyda.

  • 2 tygodnie później...
Opublikowano

Polecam przelecieć jeszcze Executable (.exe) w MPRESS, jest to packer dla PE32/PE32+/.NET/MAC-DARWIN, używam go i jestem zachwycony działaniem tego programu. Program wykorzystuję metode drop & drag, przeciągasz plik na ten program. TU PACZ.

buu

Opublikowano

Dla tych co chcą się czuć w 100% bezpieczni polecam sprawdzić Dymar Obfuscator który już nie jest produkowany, trzeba stanąć na uszach żeby tknąć program nim zobfuscowany.

  •  carbonx zmienił(a) tytuł na Zaciemnianie kodu

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...