Witam niedawno ktoś zdekomplikował lub zrobił co innego sam nie wiem ... i dostał dane których nie powinien... jest jakiś dobry sposób na zabezpieczenie aplikacji przed tego typu atakami ?

- Rejestracja:około 17 lat
- Ostatnio:około 3 lata
- Lokalizacja:Szczecin
- Postów:4191
To temat rzeka, może niech się inni wypowiedzą. Na pewno nie należy trzymać żadnych poufnych rzeczy w exeku niczym nie obfuscowanym ani nie spakowanym. Jednak zdolny reverser jak się uprze to złamie każde zabezpieczenie. To tylko kwestia czasu. Do zabezpieczenia są różne narzędzia i rozwiązania.



- Rejestracja:ponad 13 lat
- Ostatnio:około 4 godziny
- Lokalizacja:Tuchów
- Postów:12175
jest jakiś dobry sposób na zabezpieczenie aplikacji przed tego typu atakami ?
Ale zabezpieczenie czego i gdzie? Nie wysiliłeś się jeśli chodzi o opis problemu; Nie wiemy co chcesz zabezpieczyć więc nie wiadomo co Ci doradzić;
tylko chodzi mi o to aby pierwszy lepszy laik nie znalazł tych danych nie dałoby tutaj czasem jakieś szyfrowanie stringów ?
A co znajduje się w tych łańcuchach? Hasła jakieś, inne poufne informacje? Tak jak kolega wyżej napisał nie tyle można, a trzeba szyfrować te łańcuchy; Jeśli dostęp do aplikacji będą mieli jedynie totalne noob'y, to szyfr cezara i tak wystarczy, ale jeśli ktoś bardziej doświadczony to ww. szyfr nie wystarczy; Można zastosować znane implementacje algorytmów czy to dwustronnych, czy funkcji skrótu, ale nie dość, że trzeba mieć o nich pojęcie, to jeszcze trzeba umieć je zaimplementować i dostosować do własnych potrzeb;
Na obecny stan informacji o problemie mogę jedynie polecić dobry algorytm szyfrujący i zapis ważnych danych do plików amorficznych - przysłowiowy "matoł" nie będzie potrafił choćby otworzyć pliku binarnego (bo większość laików nie wie co to HexEdytor), a co dopiero przeanalizować jego zawartość, wyciągnąć odpowiednie bloki i odszyfrować je; Ktoś kto zajmuje się RE poradzi sobie, jeśli w ogóle będzie się opłacało poświęcać czas na wyciągnięcie tych poufnych informacji;
Jak powszechnie wiadomo nie ma zabezpieczeń idealnych/nie do złamania więc jest się nad czym zastanawiać;

- Rejestracja:ponad 20 lat
- Ostatnio:13 dni
- Postów:1030
Siłę zabezpieczenia stosuje się w zależności od tego co ma być zabezpieczone.
Im dane są cenniejsze, tym szyfrowanie/zabezpieczanie jest bardziej skomplikowane, przechodzi przez kilka deszyfracji.
Do prostych zabezpieczeń wystarczą popularne metody podane na tym forum.

- Rejestracja:ponad 20 lat
- Ostatnio:13 dni
- Postów:1030
I każdy antywirus przyczepia się, że program jest typu "Generic", co sugeruje, że AV ma podejrzenia. A to wystarczy, aby w większości antywirusów automatycznie skasować potencjalne zagrożenie.
Takie są efekty wszelkich mało znanych pakerów + szyfratorów binarek.
- Rejestracja:prawie 20 lat
- Ostatnio:3 minuty
- Lokalizacja:Gorlice
Trzeba te dane jakoś szyfrować jak chcesz zabezpieczyć to przed laikiem który chce przeglądać exe za pomocą hexedytora lub jakiegoś programu wyszukującego stringi to wystarczy jakieś szyfrowanie i nie musi być żaden zaawansowany algorytm może być nawet zwykłe xor natomiast jeżeli coś poważniejszego to silniejszy algorytm lub steganografia (ukrywasz tekst w innych danych np. obrazku lub pliku dźwiękowym, obrazkiem mógłby być np. z pozoru niewinny splash screen programu) ale tak naprawdę nie da się zabezpieczyć na 100% jak ktoś się uprze użyje debuggera postawi breakpoint na funkcję łączenia się z bazą i znajdzie twoje dane "na tacy". Są różne sposoby aby utrudnić debugowanie, deasemblację ale jak ktoś się uprze i ma odpowiednią wiedzę to jak już ktoś napisał każde zabezpieczenie można złamać to tylko kwestia czasu.
- Rejestracja:prawie 16 lat
- Ostatnio:6 miesięcy
- Postów:2514
trzymaj dane na jakimś zewnętrznym serwerze i pobieraj je z niego po wpisaniu prawidłowego hasła. np.: piszesz prostą stronkę w php która zwraca te dane jeśli wysłałeś w formularzu prawidłowe dane (poprawny user/pass). Wszystko co masz zapisane w EXE jest potencjalnie do odczytania

- Rejestracja:ponad 20 lat
- Ostatnio:13 dni
- Postów:1030
Pobieranie danych z serwera powoduje, że mamy do rozwiązania co najmniej dwa problemy z zabezpieczeniem.
- Szyfrowanie wewnętrzne danych do połączenia
- Połączenie szyfrowane w celu pobrania danych / Pobranie zaszyfrowanych danych
I kwestia dostępu do internetu...
Zaletą jednak tego rozwiązania jest to, że w momencie wykrycia złamania zabezpieczenia, możemy odciąć dostęp do danych np.: zmianą hasła / wyłączeniem serwera.

- Rejestracja:ponad 17 lat
- Ostatnio:12 miesięcy
Gadacie tak nieprofesjonalne durnoty że aż serce boli. Żadnych xorów albo innych wymysłów. Postawić sensowny frontend i tyle! Problem przestaje istnieć.


- Rejestracja:ponad 12 lat
- Ostatnio:prawie 12 lat
- Postów:40
@kAzek Racja całkowita. Można je w pewien sposób zaszyfrować, lecz zawsze się ktoś znajdzie, kto odszyfruje stringa.
Zaszyfrować można również metodą bez używania wszelkiego typu programów, lecz niestety, niesie to za sobą "skutki uboczne" - program waży więcej.
Jeśli autor postu jest zainteresowany, poproszę o napisanie na PW. Nie będę tutaj tego pisać, ponieważ jest to długie do wytłumaczenia.
Oczywiście, jest opcja szyfrowania za pomocą programu do tego przeznaczonego. O tym decyduje już sam autor aplikacji.
@Demonical Monk FrontEnd też jest dobrym rozwiązaniem. Jak najbardziej.
Pozdrawiam!

- Rejestracja:ponad 17 lat
- Ostatnio:12 miesięcy
Autor wątku napisał że potrzebuje zabezpieczyć połączenie z bazą danych, to o jakim szyfrowaniu wy, za przeproszeniem, pieprzycie?
Coś takiego jest w stanie rozsadzić dowolny gimbus wyposażony w debugger i nie dość że zmodyfikuje/zniszczy dane innych użytkowników to jeśli ma IQ przynajmniej 1 powyżej ślinienia jest w stanie stworzyć istotne zagrożenie dla innych użytkowników programu. Błąd projektowy leży u podstaw, należy w ogóle zrezygnować z bezpośredniego łączenia się z bazą.

- Rejestracja:prawie 20 lat
- Ostatnio:3 minuty
- Lokalizacja:Gorlice
Zabezpieczyć na 100% się nie da i o tym napisałem ale pytania było o hexedytor .



Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.