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

[TuT] O pakietach słów kilka


Arti222

Rekomendowane odpowiedzi

Opublikowano

Miałem robić temat o update'owaniu skryptów, ale że taki jest i nie jest to szczególnie trudną rzeczą, postanowiłem chociaż trochę przybliżyć ciekawą rzecz, jaką są pakiety. Nie wiem o nich na tyle dużo żeby tłumaczyć istotę ich wykrywania, z resztą są to dość trudne sprawy, ale na chłopski rozum postaram się parę rzeczy powiedzieć.

 

Zacznijmy od tego co to jest ten pakiet? Jest to ciąg jednobitowych liczb w postaci heksadecymalnej o pewnej długości, wysyłany, jak i odbierany przez naszego klienta. W przeciwieństwie do AoB, które zmienia się pod danym pointerem i efekt trwa aż do wyłączenia hacka (powrotu do domyślnej wartości AoB) lub klienta, pakiet wysyła się za każdym razem kiedy chcemy uzyskać pożądany efekt.

 

Długość pakietu może być zarówno 2, jak i 100 lub więcej, w zależności jakiego jest rodzaju i ile różnych informacji ze sobą niesie. Przyjrzyjmy się przykładowemu pakietowi, w tym przypadku jest to pakiet IRM:

 

60 00 3A 51 10 04 D0 14 F9 01 14 28 FC 0C 09 01 00 00

 

Pierwsze dwie pary cyfr to tzw. header lub opcode, po nich wnioskujemy jakiego rodzaju jest pakiet (przykładowo 8B 00 to header otworzenia przez gracza hired merchanta).

Dalej następne 4 pary to timestamp, znak czasu, kolejne przychodzące pakiety będą miały inny. Tą część pakietu w przypadku wysyłania najczęściej będziemy randomować w ten sposób: ** ** ** ** co oznacza losowe znaki od 0 do F. Jeśli wyślemy kilka pakietów z rzędu zawierających ten sam timestamp, dostaniemy D/C, jednak jeżeli zagwiazdkujemy tą część pakietu spam tym jednym pakietem będzie dozwolony, bo każdy następny będzie miał ten timestamp inny.

Następne 5 par to zapewne ID oraz level skilla, w innych przypadkach innych rzeczy.

Kolejne 4 pary to współrzędne X i Y.

Idąc dalej 01 najczęściej oznacza prawda/fałsz. Nie zawsze 01 oznacza prawdę.

Pozostałe 2 pary są mało istotne.

 

Oczywiście przedstawiłem tutaj strukturę tego jednego pakietu. Nie zawsze zawiera on to wszystko co wypisałem (może zawierać wiele więcej i niekoniecznie to samo), za wyjątkiem headera, który występuje zawsze. Potraktujcie to jako pewnego rodzaju start, fundament do poszukiwania co kolejne pary oznaczają i jak się zmieniają podczas tego w którym miejscu mapy jesteśmy, jaka jest wartość pewnej rzeczy, z którą mamy do czynienia, itp. Możliwości mamy tutaj naprawdę sporo, a to, co wypisałem to czubek góry lodowej.

 

Jeśli chcemy wysłać pakiet potrzebujemy packet sendera. Większość trainerów posiada single/multi line spammera, więc nie trzeba się o to martwić.

Jednak kiedy samo wysyłanie nie będzie nas zadowalało i będziemy chcieli odbierać wysyłane przez serwer do nas pakiety, będziemy potrzebować packet editora. To już jest bardziej rozbudowane narzędzie, które pozwala nam na zarówno odbieranie, jak i wysyłanie naszych pakietów. Za jego pomocą możemy zdziałać naprawdę dużo. Zapewne większość osób wie, że między innymi z tym narzędziem można zrobić spam IRM na mapie w wybranych przez nas miejscach, teleportować się gdziekolwiek i wiele więcej ciekawych rzeczy.

Po zarejestrowaniu użycia jednej rzeczy może się okazać, że otrzymaliśmy więcej pakietów. Np. na 1 skilla składają się efekt oraz animacja i to są już 2 oddzielne pakiety. Czasem można odróżnić jeden od drugiego wysyłając najpierw jeden, potem drugi, o ile serwer na to pozwoli. I tutaj właśnie tkwi problem, bo możemy wysyłać dowolne pakiety do serwera, ale on musi zezwolić na ich przyjmowanie. Czasem stanie się tak, że je przyjmie, czasem nic się nie stanie, czasem dostaniemy D/C. Odkrywanie tych rzeczy zostawiam już Wam.

 

Inną rzeczą jest blokowanie headerów pakietów. Służy ono do nieprzyjmowania lub niewysyłania z naszej strony na serwer danego typu pakietu. Packet editory powinny posiadać taką funkcję. Przykładowo możemy po stronie klienta zablokować ruch innych graczy lub nawet sprawić, że nie będziemy ich widzieć, możemy zablokować przychodzące do nas powiadomienia o trade, a co najlepsze bronić się przed tym denerwującym map crashem, o ile wiemy jaki header musimy dodać do listy zablokowanych. Tutaj również jak w przypadku wysyłania musimy się liczyć z tym, że nie wszystko da się zablokować.

 

Ostatnio najlepsze releasy opierają się właśnie na pakietach (ZJQ, Owl of Minerva teleport, itp.), więc może znajdziecie coś ciekawego próbując różne możliwości wysyłania, modyfikowania, blokowania pakietów.

 

Życzę miłej zabawy biggrin.gif

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...