Piszę pewien program przy użyciu środowiska MonoDevelop.
Słyszałem, że sam MonoDevelop jest na licencji LGPL, czyli mogę uzywać kompilatora za darmo bez żadnych opłat. Jednak chciałbym się upewnić, czy programy napisane przy użyciu MonoDevelop mogę sprzedawać komercyjnie bez udostępniania kodu źródłowego? Słyszałem, że tak, tym bardziej, że spotkałem się z ofertami zatrudnienia jako programista .NET/Mono na Linuxa.
Druga sprawa, to utrudnianie dekompilacji programu.
Jest taki program Artisteer, napisany w .NET. Jak się wczyta Exe do Net Reflector, to nie da rady wyświetlić wielu metod. Jak się wczyta Exe skompilowanego bezpośrednio w MonoDevelop lub VisualStudio, to można odtworzyć prawie cały kod źródłowy. Chciałbym zrobić coś, co zrobili autorzy Artisteera. Słyszałem, że zabieg polegający na utrudnieniu dekompilacji, to jest "obfuscacja". Wpisałem w Google "net obfuscator" i popatrzyłem na wyniki. Moim zdaniem wszystkie obfuskatory różnią się tylko nazwą, bo cel ich użycia takiego programu jest zawsze ten sam, tylko jeden robi to trochę lepiej, drugi robi to trochę gorzej. Dużo było obfuskatorów płatnych, znalazłem darmowy Eazfuscator.NET i SkaterLight. Sprawdziłem efekt działania i w obu przypadkach rzeczywiście w miejscu nazw wszystkich zmiennych pojawił się kwadracik, czyli już cos jest, ale też nie do końca, bo można odtworzyć wszystkie metody (tylko zginęły ich nazwy), w których są wszystkie ify i fory, tylko nie widać, skąd dokąd płyną dane, bo wszystkie zmienne wyglądają tak samo i nie da się odnaleźć która jest która. Czy jest jakiś darmowy obfuskator, który daje pożądany efekt?