Narzędzia NET zaciemniania / strategia

głosy
146

Mój produkt ma kilka elementów: ASP.NET, Windows Forms aplikacji i Windows. 95% albo kodu jest napisany w VB.NET.

Ze względów własności intelektualnej, muszę zaciemniać kodu i dopiero teraz używam wersję Dotfuscator który jest obecnie ponad 5 lat. Myślę, że nadszedł czas, aby przejść do nowego narzędzia generacji. Co szukam jest lista wymagań, które należy wziąć pod uwagę przy poszukiwaniu nowego Obfuscator.

Co wiem, że powinienem szukać tej pory:

  • Serializacji / De-serializacji . W moim obecnym rozwiązaniu, ja po prostu powiedzieć, że narzędzie nie zaciemniać żadnych członków danych klasy, ponieważ ból nie jest w stanie załadować dane, które wcześniej szeregowane jest po prostu zbyt duża.
  • Integracja z procesem budowy
  • Praca z ASP.NET . W przeszłości Znalazłem to problematyczne ze względu na zmianę nazwy .dll (często mają po jednym na stronę) - co nie wszystkie narzędzia obsłużyć dobrze.
Utwórz 05/08/2008 o 17:20
źródło użytkownik
W innych językach...                            


31 odpowiedzi

głosy
49

Próbowaliśmy kilka obfuscators. Żaden z nich pracuje na dużej aplikacji klient / serwer, który używa usług zdalnych. Problem polega na tym, że klient i serwer udział kilka bibliotek DLL i nie znalazłem żadnego obfuscator że można go obsługiwać.

Staraliśmy Dotfuscator Pro, SmartAssembly, XenoCode, salamandry i kilka małych aplikacji czasowych, których nazwy ucieczka mnie.

Szczerze mówiąc, jestem przekonany zaciemniania jest duża Hack.

Nawet problemy to adresy nie jest do końca prawdziwy problem. Jedyną rzeczą, którą naprawdę trzeba chronić to ciągi połączeń, kody aktywacyjne, bezpieczeństwo wrażliwych takich rzeczy. To nonsens, że inna firma ma zamiar odwrócić inżynier całe codebase i stworzyć konkurencyjny produkt z to jest coś z koszmaru paranoiczny menedżera, a nie rzeczywistość.

Odpowiedział 07/08/2008 o 19:15
źródło użytkownik

głosy
39

Jestem „po kolana” w to teraz, starając się znaleźć dobre rozwiązanie. Oto moje wrażenia do tej pory.

Xenocode - Mam starą licencję na Xenocode2005 którego używałem do kasował mojemu .NET 2.0 zespołów. To działało dobrze na XP i był przyzwoity rozwiązaniem. Mój obecny projekt jest .net 3.5 i jestem na Vista, wsparcie kazał mi spróbować, ale wersja 2005 nawet nie działa na Vista (awarii), więc i teraz muszę kupić „PostBuild2008” ze gobsmacking przedziale cenowym od $ 1.900. To może być dobrym narzędziem, ale nie zamierzam się dowiedzieć. Za drogie.

Reactor.Net - Jest to o wiele bardziej atrakcyjny punkt cena i to działało dobrze na moim Standalone Executeable. Moduł Licensing był również miły i byłby zapisany mi sporo wysiłku. Niestety, brakuje kluczową funkcję i że jest możliwość Wykluczanie rzeczy z zaciemniania. To sprawia, że niemożliwe do osiągnięcia rezultatu, co potrzebne (Scalanie wielu zespołów razem, zaciemniać niektórych nie-zaciemniać inne).

SmartAssembly - Pobrałem Eval za to i to działało bez zarzutu. Udało mi się osiągnąć wszystko, co chciałem, a interfejs był pierwsza klasa. Punkt cena jest nadal nieco mocny.

Dotfuscator Pro - nie można odnaleźć na stronie internetowej cenę. Obecnie w dyskusji dostać ofertę. Brzmi złowieszczo.

Confuser - projekt open source, który działa całkiem dobrze (mylić ppl, jak sama nazwa wskazuje). https://confuser.codeplex.com/
(dodają jgauffin)

Uwaga: ConfuserEx jest podobno „zepsuty” według Issue # 498 na ich GitHub repo.

Odpowiedział 11/05/2009 o 07:04
źródło użytkownik

głosy
39

Powrót z .NET 1.1 zaciemniania było istotne: kod decompiling było łatwe, i można iść z zespołu, IL, do kodu C # i go ponownie skompilowany z niewielkim wysiłkiem.

Teraz z .NET 3.5 nie jestem wcale pewien. Spróbuj Dekodowanie 3,5-montaż; co masz jest długa długa droga z kompilacji.

Dodaj optymalizacje od 3,5 (o wiele lepiej niż 1.1) i po drodze anonimowe typy, delegatów i tak dalej są obsługiwane przez odbicie (są koszmarem rekompilacji). Dodaj wyrażenia lambda kompilator „magic” jak LINQ składni i var, i C # 2 funkcje jak yield(co prowadzi do nowych klas o nazwach nieczytelne). Kod dekompilowana kończy się długą długą drogę od compilable.

Profesjonalny zespół z dużą ilością czasu nadal może inżynierii wstecznej go z powrotem, ale to samo można powiedzieć o dowolnym kodem zaszyfrowanej. Jaki kod Wysiedli że byłoby unmaintainable i wysoce prawdopodobne, aby być bardzo buggy.

Polecam klucz podpisywania swoich zespołów (czyli jeśli hakerzy mogą skompilować jeden mają do rekompilacji wszystko), ale nie sądzę zaciemniania warto.

Odpowiedział 12/08/2008 o 13:19
źródło użytkownik

głosy
21

Jeśli szukasz darmowego jednego można spróbować DotObfuscator Community Edition, która pochodzi z Visual Studio lub Eazfuscator.NET .


Od 29 czerwca 2012 roku , jest teraz Eazfuscator.NET handlowych. Ostatni wolny dostępny w wersji 3.3.

Odpowiedział 05/08/2008 o 17:30
źródło użytkownik

głosy
18

I zostały z wykorzystaniem smartassembly. Zasadniczo, można wybrać dll i zwraca to ukrywane. Wydaje się działać prawidłowo, a ja nie miałem żadnych problemów do tej pory. Bardzo, bardzo łatwy w użyciu.

Odpowiedział 05/08/2008 o 17:21
źródło użytkownik

głosy
10

Próbowałem prawie każdy obfuscator na rynku i SmartAssembly jest najlepsza moim zdaniem.

Odpowiedział 07/08/2008 o 11:44
źródło użytkownik

głosy
8

Byłem również za pomocą SmartAssembly. Okazało się, że Ezrinz NET Reactor znacznie lepiej dla mnie na aplikacji .NET. To zaciemnia, wsparcie Mono, łączy zespoły a także posiada również bardzo ładne moduł licencjonowania, aby utworzyć wersję próbną lub odnośnik licencję do konkretnej maszyny (bardzo łatwe do wdrożenia). Cena jest również bardzo konkurencyjna i kiedy potrzebne im wsparcie, gdzie szybko. Eziriz

Wystarczy być jasne, jestem tylko custumer kto lubi produktu, a nie w jakikolwiek sposób związane z firmą.

Odpowiedział 22/08/2008 o 18:41
źródło użytkownik

głosy
7

Krótka odpowiedź jest taka, że ​​nie można.

Istnieją różne narzędzia wokół, że będzie to trudniejsze dla kogoś, aby odczytać kod - z których niektóre zostały wskazane przez innych odpowiedzi.

Jednak wszystko to zrobić, to jest trudniejsze do odczytania - zwiększają one ilość wysiłku potrzebnego, to wszystko. Często to wystarczy, aby odstraszyć przypadkowych czytelników, ale ktoś, kto jest zdeterminowany aby kopać w kodzie zawsze będzie w stanie to zrobić.

Odpowiedział 16/07/2009 o 22:45
źródło użytkownik

głosy
6

Mamy wielu aplikacji kondygnacji z interfejsem w ASP.NET i winform, które również obsługuje usług zdalnych. Miałem żadnych problemów z pomocą dowolnego obfuscator z wyjątkiem typu szyfrującego, który wytwarza ładowarka co może być problematyczne w różnego rodzaju nieoczekiwany sposób i po prostu nie warto moim zdaniem. Właściwie moja rada będzie bardziej wzdłuż linii „Unikaj szyfrowanie typu ładowarka obfuscators jak ognia”. :)

Z mojego doświadczenia każdy obfuscator będzie działać dobrze z każdym aspekcie .net tym ASP.NET i usług zdalnych, wystarczy, aby stać intymnej z ustawieniami i dowiedzieć się, jak daleko można przesunąć w których obszarach swojego kodu. I trochę czasu, aby próbować reverse engineering na to, co masz i zobaczyć jak to działa z różnymi ustawieniami.

Wykorzystaliśmy kilka na przestrzeni lat w naszych aplikacjach komercyjnych i osiadł na Przyprawy Obfuscator z 9rays.net ponieważ cena jest odpowiednia, to spełnia swoje zadanie i mają dobre wsparcie chociaż tak naprawdę nie potrzebował wsparcia w latach już jednak być uczciwym nie sądzę, że to naprawdę ważne, które obfuscator użyć, problemy i krzywa uczenia się są takie same, jeśli chcesz mieć to działa poprawnie z usług zdalnych i ASP.NET.

Jak wspominają inni wszystko jesteś naprawdę robi jest równoznaczne z kłódką, utrzymując inaczej uczciwych ludzi i lub utrudniając prostu skompilować aplikację.

Licencjonowanie jest zazwyczaj kluczowym obszarem dla większości ludzi i powinno się używać jakiś podpisany cyfrowo systemu certyfikacji dla licencji anyway. Twoja największa strata będzie pochodzić z przypadkowego udostępniania licencji, jeśli nie posiada inteligentny system w miejscu, ludzie, które rozkładają system licencjonowania nie były zamiar kupić w pierwszej kolejności.

To bardzo proste, aby wziąć to za daleko i mają negatywny wpływ na swoich klientów i firmy, robić to, co jest proste i rozsądne, to nie martw się o to.

Odpowiedział 16/11/2008 o 20:57
źródło użytkownik

głosy
5

Crypto Obfuscator rozwiązać wszystkie swoje obawy i scenariuszy. To :

  1. Automatycznie wyłącza rodzai / członków z zaciemniania opartych na regułach. Serializowane typy / pola są jednym z nich.
  2. Może być zintegrowany z procesu kompilacji przy użyciu msbuild.
  3. Wspiera projekty ASP.NET.
Odpowiedział 09/10/2009 o 10:42
źródło użytkownik

głosy
5

Przez ostatnie dwa dni byłem eksperymentuje z Dotfuscator Community Edition Zaawansowane (do pobrania za darmo po rejestracji podstawowej CE, który jest dostarczany z Visual Studio).

Myślę, że powodem coraz więcej osób nie używać zaciemniania jako domyślną opcją jest to, że jest to poważny kłopot w porównaniu do ryzyka. Na mniejszych projektach badawczych mogę uzyskać zaciemniony kod działa z dużym wysiłkiem. Wdrażanie prosty projekt poprzez ClickOnce było kłopotliwe, ale osiągalne po ręcznym podpisaniu manifesty z magiem. Jedynym problemem było to, że w przypadku błędu ślad stosu wrócił ukrywane i CE nie posiada Deobfuscator lub osadnik zapakowane.

Starałem się zaciemniać prawdziwego projektu, który jest oparty VSTO w programie Excel, Virtual integracji Ziemi, wiele połączeń Zestawienie oraz kontenera IOC i partii z refleksji. To było niemożliwe.

Jeśli zaciemniania jest naprawdę krytyczny wymóg, należy zaprojektować aplikację z myślą o tym od początku, testując ukrywane buduje w miarę postępów. W przeciwnym razie, jeśli jest to dość skomplikowany projekt, masz zamiar skończyć z poważną ilość bólu.

Odpowiedział 04/02/2009 o 23:40
źródło użytkownik

głosy
3

Znalazłem Agile.Net zapewniają bardzo dobrą ochronę dla Twojego .NET Zgromadzenia ponieważ oferują nie tylko zaciemniania ale także szyfrowanie. Pobierz bezpłatną ślad.
http://secureteam.net/NET-Code-Protection.aspx http://secureteam.net/downloads.aspx

Odpowiedział 03/09/2013 o 16:26
źródło użytkownik

głosy
3

Unikać reaktora. Jest całkowicie bezużyteczny (i tak zapłaciłem za licencję). Xenocode był jednym z najlepszych natknąłem i kupił licencję na zbyt. Wsparcie było bardzo dobre, ale nie muszę go bardzo, jak to tylko pracował. Testowałem każdym obfuscator udało mi się znaleźć i mój wniosek jest taki, że xenocode był daleko i najbardziej wytrzymałe i zrobił najlepszą pracę (również możliwość, aby opublikować swój proces .NET EXE native exe czego nie zobaczysz nigdzie indziej.).

Istnieją dwie główne różnice między reaktorem a xenocode. Pierwszym z nich jest to, że Xenocode faktycznie działa. Drugim jest to, że szybkość realizacji swoich zespołów nie jest inaczej. Z reaktora był około 6 milionów razy wolniej. Ja też mam wrażenie, że reaktor był operacja jeden człowiek.

Odpowiedział 04/05/2011 o 10:43
źródło użytkownik

głosy
3

Można użyć "Dotfuscator Community Edition" - chodzi domyślnie w Visual Studio 2008 Professional. Można o tym przeczytać na stronie:

http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

W „Profesjonalny” wersja produktu kosztuje, ale jest lepiej.

Czy naprawdę potrzebny jest kod ukrywane? Zazwyczaj jest bardzo mało tak z wnioskiem dekompilować, chyba że jest ona wykorzystywana do celów bezpieczeństwa. Jeśli martwisz się o ludzi „kradzież” Twój kod nie będzie; zdecydowana większość ludzi patrzy na kodzie będzie w celach edukacyjnych. W każdym razie, nie jest całkowicie skuteczna strategia zaciemniania NET - ktoś z wystarczająco dużo umiejętności zawsze będzie mógł dekompilować / zmienić ci aplikacji.

Odpowiedział 16/07/2009 o 22:47
źródło użytkownik

głosy
3

Miałem żadnych problemów z Smartassembly.

Odpowiedział 16/09/2008 o 12:12
źródło użytkownik

głosy
3

I niedawno próbował potokiem wyjście z jednym wolnym Obfuscator do innego wolnego Obfuscator - mianowicie Dotfuscator CE i nowego Babel Obfuscator na CodePlex. Więcej szczegółów na moim blogu .

Co do serializacji, mam ten kod przeniesiony do innej biblioteki DLL i że zawarte w projekcie. I uznał, że nie było żadnych tajemnic tam, które nie są w formacie XML i tak, więc nie potrzeba zaciemniania. Jeżeli istnieje jakakolwiek poważna kod w tych klas, wykorzystując częściowe zajęcia głównego zespołu powinien go pokryć.

Odpowiedział 11/09/2008 o 12:53
źródło użytkownik

głosy
3

Należy użyć co jest najtańszym i najbardziej znany ze swojej platformy i nazywają to dzień. Zaciemniania języków wysokiego szczebla jest trudny problem, bo VM strumienie opcode nie cierpią z dwóch największych problemów rodzime strumienie opcode zrobić: funkcji / metody identyfikacji i rejestracji aliasingu.

Co należy wiedzieć o kod bajtowy cofania jest to, że jest już powszechną praktyką dla testerów bezpieczeństwa recenzję prosty kod x86 i znaleźć luki w nim. W surowym X86, można znaleźć nawet niekoniecznie ważnych funkcji, nie mówiąc już śledzić zmiennej lokalnej całej wywołania funkcji. W żadnych okolicznościach nie robić prawie rodzimych Odwracacze kodowe mają dostęp do funkcji i nazw zmiennych --- chyba że Oceniasz kod Microsoft, dla którego MSFT usłużnie udostępnia te informacje do wiadomości publicznej.

„Dotfuscation” działa głównie przez funkcję i nazw zmiennych kodowania. To chyba lepiej to zrobić niż publikować informacje debugowania kodu z poziomu, gdzie reflektor jest dosłownie podając swój kod źródłowy. Ale cokolwiek zrobić poza tym jest prawdopodobne, aby dostać się do malejących przychodów.

Odpowiedział 10/09/2008 o 22:38
źródło użytkownik

głosy
2

Oto dokument z Microsoft siebie. Nadzieję, że pomoże ..., to jest od 2003 roku, ale nadal może być istotne.

Odpowiedział 16/07/2009 o 22:38
źródło użytkownik

głosy
2

Byłem zaciemnianie kodu w tej samej aplikacji od Net 1, i to był poważny ból głowy z punktu widzenia technicznego. Jak już wspomniano, problem serializacji można uniknąć, ale to naprawdę łatwo popełnić błąd i zaciemniać coś, czego nie chciał zaciemniony. Jest to łatwe do przełamania build, lub zmienić wzór zaciemniania i nie móc otworzyć stare pliki. Plus to może być trudne, aby dowiedzieć się, co poszło nie tak i gdzie.

Nasz wybór był Xenocode i gdybym dokonać wyboru ponownie dzisiaj wolałbym aby nie zaciemniać kodu lub użyj Dotfuscator.

Odpowiedział 21/08/2008 o 21:31
źródło użytkownik

głosy
1

Jest to dobra wersja open source o nazwie Obfuscar. Wydaje się działać prawidłowo. Rodzaje, właściwości, pola, metody mogą być wykluczone. Oryginał jest tutaj: https://code.google.com/p/obfuscar/ , ale ponieważ wydaje się nie być aktualizowane już ktoś rozwidlony go tutaj: https://obfuscar.codeplex.com/

Odpowiedział 19/12/2013 o 05:24
źródło użytkownik

głosy
1

Musiałem użyć ochronę zaciemniania / zasobu w moim najnowszym rpoject i znalazł Crypto Obfuscator jako ładne i proste w użyciu narzędzie. Problem serializacji jest tylko kwestia ustawień w tym narzędziu.

Odpowiedział 22/04/2011 o 12:18
źródło użytkownik

głosy
1

swobodny sposób byłoby użyć Dotfuscator od wewnątrz visual studio, inaczej youd musiał wyjść i kupić obfuscator jak Postbuild ( http://www.xenocode.com/Landing/Obfuscation.aspx )

Odpowiedział 16/07/2009 o 22:38
źródło użytkownik

głosy
1

To wszystko zależy od języka programowania, którego używasz. Przeczytaj artykuł: kod zaciemniony

Odpowiedział 16/07/2009 o 22:31
źródło użytkownik

głosy
1

Używamy SmartAssembly na naszym klientem Windows. Działa dobrze.

Czy dodać jakieś dodatkowe problemy. Drukowanie swoje nazwy klas w plikach logów / wyjątki muszą być de-ukrywane. I oczywiście nie można utworzyć klasę z jego nazwy. Więc jest to dobry pomysł, aby spojrzeć na kliencie i zobaczyć jakie problemy można uzyskać poprzez zaciemnianie.

Odpowiedział 04/04/2009 o 12:28
źródło użytkownik

głosy
0

SmartAssembly jest wielki, I był używany w większości moich projektów

Odpowiedział 01/12/2010 o 05:49
źródło użytkownik

głosy
0

Używam również smartassembly. Jednak nie wiem, jak to działa dla aplikacji WWW. Jednak chciałbym podkreślić, że jeśli aplikacja korzysta z ochrony typu shareware, upewnij się, że nie sprawdza licencję z logiczną zamian. to zbyt łatwe do bajtów pęknięcia. http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx

Odpowiedział 04/04/2009 o 11:53
źródło użytkownik

głosy
0

Można też spojrzeć na nowe technologie ochrony kodu, takich jak Metaforic i ViLabs i nowych technologii ochrony przed kopiowaniem oprogramowania, takiego jak ByteShield . Ujawnienie: Pracuję dla ByteShield.

Odpowiedział 03/01/2009 o 19:56
źródło użytkownik

głosy
-1

Kasował nie jest prawdziwa ochrona.

Jeśli masz plik exe .NET jest FAR lepszym rozwiązaniem.

Używam Themida i można powiedzieć, że działa bardzo dobrze.

Jedyną wadą jest to, że Themida nie może chronić .NET bibliotek DLL. (Chroni także kodu C ++ w EXE i DLL)

Themida jest zdecydowanie tańsze niż tutaj wymienione obfuscators i jest najlepszy anty piractwa ochrony na rynku. To tworzy maszynę wirtualną były krytyczne fragmenty kodu są uruchamiane i biegnie kilka wątków, które wykrywają manipulacji lub punkty przerwania ustawione przez krakingu. To konwertuje .NET EXE do czegoś, Reflektor nawet nie rozpozna jako NET więcej.

Proszę zapoznać się ze szczegółowym opisem na swojej stronie internetowej: http://www.oreans.com/themida_features.php

Odpowiedział 06/03/2014 o 04:03
źródło użytkownik

głosy
-1

Próbowałem Eziriz wersję demo .... Lubiłem go. Ale nigdy nie przyniósł oprogramowania.

Odpowiedział 04/09/2009 o 04:21
źródło użytkownik

głosy
-2

Spróbuj skorzystać z tej usługi http://morpher.com/

Używałem go do jednego projektu.

Odpowiedział 27/12/2013 o 11:22
źródło użytkownik

głosy
-2

Próbowałem produkt o nazwie grzebać i robi dobrą robotę w co daje pewną kontrolę ... Choć brakuje wielu rzeczy, które Eziriz Oferty ale cena za grzebać jest zbyt dobry ...

Odpowiedział 06/09/2013 o 18:27
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more