Jak zrobić trainer (z ewentualną iniekcją dll) w Delphi?

0

witam :P od dawno się zastanawiałem nad napisaniem małego toola do gry ;p lecz nie wiem jak się do tego zabrać i tutaj mam kilka pytań ;P

  1. znam adresy z gry np. adres poziomu i teraz w jaki sposób mogę wysłać jakieś dane do tego adresu tak aby z 10 poziomu zrobił się 40, czyli wysłać do adresu dany tekst lub numer...?
  2. podobnie do up tylko że z przyciskami ;p one zapewne też mają swoje adresy czy dam rade z poziomu delphi klikać sobie te przyciski ?:D proszę o odpowiedzi i prosiłbym jak by ktoś miał jakiś tutotrial do tego co napisałem czyli wysyłanie danych do adresów z góry dziękuję.
0

ad 1: Po kilku sekundach szukania w google:
Wstęp do programowania z użyciem gniazd
Rozdział 11

Daleko nie trzeba szukać...

0

to wszystko to o aplikacjach sieciowych a mi chodzi o zwykłą grę która nie łączy się z netem :D

0
  1. znam adresy z gry np. adres poziomu i teraz w jaki sposób mogę wysłać jakieś dane do tego adresu tak aby z 10 poziomu zrobił się 40, czyli wysłać do adresu dany tekst lub numer...?

Co to znaczy wysłać do adresu? W ogóle to o jaki adres Ci chodzi? Adres w pamięci masz? Poza tym jeżeli chcesz zrobić narzędzie do tibii albo podobnej to Ci się nie uda, bo informacje takie jak Level i podobne są nie u Ciebie na dyksu, a na sarwerze do którego raczej dostępu nie będziesz miał nigdy; Jeżeli zaś te informacje są w pamięci na Twoim komputerze, wystarczy znać podstawowe funkcje do czytania i zapisywania danych w pamięci;

  1. podobnie do up tylko że z przyciskami ;p one zapewne też mają swoje adresy czy dam rade z poziomu delphi klikać sobie te przyciski ?

Tobie widzę wszystko się już kojarzy z poziomami... Wszystko ma swój adres w pamięci, ale do klikania na jakieś buttony raczej przydało by się zrobić symulacje poruszania mychą; Jeżeli przyciski są ciągle w tym samym miejscu łatwo odczytać współrzędne takiego przycisku; Później to tylko kwestia oprogramowania myszki tak, by klikała w daną współrzędną o określonej częstotliwości;

Poza tym: Korzystanie w grach z botów, modów, cheatów i innego gówna jest nieuczciwe względem innych graczy i łamie podstawowe zasady regulaminu gry; Zastanów się nad tym;

0

no nie chce pisać żadnego bota do Tibii !... gra jest na kompie i nie wczytuje danych z bazy danych... znam adres np. Nazwy Gracza i chcę tam wstrzyknąć swoje dane za pomocą delphi... :D

0

Nie znam się na delphi, ale jestem pewien, że chodzi Ci o funkcje w stylu MemoryWrite / MemoryRead

Odnośnie klikania na przyciski - nie, nie da rady zrobić tego tym co napisałem tobie wyżej

Da się przywołać funkcje z gry, ale jest to bardzo wysoka szkoła jazdy (przede wszystkim debugging, OllyDbg jest do tego najbardziej zaawansowanym programem. Dla laików został stworzony Cheatengine, ale nie wiem, czy tego na nim dokonasz. Musiał byś znać adres funkcji, jej parametry, ich typ... jeżeli nie masz pojęcia o "inżynierii wstecznej" aka Reverse Engineering, to się za to nie bierz i ogranicz do manipulacji pamięcią).

Przykład zaawansowanego bota korzystającego w owy sposób
http://www.assembla.com/code/d2bs/subversion/nodes

Edit: (tu mowa o C++) Za pomocą SendMessage nie zedytujesz pamięci, nawet wysyłanie klawiszy, np. by otworzyć ekwipunek nie zadziała bo nie jest to traktowane jako fizyczne wciśnięcie klawisza (co niektóre gry weryfikują), do tego trzeba użyć SendInput

Edit2: Bawiłem się tym kiedyś trochę, i nie czuję się przez to bardziej doświadczonym programistą. Napisanie prostego bota to wbrew pozorom nie jest coś wybitnego

0

nie wiem nie rozumiem tego... wiem jak wyswietlic dane z adresu na labelu, ale jak tam coś wstrzyknąć to nie wiem ...

0

Oczywiście, że da się zrobić to co chcesz w Delphi. Nazywa się to Trainer. I w googlach jest mnóstwo przykładów, rownież w Delphi, które można bardzo łatwo znaleźć, a które pokazują jak napisać trainer - jeżeli znamy konkretny adres. Można posłużyć się rownież programem "Cheat Engine" i dodatkowo metodą wyszukiwania Pointerów (wskaźników na adresy danych złota, energii, żyć czy czego tam chcesz w pamięci), która jest pokazana również na kilku filmikach do znalezienia na YT (polecam te zagraniczne, bo Polacy jak robią jakiś video tutorial to często na poziomie gówniarzerii ze jakiś tam spryciarzy.pl). Także minus ode mnie za totalne lenistwo i brak chęci poszukania tego w googlach samodzielnie. Na pocieszenie dorzucam exek (uwaga do użytkownika o inicjałach t.r - w rarze jest exek, mały, ale wiem że ci mama nie pozwala pobierać takich, więc nie rób tego) wraz ze źródlem w Delphi - wszystko pisane w WinAPI. Później jak napiszę, bo wcześniej nie miałem pojęcia o tym, że można tak wyszukiwać i zmieniać pointery robiąc trainer na zasadzie injekcji dllki do procesu z grą to też tutaj wrzucę. Wracając do mojego trainera. Jest on do starej dosowej gry Horde, ktorą można pobrać z: http://staregry.pl/?c=_gv&i=751 i należy ją uruchamiać pod emulatorem DosBox najpewniej na standardowej konfiguracji aby się nie ciął dźwięk i animacja. Sam DosBox do pobrania oczywiście z: http://www.dosbox.com a cały trainer działa banalnie, wyszukuje w pamięci procesu unikalnego ciągu bajtów, który można ustalić przez baczne przyglądanie się zawartości zdumpowanej do pliku pamięci i wyszukiwaniu charakterystycznych ciągów hexów w pobliżu adresów gdzie znajdują się wartości złota oraz energii dla konkretnej gry, a co pomaga ustalic właśnie Cheat Engine. Później do tego znalezionego adresu dodaje określoną stałymi ilość bajtów do przesunięcia, dzięki czemu zawsze trafi w przypadku gry Horde na właściwe dane. I jakby był problem z samą grą, to znaczy "cieła się" pod DosBoxem, to dołaczam też swój config. Należy sobie utworzyć katalog Horde, w nim katalog GAME i tam rozpakować grę, następnie w katalogu Horde utworzyć katalog DosBox, wrzucić tam najnowszego DosBoxa, bez pliku dosbox.conf jeżeli mamy go w katalogu, następnie wrzucić ten mój plik a.conf, do tego w Horde jakiś plik *.bat na przykład run.bat, do którego możesz zrobić skrót (jak coś ikonkę do skrótu możesz wziąć sobie z mojego trainera w pliku app_icon.ico). Wygląd przykładowego run.bat:

@echo off
cd DOSBOX
start dosbox.exe -conf a.conf
cd ..

Jeszcze słowo o trainerze, jak widać jest to zwykłe Read i Write ProcessMemory tylko, że trainej zrobiony w WinAPI aby exek do tak prostego zadania nie zajmował setki kb. Exek jest upxnięty, a okno dialogowe do zasobów przygotowałem w: http://www.oby.ro/rad_asm/resed/index.html i kod korzysta ze zoptymalizowanych modułów System oraz Windows do pobrania z http://kolmck.net/sys/SysDcu7.zip (tylko dla Delphi 7). A i poza tym jeżeli zadajesz takie bzdurne pytania jak "wysyłanie message do adresu w pamięci" to podejrzewam, że nie będziesz chciał się z ów kodu nic nauczyć, dlatego polecam Tobie raczej dowiedzieć się, że komunikaty śle się do okien, a nie do adresów pamięci, a dla Ciebie najprościej będzie zobaczyć w filmikach na YouTube jak używać Cheat Engine i najlepiej metodą z Pointerami i pod nim oszukiwać. Sorry za rozpiskę, a trainera miałem nie publikować, ale może komuś się przyda. Procka do wyszukiwania w pamięci działa w miarę szybko, bo operuje na pamięci, a konkretnie na jej fragmencie, nie zaś na jakimś dużym pliku na dysku. Oczywiśćie jej kod po przeróbkach znalazłem kiedyś na google i zaadoptowałem. Może komuś jeszcze poza pytającym się przyda ten kod trainera oraz konfiguracja DosBoxa dla tej konkretnie gry.

EDIT: a teraz widzę, że dopisałeś coś o wstrzykiwaniu, to zastanów się, czy chcesz robić Trainer z użyciem Read/Write ProcessMemory praz ewentualnym wyszukiwanem podobnych bajtów w celu ustalenia zmiennego adresu dla danych, czy chcesz wstrzykiwać dllkę, bo i to da się zrobić, a trzeba to robić w przypadku korzystania z Pointerów jako adresów ilości rzeczy w grze (jak życia czy złoto w przypadku Horde). Kod na wstrzyknięcie później moge napisać i wrzucić tutaj. Dodam tylko, że przydaje się tutaj moduł o nazwie afxcodehook.pas do wstrzykiwania dllki w proces. Samo ustawianie Pointerów również do znalezienia w google albo na video tutorialu na Youtube, w którym gościu w dużym przyśpieszeniu pokazuje jak pisze taką dllkę dla jednej gry, tylko że do wstrzykiwania używa jakiegoś badziewia, które w google można znaleźć na wielu stronach, ale ponoć zawirusowane, także temu narzędziu nie za bardzo ufam, wolę napisać swój kod z użyciem wspomnianego modułu, o którym też się dowiedziałem z google. Wystarczy tylko chcieć i wszystko można znaleźć, ale Tobie się pewnie nie chciało, bo po co - lepiej od razu smarować posta tutaj ;/

0

poke, peek ... to były czasy, ech :)

0

no dzięki olesio własnie szukam jakiegoś tuta tu znalazłem coś: http://www.gamerzplanet.net/f[...]l-trainers-in-delphi-7-a.html może mi to pomoże ;p dzięki za pomoc może uda mi się coś znaleźć.

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