Witam wszystkich serdecznie. Jestem nowym uzytkownikiem i chciałbym Wam przedstawic mój problem, być może ktoś, z Was będzie umiał mi doradzic, co też mam zrobić by się z nim uporać.
Otóz piszę aplikację w C++, konkretniej bota do pewnej popularnej gry online...
Bot pośredniczy w przekazywaniu pakietów z klienta gry do serwera i na odwrót.
Jego działanie naturalnie polega na wysyłaniu konkretnych pakietów zamiast gracza.
I tu pojawia się problem, o ile z pakietami przyhodzacymi z serwera nie ma problemu, o tyle pakiety wychodzace od klienta do serwera nastręczają mi problemów.
Struktura pakietu wygląda tak iż:
Pierwsze 2 bajty(pierwszy i drugi) definiuja rozmiar danych w pakiecie.
Kolejne 2 bajty(trzeci i czwarty) stanowią nagłówek.
Kolejne 2 bajty(piąty i szósty) są zmienne, stanowią skuteczna ochronę, która hamuje rozwój mojego projektu.
Resztę bajtów stanowią dane.
Czyli np:
Pakiet: [07 00 rozmiar] [74 70 nagłówek] [AA 43 zabezpieczenie] [01 04 7E 00 00 00 00 dane]
Moje pytanie brzmi, co zrobić by mój bot wysyłał poprawny pakiet, którego serwer nie odrzuci?
Narazie staram się, w debuggerze, ustalic miejsce wysyłania(juz zrobiłem), ustawiając breakpointa wyszukałem adres w którym miesci się bufor z wysyłanym pakietem, a raczej tylko jego rozmiar(niestety)...
Na tej wartosci chcialem ustawic breakpointa na zapis by dowiedziec się, w którym miejscu następuje zapis tej komórki pamieci(i byc moze dobrac się do pakietu, potem dobrac sie do miejsca gdzie jest tworzony i zobaczyc gdzie znajduja się te bajty zabezpieczające, skopiowac je do statycznej komórki pamieci i odczytac w momencie wysyłania pakietu, wkładając go w odpowiednie miejsce tablicy bufora, a anstępnie powstały pakiet wysłac.
Czy to co piszę ma jakis sens? Czy może to totalna abstrakcja? Może ktoś z Was rozwiązywał już podobne problemy? Może jakaś sugestia, odnosnie tego co mam zrobic, jezeli mój pomysł jest bezensowny?
Z góry dzięki za odpowiedzi.