Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pytanie z ciekawości może w przyszłości mi się przyda :)


Rekomendowane odpowiedzi

Opublikowano

Witam, ostatnio tak sobie myślałem żeby napisać program który w jakiś sposób wysyła dane do jakiejś zewnętrznej bazy mysql,ftp,email.

I tak sobie myślę że przecież gdybym napisał taki program korzystający z jednego z tych protokołów to muszę podać hasło,nazwę użytkownika do łączenia się z serwerem.

No ale przecież te dane są przechowywane w programie i w banalny sposób idzie to zhakować jakimś debuggerem,hex edytorem czy jakimkolwiek innym gównem.

I tu pytanie do was jak działają programy które pobierają z zewnętrznych serwerów czas licencji jakiegoś usera czy jego hasło,login jest prawidłowe a potem jeszcze modyfikują jakieś dane i to wszystko zmienia się na stronie? :D

 

 

,,Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i on to robi.''

~ Albert Einstein

Opublikowano

Wysyłają dane metodą POST protokołem HHTP. Serwer odpowiednio te dane obrabia i zapisuje. Hasło nie jest wymagane. Należy dodać dodatowe atrybuty celem identifikacji klienta wysyłającego (ID do odczytania w RE, jednak jeśli wystarczająco dużo-bitowe, zupełnie bezużyteczne). Na podstawie ID również przez serwer są przydzielane informacje dla poszczególnego klienta.

Ta sygnatura jest pusta.

Opublikowano

Czyli można łatwo zasyfić serwer wystarczy ręcznie wpisywać id usera i byle co? (Tzn trzeba znać wartośći ale mozna je przechwycić).

To musi chyba być jakoś zabezpieczone, np taki keyloggery do tibi co wysyłają passy na stronę i koleś tam ma kupione konto i sobie przegląda, jak to działa?

 

 

,,Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i on to robi.''

~ Albert Einstein

Opublikowano

Żeby wykraść ci hasło w ten sposób, musiałby ktoś zdekompilować twój program, co jest możliwe jedynie w assemblerze. Jeśli korzystasz z c++ to możesz hasło zapisać do pliku tekstowego (.txt) a potem za pomocą różnych funkcji z biblioteki cstdio (nie będę się rozpisywał jakich) możesz ten tekst pobrać do zmiennej, tylko że plik tekstowy łatwo odczytać. Lepszym rozwiązaniem jeśli chodzi o bezpieczeństwo byłby plik binarny (.bin), co jest już trudniejsze do odczytania z zewnątrz, lecz też trudniej go odczytać z poziomu programu. Ten dział na forum jest poświęcony trzem językom programowania, więc zawsze powinieneś precyzować o który z nich ci chodzi.

Opublikowano

@Seidan, wystarczą jakieś sumy kontrolne. Oczywiście zawsze jest ryzyko reversingu algorytmu i spamu. Można też zrobić takie zabezpieczenie, które zbanuje dane IP/HWID/co tam używa do identyfikacji by nie spamował.

 

@fanmajonezu, co Ty, za przeproszeniem pierdolisz? Seidan już napisał, że nie ma problemu z wydobyciem danych, to faktycznie banalne. Deasemblacja nie jest wymagana, wystarczy debugger i poszukać funkcji/wskaźnika. Po co przechowywać te dane skoro można je wysłać zaraz po przechwyceniu ich.

YOU MUST DIE

- Ganon, Koridai

Opublikowano

Czyli gdybym chciał napisać program łączący się z serwerem to prawdopodobnie najbezpieczniejszą metodą wysyłania danych jest post na strone www?

 

 

,,Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i on to robi.''

~ Albert Einstein

Opublikowano

Obrona przed zasyfieniem to już po stronie serwera. Wystarczy przyjmować nie więcej niż 5 żądań na minutę z danego zakresu IP.

 

Ale jak chcesz to i tak wszystko możesz zasyfić, nazywamy to DDoS'em.

 

@UP

Dokładnie. Tylko bez "prawdopodobnie".

 

I zależy co rozumiesz przez "łączący się" z serwerem. Jeśli tylko raz na kilka minut potrzebujesz coś wysłąć i zinterpretować odpowiedź, to tak.

 

Jeśli wymagasz ciągłego połączenia do przesyłania drobnych porcji danych co sekundę, to robisz to przez socket'y (rozwiązanie niżej-poziomowe), np. WinSock - używane w grach czy komunikatorach internetowych.

Ta sygnatura jest pusta.

  • 2 tygodnie później...
Opublikowano

Od siebie dodam jeszcze że hasła są szyfrowane md5 (zazwyczaj), nie da się go odszyfrować a działa to tak że:

 

User przy rejestracji podaje hasło => abc123 <= Zostaje ono zaszyfrowane => ai1231jad-l91@#$Asd@#$sdfasd7lkj2431

User loguje się, podaje hasło i program je szyfruje tym samym sposobem. Jeśli jest prawidłowe to zaszyfrowane hasło będzie takie samo jak to zaszyfrowane w bazie .

 

Więc jeśli komuś udało by się zdekompilować kod, włamać się do bazy, przechwycić dane to by otrzymał nieodszyfrowywalne , zaszyfrowane hasło :D No chyba że by zaczął próbować szyfrować losowe ciągi znaków i sprawdzać czy sie zgadzają. Jednak to przy dobrym sprzęcie zajęło by .... kilka ..... lat.

Opublikowano

@UP

Nie prawda.

Wszystko da się odszyfrować.

Zazwyczaj to hasła są szyfrowane RSA (256+), MD5 jest out-dated.

 

I znów, md5 można złamać w kilka dni.

Ta sygnatura jest pusta.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...