dll injection

0

Witam
Chciałbym napisać bota do gry, który mógłby kickować graczy za mnie.
I teraz chciałbym to zrobić poprzez dll injection, moje pytanie jest czy wstrzyknięty kod może wywołać funkcję gry, która kikuje(wyrzuca) gracza z serwera ? Czy sprowadza się to do assemblera(call <jakis adres="adres" funkcji="funkcji"> )? Jeśli tak to jak znaleźć adres tej funkcji ? skąd mam wiedzieć jakie argumenty podać ? Proszę o wyjaśnienie.

0

Chciałbym napisać bota do gry, który mógłby kickować graczy za mnie.

Gry online? A masz uprawnienia admina czy jak to się nazywa żeby kickować?

I teraz chciałbym to zrobić poprzez dll injection

Musi być koniecznie dll injection?

moje pytanie jest czy wstrzyknięty kod może wywołać funkcję gry

może.

Czy sprowadza się to do assemblera(call <jakis adres="adres" funkcji="funkcji"> )?

To zależy od gry

Jeśli tak to jak znaleźć adres tej funkcji ? skąd mam wiedzieć jakie argumenty podać ?

Tutaj powinna być odpowiedź na pytania http://re.coldwind.pl

0

konkretnie chodzi o grę warcraft 3. Przy postawieniu servera, host może kickować, tak więc mam uprawnienia.
2. Nie musi być przez dll injection, ale jeśli nie tak, to jak sprawić , by bot wyrzucił gracza z gry ?
poprzez symulowanie naciśnięć myszki/klawiatury w interfejsie gry ?

0

Zastanawiam się czy nie wymyślasz koła na nowo :]
Nie mam warcrafta żeby sprawdzić, ale google (http://www.google.pl/search?q=warcraft+3+kick&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:pl:official&client=firefox-a) rzuca sporo odnośników do "Warcraft 3 custom kick" - proponuję żebyś najpierw to sprawdził.

Chyba że koniecznie chcesz to samemu zrobić?

0

nigdzie nie znalazłem wyjaśnienia, jak w C++ zaimplementować takie kickowanie.
tak, chcę to zrobić samemu. chciałbym wiedzieć chociaż w jaki sposób to zrobić, czy przez dll injection i wywoływanie funkcji warcrafta do kickowania, czy przez symulowanie naciśnieć klawiatury/myszki w interfejsie gry, czy może przez wysłanie odpowiedniego pakietu do gracza którego chcę kikować. Najbardziej jednak interesuje mnie 1 i 3 sposób : jak znaleźć adres funkcji w grze, która kickuje gracza ? skąd mam wiedzieć jakie tam argumenty podać ? czy sprowadza się to do assemblera ? Oraz 3 sposób(pakiety) : skąd mam wiedzieć co wysłać do gracza ?
czy sprowadza się to do analizowania pakietów snifferem ?

0

Chodzi ci o kickowanie graczy podczas gry czy jeszcze przed jej rozpoczęciem?

Jeżeli chodzi o tą pierwszą opcję, najskuteczniejszą metodą jest zmiana stanu połączenia TCP z danym klientem na CLOSED :). W Windows bardzo prosto robi się to poprzez SetTcpEntry. Potrzebujesz jedynie adresu IP. Jeżeli nie korzystasz z żadnego bota, ani listcheckera i nie możesz wyciągnąć go z logów, możesz wynisffować ten adres, gdy ktoś dołącza do gry. Prawdopodobnie w pamięci gry też będzie, ale nie udało mi się go w ten sposób znaleźć.

Wyrzucenie kogoś jeszcze przed rozpoczęciem gry wygląda identycznie albo bardzo podobnie - użyć sniffera, żeby zobaczyć jak wygląda pakiet wysłany na Battle.net, który zmienia status slota. Nie wiem jak to dokładnie wygląda, ale na pewno jest możliwe - WC3Banlist to umożliwia.

Generalnie próbujesz wymyślić koło, istnieje masa programów, które już to robią.

0

Tak, chodzi o kikowanie przed rozpoczęciem.Wiem, że istnieją programy, które już to robią, ja chciałbym jednak zrobić swój własny, a kikowanie graczy to tylko jeden z elementów mojego programu. Czyli sprawa wygląda tak:
Należy podłączyć dll pod warcrafta i kod ten ma nasłuchiwać na połączenia przychodzące i w razie pojawienia się nowego gracza, za pomocą SetTcpEntry, może zamykać połączenie z tym graczem tak ?

proszę o odpowiedź

1 użytkowników online, w tym zalogowanych: 0, gości: 1