-
Pomoc z deszyfracją
Witam wszystkich ![Smile](images/smilies/smile.png)
Założyłem konto na tej stronie, ponieważ potrzebuję Waszej pomocy. Widzę, że dział kryptografia nie jest specjalnie oblegany, ale liczę chociaż na minimalny odzew. Od dłuższego czasu bawię się z rozkodowaniem komunikacji na linii gra-serwer. Do tej pory starałem się uporać z problemem sam, ale jako, że jest to moje pierwsza jakakolwiek taka przygoda to chyba mnie to przerasta. Tkwię w martwym punkcie i nie wiem jak dalej to ruszyć.
Sprawa wygląda następująco.
Wiadomo, że serwer i gra wymieniają się najpierw (zaraz po nawiązaniu połączenia) 2-3 nieszyfrowanymi pakietami. Dla samego kodowania nie mają one raczej znaczenia, bo zawsze są stałe.
Następnie jest ważny pakiet niekodowany, który zawiera dwie informacje. Jedna z nich to liczba z zakresu około 3750-3760 (nazwijmy ją liczbą X), a druga to ciąg znaków hex.
Kolejne pakiety są już kodowane symetrycznym kluczem. Zarówno po stronie serwera jak i gry. Wygląda to tak jakby dla całej komunikacji był ustalany jest bardzo długi klucz, który jest przesuwany o odpowiednią ilość bajtów po każdej wymianie danych. Więc dla przesłanego bajta z serwera nr 10000 będzie ten sam bajt klucza co dla przesłanego bajta nr 10000 przez grę. Raczej jest on generowany zaraz po otrzymaniu pakietu z tym ciągiem, ponieważ wtedy zawsze występuje przerwa w komunikacji ok 0.9 sekundy.
Pomyślałem że może jest on obliczoną kontynuacją tego pseudolosowego ciągu?
Można więc wywnioskować, że ten ciąg to pseudolosowy ciąg, który jest kluczowy dla stworzenia klucza szyfrującego (jakkolwiek to brzmi).
Co gorsza jednak liczba X nie jest stała, tak samo jak długość ciągu. I niestety między nimi nie zauważyłem zależności. Sam ciąg ma z reguły około 3800 znaków i zawsze jest dłuższy od liczby X. Wahania są na poziomie 40 znaków.
Uzyskanie samego klucza z zarejestrowanych danych nie jest większym problemem choć ma on luki.
Wiadomo, że przy przepływie 15 kB danych nie ma powtórek w ciągu większych niż 5-6 znaków hex. Jednak są one rozrzucone zbyt przypadkowo, żeby od razu wyciągnąć jakieś wnioski. Wiadomo, że jest słaba losowość, bo powtórek jest znacznie więcej niż kazałaby przypuszczać statystyka.
Ogólnie problemem jest uzyskanie klucza z tego ciągu pseudolosowego. Chociaż to, że on jest główną podstawą do jego stworzenia jest przypuszczeniem, to raczej więcej niż prawdopodobnym.
Próbowałem zrozumieć sam ciąg, bo zawsze jego początek jest bardzo podobny. Może jego zrozumienie pomogłoby rozwiązać problem tworzenia klucza. Skoro wygląda to na pseudolosowy ciąg to może ktoś poznaje w nim jakiś algorytm? Albo może zna programy w jakich można łatwo sprawdzić takie algorytmy?
Nie wiem czy ktoś coś zrozumiał z tego co nabazgroliłem, więc na razie nie będę wypisywał wszystkiego co już sprawdzałem, bo się zrobi bałagan. Proszę Was o jakieś propozycje na co jeszcze mogę zwrócić uwagę, co sprawdzić.
Wrzucam też przykładowe dane z 2 połączeń.
W kluczu tam gdzie jest "-" oznacza, że nie nie znam w tym miejscu klucza.
Ani w chrome, ani w operze nie udało mi się załączyć plików więc wrzuciłem je na hosting.
Darmowy hosting plików, zdjęć i obrazków - Hostuje.net
Darmowy hosting plików, zdjęć i obrazków - Hostuje.net
Z góry dzięki za każda odpowiedź
-
To co opisales wyglada nieco jak Diffie-Hellman do wymiany klucza szyfrujacego ale ciekawe jest to ze dalej mowisz ze klucz tak jakby sie zmienial - cos jak tryb CBC albo procsiej mowiac uzycie IV w szyfrowaniu WEP.
Co do narzedzi, zobacz na http://www.cryptool.com/
BTW co to za gra w ogole?
Zasady Postowania
- Nie możesz zakładać nowych tematów
- Nie możesz pisać wiadomości
- Nie możesz dodawać załączników
- Nie możesz edytować swoich postów
-
Forum Rules