…wystarczy, że zastosujesz się do rad przedstawionych poniżej. Każda z nich w sposób istotny zmniejszy odporność twojego programu na złamanie.
Tak więc wracając do tematu tego posta, jeśli nie chcesz zarabiać na swoim programie wystarczy, że:
- będziesz używał wyskakujących okienek informujących o poprawnym zarejestrowaniu programu
- będziesz stosował proste porównanie wprowadzonego przez użytkownika hasła z czymś zaszytym wewnątrz aplikacji – przecież jakieś przekształcenia hasła są dla mięczaków
- użyjesz standardowej metody przekształcenia hasła. Przecież użyty po raz 99 XOR czy zamiana ASCII na liczby jest silniejszy niż w pozostałych 99 przypadkach
- twoje hasła będą liczyć maksymalnie 5 znaków
- jedno i to samo hasło będzie odblokowywać aplikację na wielu różnych komputerach
- użyjesz kontrolki MaskedTextbox do wprowadzenia hasła dzięki temu pokazując jak powinno wyglądać poprawne hasło oraz jakie znaki powinno zawierać
- poinformujesz wszem i wobec jak wygląda techniczna strona informacji – najlepiej w helpie programu, aby atakujący nie musiał daleko szukać
- utworzysz wersje demo zawierające pełną funkcjonalność a tylko przycisk ją uruchamiający twórz nieaktywny
- pozostawisz nieobfuskowany kod (dotyczy programów w kodzie zarządzalnym)
- dostarczysz dll’ki bez StrongName (w .NET)
- kod sprawdzający poprawność wprowadzonego hasła umieścisz tylko w jednym miejscu w kodzie i wywołasz go tylko jeden jedyny raz – Gdy użytkownik naciśnie ‘Zarejestruj’
- w okienku zarejestruj przepuścisz tylko ten ‘jeden’ właściwy klucz, po cóż dawać złudne wrażenie poprawnej rejestracji
- pozwolisz uruchamiać swoją aplikację pod kontrolą debuggerów – przecież to jest to co zwykli użytkownicy robią codziennie
- napiszesz metodę sprawdzającą tak, aby wszystko zależało od jednej instrukcji “if”
- napisanie zabezpieczenia zostawisz na koniec. Przecież napisanie dobrego zabezpieczenia to nie więcej jak dzień pracy
- zastosujesz standardowe okienko wprowadzania użytkownika i hasła, to przecież takie wygodne dla atakującego
- użyjesz jednej z poniższych nazw lub ich kombinacji do nazwania pliku lub rejestru, gdzie przechowasz informację o zarejestrowaniu aplikacji: key, reg, register, password, registered itd.
- będziesz udawał, że problem Cię nie dotyczy. Przecież jeśli nie wiemy, że ktoś złamał nam program to nie jest nam żal
- będziesz przechwalał się jakie to twoje zabezpieczenie nie jest idealne. Przykład firmy Oracle pokazuje, że taka jest najlepsza praktyka
A czy ty drogi Czytelniku znasz jeszcze jakiś sposób aby skutecznie zrujnować sobie sprzedaż własnego dzieła? Zachęcam do pozostawienia komentarza.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl