Zabezpieczenie przed dekompilacją kodu

0

Chciałbym się zapytać czy po napisaniu biblioteki dll w C# istnieje możliwość zdekompilowania jej. Jakie istnieją sposoby zabezpieczenia dll oraz aplikacji napisanej w wpf. W folderze z aplikacją posiadam wyłącznie plik uruchomieniowy *.exe oraz dll.

1

Możesz kompilować do własnej VMki i uruchamiać wszystko z jej poziomu (lub skorzystać z gotowego rozwiązania - czytałem o takich, lecz nazw już nie pamiętam), natomiast to niesamowicie zwolni działanie aplikacji.
Cóż, generalnie przed dekompilacją nie ma doraźnego zabezpieczenia.

0

W dll'ce mam algorytm szyfrowania danych zapisywanych do bazy.
@Patryk27
Czy samą dll'ke mogę zabezpieczyć uwzględniając że czas wczytywania biblioteki się wydłuży?

A może orientuje się ktoś jak zabezpieczony jest HashAlgorithm/MD5 lub czy może napisanie dll w innym języku uniemożliwi tak łatwą dekompilację?

1

możesz użyć obfuscatora, np net reactor (chociaz nie mozna zabezpieczyc tak, zeby sie nie dalo odczytac, ale kod bedzie mniej czytelny)

1

Najlepiej skompiluj kod do natywnego kodu x86 lub x64 i zabezpiecz wirtualizerem, każde zabezpieczenie dla .NET zweryfikuj czy nie odbezpiecza go narzędzie de4dot

https://github.com/0xd4d/de4dot

http://www.secnews.pl/2011/11/17/narzedzia-do-analizy-aplikacji-net/

Ogólnie jeśli zabezpieczasz 1 komponent - DLL-ke - napisz go w czymś do czego nie ma narzędzi, każdy analizujący będzie miał problem, moja propozycja to środowisko WinDev

www.windev.com

Kod kompiluje się do ich VM-ki, nie widziałem narzędzi do dekompilacji bieżących wersji

0

No to zrób ten algorytm jako aplikacja REST po stronie serwera, a nie kombinuj u klienta.

2

W dll'ce mam algorytm szyfrowania danych zapisywanych do bazy.

  1. Tajemnicą powinien być klucz szyfrujący a nie algorytm.
  2. Jeśli baza jest zdalna, to istnieją gotowe rozwiązania do szyfrowania komunikacji sieciowej.
  3. Jeśli baza jest lokalna, to dlaczego chcesz ukrywać przed użytkownikiem jego własne dane?

1 użytkowników online, w tym zalogowanych: 0, gości: 1