Pokaż wyniki 1 do 6 z 6

Temat: Analiza pracy programu - drugie pytanie.

  1. #1

    Domyślnie Analiza pracy programu - drugie pytanie.

    Hmm to pytanie dotyczy troche programowania ale nie związane z żadnym językiem , więc umiesciłem je w tym dziale.

    Tak więc jeżeli mamy boty do gry. Powiedzmy że jeżeli bot ma uleczyć gracza jeżeli ma mniej niż 200 życia to jak to wygląda. Mnie się wydaje że bot znajduje zmienną "zycie" i patrzy kiedy ta zmienna spada ponizej 200... Czy jest jakiś sposób żeby ukryć zmienne przed zewnetrznym odczytem? Wiem że jeżeli w c++ mamy zmienne prywatne w klasach, wiem że nie ma do nich dostępu z poziomu kodu poza tą klasą chyba że przez funkcje które odczytują tą wartość to też są one widoczne z zewnetrznego programu np bota?

    Dodam że pytam o to ponieważ interesuje mnie walka z botami w przypadku gier on-line. Poprostu nie lubie oszustw wszelkiego rodzaju i zastanawiałem się czy jeżeli w grze przekazujemy nie zmienną a wskażnik na nią czy łatwe będzie odczytanie jej z zewnetrznego programu bota do gry.
    Maybe I'm drunkard but who care about it?

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Najpierw zdefiniuj pojecie gry on-line... mowisz o czyms w stylu CS'a czy grach jak Kurnik.pl i spolka? To bedzie zupelnie inaczej wygladalo...

    Moja firma zajmuje sie wlasnie grami on-line i siedze w tym na prawde gleboko, wiec moze cos pomoge...

    Co do odczytu zmiennych - zamykanie ich w klasy czy cokolwiek innego daje cokolwiek w ramach tego programu, glownie po to abys sobie czegos przypadkiem nie skopal i abys mogl uzywac tych samych nazw zmiennych w wielu miejscach (jesli Ci to potrzebne).
    Gdy program dziala, zmienne te sa zawsze przechowywane gdzies w pamieci, jak ktos znajdzie gdzie to moze sobie dalej z zewnatrz to podgladac i temat zakonczony... kiedys tak sie gry oszukiwalo... odpalales program, potem gre, miales 200 zycia, znajdywales komorke pamieci gdzie byla wartosc 200 (szukalo w calym RAMie), pozniej dostawales strzala i miales 150 - szukales 150... i tak dalej az zostala Ci tylo jedna pozycja na liscie ktora zmieniala sie tak jak zdrowie Twojej postaci - pozniej wpisywales sobie 200, zamrazales wartosc i juz... Jak oberwales to zaraz proram wpisywal spowrotem wartosc w to miejsce pamieci i gra ciagle widziala ze masz 200 zdrowia...

    To byly stare dobre czasy...

    Jesli chodzi o gry sieciowe to taki bot moze analizowac ruch sieciowy i sluchac co sie dzieje... odpalasz go przed gra, on sie uczy ID sesji, itd... pozniej leca dane... Jak sie okaze, ze zdrowie spada do jakiegos poziomu to moze zaaplikowac np. odpowiedni eliksir itp po prostu wysylajac polecenia do serwera za ciebie i wtedy ty nic nie wysylasz sam a postac sama sie leczy i to zawsze w ostatniej chwili, kiedy juz na prawde trzeba... To jest BOT.

    Pozostaje wiec kwestia rodzaju gry, zasady komunikacji, sposobu 'podczepienia' sie bota pod gre... U mnie widze bardzo czesto ze ludzie robia r3v3rs3 engineering naszych produktow i pisza wlasne klienty do gry aby grac szybciej bez klikania na ekranie - odpala automat i leca gry...
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3

    Domyślnie

    Chodzi mi o gry on-line w stylu diablo itp. Zmienne za każdym razem są w innych miejscach w pamięci W końcu nigdy nie wiadomo ile jest wolne. A bot odrazu bo odpaleniu leczy jak jest mniej życia... A gdyby na początku gry umieścić kod który by losował nazwy dla zmiennych ,ale żeby można było ich normalnie używać to wzkaźniki na nie były by takie same Np zmienna życie raz się nazywa mana itp aby utrudnić życie botowi. Niewiem własnie czy bot może w ogóle odnaleść coś w ramie po nazwie zmiennej bo czasami życie ma taką samą wartość jak mana więc po wartości odpada... Więc chce zapytać czy w ramie można szukać po nazwie zmiennej a jeżeli nie to pozostaje analiza pakietów... :P I co w przypadku gdy połączenie jest szyfrowane?
    Maybe I'm drunkard but who care about it?

  4. #4
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Szukanie w RAM jest ok i to jest to co Cie interesuje - nazwa nie ma znaczenia. Bot moze podgladac transmisje sieciowa i widzi o ile powinna zmienic sie wartosc zmiennej i szukaj jej sobie w pamieci... a poza tym po co ma sie meczyc z pamiecia jesli ma dostep do protokolu?!

    Aby rozwiac watpliwosci co do RAMu przeczytaj jeszcze raz moj poprzedni post...
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  5. #5

    Domyślnie

    Przeczytalem i widze teraz że nie da się szukać w ramie zmiennych po ich nazwach :P Ale boty odrazu po zalogowaniu widzą ile hp itp... Czyli rzeczywiście korzystują z transmisji :P Czyli jak myślałem nie ma sposobu na napisanie klienta odpornego na to chyba że z pobocznym oprogramowaniem. A szkoda Uzyskałem wszystkie informacje co chciałem i dzięki za odp... Niektre pomysły w moich postach może są troche naiwne ale wynikają z niewiedzy a szukanie odpowiedzi na konkretne pytania jest dość tudne.
    Pozdrawiam.
    Maybe I'm drunkard but who care about it?

  6. #6
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Pytania czy pomyslny nie sa naiwne skoro sa przemyslane... niewiedza to nie zbrodnia tak dlugo jak chcesz znalezc odpowiedz na nurtujace Cie pytanie ogolnie TAK TRZYMAC!
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. Analiza pakietów Wireshark
    By jkrpol in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 16
    Autor: 02-27-2010, 19:09
  2. Analizowanie pracy programu.
    By zorlan in forum Newbie - dla początkujących!
    Odpowiedzi: 5
    Autor: 05-13-2007, 15:29
  3. hasło do programu
    By Squealer in forum C/C++
    Odpowiedzi: 2
    Autor: 02-20-2007, 21:59
  4. POmoc w napisaniu programu w Pythonie
    By Swinger76 in forum Perl/Python/TCL/Prolog
    Odpowiedzi: 2
    Autor: 01-10-2007, 16:02
  5. Internet w pracy ;-)
    By jasiux in forum Hacking
    Odpowiedzi: 1
    Autor: 10-10-2006, 15:34

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
  •  
Subskrybuj