2010-03-05 32 views
11

Myślimy o zaciemnianiu kodu przed udostępnieniem go klientom. Zastanawiamy się, jaki wpływ będzie miało na wsparcie techniczne. Czy klienci mogą przekazać nam znaczące ślady stosów, czy też będą one zaciemniane?Obfuscator i wsparcie techniczne

Czekam z niecierpliwością na Twoje wrażenia. Z góry dziękuję.

Odpowiedz

9

otrzymasz ukryte ślady stosu. ale obfuscators może generować pliki odwzorowujące, które odwzorowują zaciemnione nazwy na prawdziwe nazwy. Musisz przechowywać te pliki mapowania w bezpiecznym miejscu i możesz ich użyć do "rozmyślnego" śledzenia stosów, gdy jest to wymagane.

w przypadku wsparcia technicznego - można utworzyć prosty interfejs WWW, w którym pracownicy pomocy technicznej mogą wklejać ślady stosu. w ten sposób tylko serwer internetowy potrzebuje dostępu do plików odwzorowania, aby mógł przywrócić oryginalne ślady stosu.

tu są dwa linki wyjaśniające proces z Obfuscator Dotfuscator:

http://www.preemptive.com/images/stories/dotfuscator_documentation/Dotfuscator/The_Map_File.html

http://www.preemptive.com/images/stories/dotfuscator_documentation/Dotfuscator/Decoding_Obfuscated_Stack_Traces.html

+2

Jak już wspomniano, przestarzałe ślady stosu są dostępne w większości narzędzi (np. Http://www.ssware.com/cryptoobfuscator/obfuscator-net.htm) –

+0

Czasami tworzę usługę internetową, aby otrzymywać raporty o awariach. Użytkownik może przesłać przycisk "zgłoś błąd", a ślad stosu i inne przydatne informacje o stanie programu mogą być przesyłane bez ryzyka, że ​​ślad stosu zostanie zakodowany w niewłaściwym formacie tekstowym (ponieważ wiele obfuscatorów używa znaków Unicode dla klasy/metody nazwy). –

1

Jeśli metody na stosie są zaciemnione w twoim wydaniu, otrzymasz zaciemnione nazwy metod w dowolnym śladzie stosu.

Jeśli umieścisz w swoim kodzie coś, co pomoże ci dowiedzieć się, jakie metody były zaangażowane, potencjalni hakerzy mogą użyć tych informacji, aby lepiej zrozumieć kod.

Jedną z powszechnych strategii jest zaciemnianie tylko części kodu, w tym (ale nie wyłącznie) części, które sprawdzają licencję. Jeśli całkowicie zatuszujesz licencję, łatwo jest wyzerować część, która wymaga uwagi hakera.

+0

Zastanawiam się, czy firma może wstrzymać dziennik obfuskacji dla zaciemnienia kodu źródłowego, którego mogą używać wewnętrznie, aby uzyskać rzeczywiste miejsce wystąpienia błędu. –

+0

Zobacz komentarz Nissan Fan. Twoje narzędzie powinno być w stanie rozjaśnić ślad stosu ... JEŚLI otrzymasz go jako poprawnie zakodowany plik. Wiele obfuscatorów używa znaków Unicode dla nazw klas i metod, aby uczynić go szczególnie trudnym do odczytania na ekranie. Biorąc pod uwagę tylko zrzut ekranu lub plik tekstowy nieobsługujący kodu Unicode, trudno będzie wrócić. Czasami tworzę serwis internetowy służący do rejestrowania błędów, aby upewnić się, że program przesyła wszystko, co jest mi potrzebne do zdiagnozowania błędu. Byłaby to bezpieczna metoda, aby uzyskać poprawnie zakodowany ślad (unicode). –

1

Zwykle nie jest to problem, ponieważ większość obfuscators zapewnić możliwość de-Niewidoczność stos ślady z powrotem do swoich oryginalny ślad.

1

Używamy BitHelmet. Problem polega na tym, że przy stosowaniu najsilniejszej techniki zaciemniania, ślad stosu nie może zostać rozjaśniony. BitHelmet używa przemianowania Pełnego Podpisu (pewien rodzaj indukcji przeciążenia, tylko lepiej). Co się dzieje, wiele metod kończy się na tej samej nazwie, ale z innym typem zwracania (nie można tego zrobić w języku C#, ale dla CLR jest w porządku). Typy zwrotów nie są wyświetlane w śladach stosu! więc w rzeczywistości nie jest możliwe rozmyślanie przebiegu stosu przy użyciu najsilniejszego zaciemniania.

Zadaliśmy to samo pytanie, niż Ty, omówiliśmy to i doszliśmy do wniosku, że faktycznie wolimy lepsze zaciemnianie. Ślady stosu nie są tak przydatne, jeśli zapewniają wsparcie techniczne, podobnie jak inne dane, które może dostarczyć tylko końcowy użytkownik. "proszę powiedz mi dokładnie, co robiłeś ???" :)

Powiązane problemy