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

Prosty triggerbot [C#]


Gość Pan Maciek

Rekomendowane odpowiedzi

Opublikowano

Witajcie! :D
W tym krótkim poradniku pokażę wam jak w prosty sposób stworzyć swój własny cheat do CSGO, bez posiadania specjalnej wiedzy na temat tworzenia cheatów do gier ;)

Triggerbot strzela za ciebie w momencie, gdy pod celownikiem znajdzie się przeciwnik.

!! ABY UNIKNĄĆ BANA VAC, NAJLEPIEJ ODŁĄCZCIE INTERNET NA WYKONYWANIA TEGO PORADNIKA !!
Ew. możecie próbować odpalać grę z parametrem -insecure i komendą sv_lan 1, co powinno wyłączyć system VAC, lecz dla pewności najlepiej całkiem odciąć się od internetu.
Alternatywa to pisanie cheatów z zbanowanego konta, w końcu tam już nie ma nic do stracenia ;­)

Potrzebne będą:
- Visual Studio Express (link!)
- Podstawowa znajomość C#
- CSGO Offset Dumper stworzony przez Y3t1y3t z UnknownCheats.me (skan!)
CSGO - Dumper.zip

#1 Wyciąganie offsetów z pamięci gry
Pobieramy, wypakowujemy, uruchamiamy program podany wyżej. Następnie odpalamy grę i podążamy za poleceniami pokazywanymi w konsoli.
Po włączeniu gry program zapyta nas czy chcemy stworzyć dump netvarów. Do tego poradnika jest on nam zbędny, proponuję wpisać n i kliknąć enter.
Kolejno program zapyta czy stworzyliśmy serwer bez botów. W celu stworzenia takiego serwera należy wklepać w konsolę gry następujące komendy:

sv_lan 1; map de_dust2

Oraz gdy gra się załaduje, wpisujemy:

bot_kick

Gdy wszystkie boty opuszczą grę, wracamy do naszego programu, wpisujemy y i naciskamy enter. Program dokończy skanowanie i po pewnym czasie powinniśmy zobaczyć napis "Press any key to exit" co oznacza, że program zakończył pracę.
Wszystkie potrzebne offsety znajdują się w pliku tekstowym, w miejscu do którego wypakowaliśmy CSGO Dumper.exe.

W dalszej części poradnika potrzebne będą nam:

 > LocalPlayer 0xA6DA14   -- Miejsce w pamięci w którym zapisane są dane o postaci gracza.
 > EntityList 0x4A10384  -- Miejsce w pamięci w którym zapisana jest lista wszystkich graczy i ich dane.
 > m_iHealth 0xFC  -- Jak daleko od początku struktury danych danego gracza znajduje się wartość odpowiadająca za jego zdrowie.
 > m_iCrossHairID 0x23F8  -- To samo co wyżej, zwraca nam ID postaci znajdującej się w celowniku gracza.
 > m_iTeamNum 0xF0  -- To samo co wyżej, zwraca nam drużynę danego gracza.

Resztę można praktycznie zignorować, gdyż nie są użyteczne dla celów tego poradnika.

#2 Piszemy kod naszego cheata
Tworzymy nowy projekt w Visual Studio, niech w tym wypadku będzie to prosta aplikacja konsolowa.

643671420338775250239.png


Na początek musimy zimportować kilka funkcji WinAPI, które będą nam potrzebne do odczytywania pamięci i symulowania kliknięć myszką.
By móc tego dokonać musimy dodać na początku naszego kodu wpis informujący, że będziemy używali funkcji z biblioteki System.Runtime.InteropServices. Przy okazji dopisujemy tam też System.Diagnostics, które potrzebne będzie do pobrania listy procesów, itp.

using System.Diagnostics;
using System.Runtime.InteropServices;

Następnie w głównej klasie naszego programu definiujemy następujące funkcje:

[DllImport("kernel32.dll")]
public static extern int OpenProcess(uint dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll")]
public static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress, byte[] buffer, int size, int lpNumberOfBytesRead);
[DllImport("user32.dll")]
static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, UIntPtr dwExtraInfo);
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int vKey);

Pierwsza jest odpowiedzialna za otworzenie uchwytu do procesu, by zyskać dostęp do pamięci.
Druga będzie nam służyć do odczytywania danych z pamięci gry.
Trzecia z nich będzie służyć do wysyłania kliknięć myszki, gdy program ustali, że pod naszym celownikiem znajduje się przeciwnik.
Czwarta posłuży do stworzenia prostego hotkeya pod którym zbindujemy naszego triggerbota.

657621420338800250239.png


Wewnątrz naszej funkcji Main, która zostanie wywołana po uruchomieniu programu tworzymy pętlę oraz zmienną określającą czy znaleźliśmy proces CSGO.
Dodajemy if sprawdzający czy nasz program znalazł grę, oraz Sleep na końcu pętli, by nie zjadała ona 100% zasobów procesora.

150201420338835250239.png


Na początek nasz program musi odnaleźć proces gry, odczytać jego ID, otworzyć uchwyt do procesu gry oraz odczytać adres modułu client.dll w procesie gry.
Nie będzie tu zbyt wiele tłumaczenia, przy kodzie są komentarze, które objaśniają co do czego służy. 2035711 przy OpenProcess określa, że żądamy praw do odczytu pamięci.

185321420339867250239.png


Następnie, gdy nasz programik zbierze wszystkie potrzebne mu do pracy dane może on przejść do wykonywania właściwego kodu triggerbota.
Na początek proponowałbym zacząć od napisania funkcji do odczytania pamięci.

public static int OdczytajWartosc(int Adres)
{
   byte[] buffer = new byte[4]; //odbierze on dane zwrócone z pamięci
   ReadProcessMemory(pHandle, Adres, buffer, 4, 0); //wywołujemy funkcję, którą wcześniej zimportowaliśmy.
   return BitConverter.ToInt32(buffer, 0); //konwertujemy listę byte na liczbę (int)
}

Jako, że mamy już gotowe wszystko co będzie potrzebne, możemy przejść do tworzenia kodu samego triggerbota i odczytywania danych z pamięci gry.
Zacznijmy od stworzenia prostego hotkeya przy użyciu funkcji GetAsyncKeyState. Funkcja zwraca 0, gdy przycisk nie jest naciśnięty, zatem sprawdzamy jaką wartość zwróci funkcja.
Listę numerów klawiszy można znaleźć np. tutaj.

if (GetAsyncKeyState(0x02) != 0)
{
//dalszy kod cheata...
}

Jeśli wykryjemy, że nasz hotkey został naciśnięty to musimy nauczyć program, by sprawdził kto jest obecnie pod celownikiem gracza.
Użyjemy do tego napisanej wcześniej funkcji. Aby odczytać adres lokalnego gracza musimy dodać adres client.dll z offsetem, który wcześniej znaleźliśmy.

740221420340974250239.png


Gdy posiadamy adres lokalnego gracza dodajemy do niego offset m_iCrossHairID, by odczytać ID obiektu znajdującego się w celowniku.

int Gracz = OdczytajWartosc(BaseAdressClientDLL + 0xA6DA14);
int CrosshairID = OdczytajWartosc(Gracz + 0x23F8);

Następnie sprawdzamy, czy ktokolwiek jest pod celownikiem. Dokonujemy tego poprzez sprawdzenie czy CrosshairID jest większe od 0 i mniejsze niż 64 (limit graczy, każdy wyższy wynik nas nie interesuje).
Jeśli okaże się, że jest to prawidłowy wynik musimy odczytać adres celu w pamięci. Pobieramy go w ten sposób:

int AdresCelu = OdczytajWartosc(BaseAdressClientDLL + 0x4A10384 + ((CrosshairID - 1) * 0x10)); //adres celu w pamięci

0x4A10384 to pointer EntityList (znaleziony na początku poradnika).
0x10 to wielkość jednej struktury z danymi gracza. Zatem każda kolejna o kolejnym ID jest o 0x10 dalej w pamięci.
Potem odczytujemy drużynę gracza i celu, oraz punkty zdrowia celu.

977091420341693250239.png


Aby sprawdzić czy wszystko działa poprawnie, możemy wypisać zdobyte dane w konsoli, odpalić grę, uderzyć kilka razy przeciwnika i zobaczyć czy HP jest dobrze odczytywane.

462201420342359250239.png


Jeśli wszystko się zgadza, to możemy przejść do finalnej części tego poradnika. Sprawdzamy czy gracz i cel są w innych drużynach oraz czy zdrowie celu jest większe niż 0 (czy żyje) i jeśli tak to oddajemy strzał przy użyciu mouse_event.

mouse_event(0x002, 0, 0, 0, (System.UIntPtr)0); //naciśnięcie lewego przycisku myszy
mouse_event(0x004, 0, 0, 0, (System.UIntPtr)0); //wypuszczenie lpm

I to by było na tyle! ;) W tym momencie stworzyliśmy swojego własnego, dość szybkiego, działającego triggerbota do gry CS: Global Offensive.

Mój projekt z VS Express 2013: (skan!)
Poradnik_MPCforum.zip

Pozdrawiam,
Anonymous :*

 

Proszę o niekopiowanie poradnika na inne strony bez uzyskania mojej wcześniejszej zgody (kontakt przez prywatną wiadomość na forum).

  • Odpowiedzi 79
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

W sumie uczę się pisania w c# więc poradnik jak najbardziej pomocny .

podstawowa znajmość c# wystaczy :) ?

Przynajmniej nie muszę szukać na google .

 

like :P

Ex Lider Counter-Strike

 

Opublikowano

czy tylko ja sie nie dowiedziałem co to trigger? XDDDDDDDDD­

Triggerbot strzela za ciebie w momencie, gdy pod celownikiem znajdzie się przeciwnik. Kupujesz AWP i jesteś kennyS, polecam :P

 

­

Opublikowano

A jak zrobię owego trigera to ile będzie undetected jak tylko ja na nim gram ? 

Ex Lider Counter-Strike

 

Opublikowano

A jak zrobię owego trigera to ile będzie undetected jak tylko ja na nim gram ? 

Jeśli skopiujesz kod prosto stąd to raczej kiepsko, jeśli natomiast napiszesz swój własny kod, to teoretycznie powinien zostać niewykrywalny przez VAC dość długo. VAC lubi uploadować sobie pliki, które komunikują się z procesem gry do późniejszej analizy, ale jak taki plik jest wrzucony przez pojedyńczego użytkownika, to nikt nie traci czasu na analizę tego, bo skupiają się na częściej używanych haxach. Ogólnie to podobno jest tak, że jeśli kod masz tylko ty i go dalej nie rozsyłasz to możesz zignorować VAC calkowicie.

Z góry mówię, że w jakieś analizy VACa się nie bawiłem, to jest to co wyczytałem na innym forum, gdzie ludzie nieźle ogarniają Reverse Engineering i analizowali jak działa ten antycheat.

­

Opublikowano

Ten projekt co wstawiłeś,tam jest gotowy trigger?Jeśli tak ,który to plik i jak go odpalić?Nigdy nie haxowałem,ale chcę zobaczyć jak to działa  na niepotrzebnym koncie.

"Pewność wypisaną mam na twarzy"

Opublikowano

Triggerbot strzela za ciebie w momencie, gdy pod celownikiem znajdzie się przeciwnik. Kupujesz AWP i jesteś kennyS, polecam :P

 

­

Kenny jest czysty, to był tylko kqly(czyt. keli) walił na hacku i pojechał na vacacje do kqlyfornii xD.
Opublikowano

Kenny jest czysty, to był tylko kqly(czyt. keli) walił na hacku i pojechał na vacacje do kqlyfornii xD.

Annomyusowi nie chodziło o te że ma cheaty tylko że jest dobry i dzięki triggerowi będziesz strzelał jak on .

Ex Lider Counter-Strike

 

Opublikowano

Ten projekt co wstawiłeś,tam jest gotowy trigger?Jeśli tak ,który to plik i jak go odpalić?Nigdy nie haxowałem,ale chcę zobaczyć jak to działa  na niepotrzebnym koncie.

W folderze Debug powinien być plik exe, możesz go odpalić i powinno być ok. Hotkey to PPM, najedź na enemy i powinno za ciebie strzelić.

Opublikowano

W folderze Debug powinien być plik exe, możesz go odpalić i powinno być ok. Hotkey to PPM, najedź na enemy i powinno za ciebie strzelić.

Dzięki,działa.

A jeżeli chciałbym,żeby cały czas był włączony trigger,bez trzymania ppm,dużo z tym roboty by było?

"Pewność wypisaną mam na twarzy"

Opublikowano

od długiego czasu używasz tego na serwerach GO? zastanawiam sie jak z tym VAC jest, skoro jest to plik który ingeruje w clienta gry, to powininen być jak najszybciej unieszkodliwiony.

Opublikowano
Tak, nowe konto niedawno kupiłem i to już z 3-4 tygodnie będą jak istnieje i nie ma VACa.

Opublikowano

 

Tak, nowe konto niedawno kupiłem i to już z 3-4 tygodnie będą jak istnieje i nie ma VACa.

 

Tak się zastanawiam czy to prawda jeśli ktoś będzie miał uniwersalny kod tego bota to czy szansa na vac-a jest nikła ;).

Ale poradnik przydatny ;) hehe

xD---Kopi_ehxepsa.png

Opublikowano

Grają panowie na tym,działa? VAC jest czy nie? Ile czasu gracie? Warto uczyć się pisania w tym C? Bo nie wiem nawet co to i bym musiał od samego początku wszystko..

"Nie sprzęt, lecz technika czyni z Ciebie zawodnika."

 

Może taki małe "Lubię to", za pomoc ?

Opublikowano

Grają panowie na tym,działa? VAC jest czy nie? Ile czasu gracie? Warto uczyć się pisania w tym C? Bo nie wiem nawet co to i bym musiał od samego początku wszystko..

Jak napiszesz z innym kodem źródłowym to ciesz się bez VAC'a .

Jak dla mnie warto się uczyć w c++ też napiszesz cheaty bez problemu i inne rzeczy :) , C# jakoś mi nie odpowiada ( podstawy znam ) 

Ex Lider Counter-Strike

 

  • 4 tygodnie później...
Opublikowano

Poradnik z*******y, ale jedno pytanie, co zrobić aby nasz napisany trigger był niewykrywalny przez vac, w jaki sposób to zrobic i na czym to polega?

Rozumiem ze napisanie wlasnego kodu zmniejsza wykrywalnosc, ale to oznacza ze w tym przypadku trzeba znac sie dobrze na programowaniu bo te regułki z poradnika są zbędne, czy ja to zle rozumiem?

fjlw0o.jpg

Opublikowano

Poradnik z*******y, ale jedno pytanie, co zrobić aby nasz napisany trigger był niewykrywalny przez vac, w jaki sposób to zrobic i na czym to polega?

Rozumiem ze napisanie wlasnego kodu zmniejsza wykrywalnosc, ale to oznacza ze w tym przypadku trzeba znac sie dobrze na programowaniu bo te regułki z poradnika są zbędne, czy ja to zle rozumiem?

Przypięcie procesu itd. wszystko potrzebne.

Zmień kod źródłowy wtedy twój cheat nie zostanie wykryty.

Oczywiście znając podstawy c# 

Ex Lider Counter-Strike

 

Opublikowano

jak wprowadzić opóźninie do cheata?

System.Threading.Thread.Sleep(1234); //1234=opóźnienie w milisekundach

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...