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

[Prośba/Zlecenie][C++]AutoHeal


Rekomendowane odpowiedzi

Opublikowano

Witam, trochę pisałem w "Auto It" ale napotkałem problem z pewnym bocikiem Link: http://www.mpcforum.pl/topic/936707-nomadau3-oraz-blokowanie-klawiszy/ jak już napisałem w wyżej wymienionym temacie zacząłem się uczyć C++'a ale nie mam weny a przydał by mi się ten bot, myślę że ktoś kto w tym siedzi nie będzie miał problemów... I teraz moje pytanie czy mógł bym prosić o takiego gotowca tzn program który pobiera adress i jeżeli Value jest niższy niż ileś tam to naciska jakiś klawisz dodam że Adress jest wartości "Double" a nie "4 Bytes" (inaczej nie było by tego tematu) nie musi być to jakoś pięknie zrobione, aby działało, wszystkie adressy mogę zmieniać ręcznie nawet w kodzie.

 

 

Z góry dziękuje :)

Opublikowano
#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
DWORD pid;
cin>> pid;

HANDLE hproc = OpenProcess(PROCESS_VM_READ, NULL, pid);
char buf[100] = {0};

DWORD out;


KEYBDINPUT key= {0, 'a',//znak ktory ma wyslac
KEYEVENTF_UNICODE,0,GetMessageExtraInfo()};

INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;


for(;;Sleep(100)) {
ReadProcessMemory(hproc,TWOJ_ADRES, buf, sizeof(double), &out);
double value =  *(double*)(buf);

if(value > 10)
 SendInput(1, &zz,sizeof(zz)); //wysili a
else
{
zz.ki.wScan = 'b';
 SendInput(1, &zz,sizeof(zz));  //wyslij b
}

}



}
 

 

niestety tak prosty kod, że nie nadaje się na zlecenia (tzn żeby brać za to pieniądze ;P)

Pisze boty do gier WWW na zlecenie.

Opublikowano

Super! zaraz przetestuję i dam edita :) jak wszystko zadziała to dostaniesz like a jak nie to będę pisał, a like i tak dostaniesz ... :)

 

edit

 

errory:

 

 

Compiling: C:\Users\asus\Desktop\C++\AutoHeal.cpp
C:\Users\asus\Desktop\C++\AutoHeal.cpp:16:21: warning: multi-character character constant
C:\Users\asus\Desktop\C++\AutoHeal.cpp:25:25: error: invalid suffix "F8" on floating constant
C:\Users\asus\Desktop\C++\AutoHeal.cpp: In function 'int main()':
C:\Users\asus\Desktop\C++\AutoHeal.cpp:16: error: 'KEYBDINPUT' was not declared in this scope
C:\Users\asus\Desktop\C++\AutoHeal.cpp:16: error: expected ';' before 'key'
C:\Users\asus\Desktop\C++\AutoHeal.cpp:19: error: 'INPUT' was not declared in this scope
C:\Users\asus\Desktop\C++\AutoHeal.cpp:19: error: expected ';' before 'zz'
C:\Users\asus\Desktop\C++\AutoHeal.cpp:20: error: 'zz' was not declared in this scope
C:\Users\asus\DesktopC++\AutoHeal.cpp:20: error: 'INPUT_KEYBOARD' was not declared in this scope
C:\Users\asus\Desktop\C++\AutoHeal.cpp:21: error: 'key' was not declared in this scope
C:\Users\asus\Desktop\C++\AutoHeal.cpp:29: error: 'SendInput' was not declared in this scope
C:\Users\asus\Desktop\C++\AutoHeal.cpp:33: error: 'SendInput' was not declared in this scope

 

 

aż mi głupi pisać, ale kompletnie się nie łapie w kodzie możesz dać komentarze ?

to co wstawiłem to adress i klawisz F2

 

#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
DWORD pid;
cin>> pid;

HANDLE hproc = OpenProcess(PROCESS_VM_READ, NULL, pid);
char buf[100] = {0};

DWORD out;


KEYBDINPUT key= {0, 'F2',//znak ktory ma wyslac,
KEYEVENTF_UNICODE,0,GetMessageExtraInfo()};

INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;


for(;;Sleep(100)) {
ReadProcessMemory(hproc,07E357F8, buf, sizeof(double), &out);
double value =  *(double*)(buf);

if(value > 10)
 SendInput(1, &zz,sizeof(zz)); //wysili a
else
{
zz.ki.wScan = 'b';
 SendInput(1, &zz,sizeof(zz));  //wyslij b
}
}
}
Opublikowano
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
    DWORD pid;
    cin>> pid; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)
    HANDLE hproc = OpenProcess(PROCESS_VM_READ, NULL, pid);
    char buf[100] = {0};
    DWORD out;
    KEYBDINPUT key= {0x71, 0,   KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
    INPUT zz;
    zz.type = INPUT_KEYBOARD;
    zz.ki = key;
    for(;; Sleep(100))  // petla nieskonczona z Sleep(100)
    {
        ReadProcessMemory(hproc,0x7E357F8, buf, sizeof(double), &out); // Tu ttrzeba bylo dodac 0x, 
        double value = *(double*)(buf);

cout << value << endl; //bedzie wypisywalo value na konsole, taki debug sprawdzisz czy wszystko gra
//jak bedzie ok to mozesz usunac ta linijke.
        if(value > 10) /// JEZELI VALUE WIEKSZE OD 10 TO WYSLIJ F2
            SendInput(1, &zz,sizeof(zz)); //wysili f2
    }

}


 

Możesz to przetestować i dać znać jak działa?

Pisze boty do gier WWW na zlecenie.

Opublikowano

sry nie spojrzalem na errory

 

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
    DWORD pid;
    cin>> pid; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)
    HANDLE hproc = OpenProcess(PROCESS_VM_READ, NULL, pid);
    char buf[100] = {0};
    DWORD out;
    KEYBDINPUT key= {0x71, 0,   KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
    INPUT zz;
    zz.type = INPUT_KEYBOARD;
    zz.ki = key;
    for(;; Sleep(100))  // petla nieskonczona z Sleep(100)
    {
        ReadProcessMemory(hproc,(PCVOID)0x7E357F8, buf, sizeof(double), &out); // Tu ttrzeba bylo dodac 0x
        double value = *(double*)(buf);
        if(value > 10) /// JEZELI VALUE WIEKSZE OD 10 TO WYSLIJ F2
            SendInput(1, &zz,sizeof(zz)); //wysili f2
    }

}


to bedzie dzialac

Pisze boty do gier WWW na zlecenie.

Opublikowano

nie umiem myśleć o takiej godzinie... zakładając, że proces to xyz.exe toooooo mam go wstawić jak ?

 

1 cin>> pid; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)

2 cin>> pid; xyz.exe // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)

3 cin>> xyz.exe; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)

 

czy jak... przepraszam za takie pytania, wiem że są banalne ale ja sobie nie radze ;/

 

a ogólnie kompiluje się bez problemu program :)

Opublikowano

kodu nie modyfikujesz. Odaplasz program, program bedzie czekał aż coś wpiszesz, wpisujesz PID, i dajesz enter

 

dwKXrq6.png

 

 

 

 

pida.png

Pisze boty do gier WWW na zlecenie.

Opublikowano

ej nie mogę jak wpisuję ten pid potem klikam enter wchodzę do gry i nic ;/ no nic jutro na spokojnie to zrobię dzięki za pomoc i za poświęcony czas... dobranoc ja idę jeszcze muszę coś skończyć i nie mogę już w c++ pisać :( jak coś to na PW ci napisze czy udało mi się zrobić

Opublikowano


#define _WIN32_WINNT 0x0500

#include <windows.h>

#include <iostream>

using namespace std;

int main()

{

DWORD pid;

cin>> pid; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)

HANDLE hproc = OpenProcess(PROCESS_VM_READ, NULL, pid);

char buf[100] = {0};

DWORD out;

KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};

INPUT zz;

zz.type = INPUT_KEYBOARD;

zz.ki = key;

for(;; Sleep(100)) // petla nieskonczona z Sleep(100)

{

ReadProcessMemory(hproc,(PCVOID)0x7E357F8, buf, sizeof(double), &out); // Tu ttrzeba bylo dodac 0x

double value = *(double*)(buf);

 

cout << value << endl; // ZOBACZ CO CI SIE WYPISUJE NA KONSOLEE

if(value > 10) /// JEZELI VALUE WIEKSZE OD 10 TO WYSLIJ F2

SendInput(1, &zz,sizeof(zz)); //wysili f2

}

 

}

Pisze boty do gier WWW na zlecenie.

Opublikowano

nooo kompiluję , odpalam mam czarne okienko, wpisuję pid(16844)klikam enter i nic... na konsoli nic nie mogę zrobić a w grze nie działa ;(

 

 

edit

 

aa rzeczywiście jak teraz odpalam podaje PID to mi '0' ciągle wysyla

Opublikowano
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
DWORD pid;
cin>> pid; // podajesz PID procesu (znajdziesz go np w menadzerze zadan windows)
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
if(!hproc) {
cout << "nie udalo sie otworzyc procesu";
return 1;
}
char buf[100] = {0};
DWORD out;
KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;
for(;; Sleep(100)) // petla nieskonczona z Sleep(100)
{
ReadProcessMemory(hproc,(PCVOID)0x7E357F8, buf, sizeof(double), &out); // Tu ttrzeba bylo dodac 0x
double value = *(double*)(buf);

cout << value << endl; // ZOBACZ CO CI SIE WYPISUJE NA KONSOLEE
if(value > 10) /// JEZELI VALUE WIEKSZE OD 10 TO WYSLIJ F2
SendInput(1, &zz,sizeof(zz)); //wysili f2
}

 }

 

hmm spróbuj to...

 

I upewnij się że pod tym adresem rzeczywiście nie ma wartości 0

Pisze boty do gier WWW na zlecenie.

Opublikowano

taaak więc teraz po wpisaniu PID'a wyświetla mi ilość HP

 

Edit może pzeniesiemy sie na PW ? bo coraz krótsze te posty robimy

Opublikowano

if(value > 10) /// JEZELI VALUE WIEKSZE OD 10 TO WYSLIJ F2

 

pamietaj o zmodyfkowaniu tej linijki.

 

Teraz jest klikanie f2 jak jest wieksze od 10 ;P



Edit może pzeniesiemy sie na PW ? bo coraz krótsze te posty robimy

 

who cares?

Pisze boty do gier WWW na zlecenie.

Opublikowano

Cytat

Edit może pzeniesiemy sie na PW ? bo coraz krótsze te posty robimy

 

who cares?

 

no 1

 

haha zedytowałem jedną cyferkę i wszystko zaczęło mi się otwierać xD miałem otwartych ok 50 Cheat enginów

 

edit

 

jak byś jeszcze mógł wytłumacz za co odpowiada po kolei to: SendInput(1, &zz,sizeof(zz)); o argumenty mi chodzi

Opublikowano

SendInput(1, &zz,sizeof(zz))

 

pierwszy argument to ilość struktur INPUT, w naszym wypadku jest tylko jedna, która jest wypełniana wyżej.

drugi to adres struktury INPUT, (zz to nazwa, spójrz wyżej w kod, deklaracja tej struktury "INPUT zz;" )

trzecie to rozmiar tej struktury.

Pisze boty do gier WWW na zlecenie.

Opublikowano

no 1

 

haha zedytowałem jedną cyferkę i wszystko zaczęło mi się otwierać xD miałem otwartych ok 50 Cheat enginów

 

edit

 

jak byś jeszcze mógł wytłumacz za co odpowiada po kolei to: SendInput(1, &zz,sizeof(zz)); o argumenty mi chodzi

 

 

KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};

 

0x71 to f2

 

inne znak znajdziesz http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx

Pisze boty do gier WWW na zlecenie.

Opublikowano

to teraz tak próbowałem już różne sposoby ale dalej nic tak aktualnie wygląda kod:

 

 

 

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
DWORD pid;
cin>> pid;
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
if(!hproc) {
cout << "nie udalo sie otworzyc procesu";
return 1;
}
char buf[100] = {0};
DWORD out;
KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;
for(;; Sleep(100))
{
ReadProcessMemory(hproc,(PCVOID)0x07F7A6C0, buf, sizeof(double), &out);
double value = *(double*)(buf);
cout << value << endl;
if(value < 40000);
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY, 0 );
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}
}

 

 

 

 

a program działa następująco odpalam go podaje PID'a klikam enter i na konsoli pokazuje ilość HP a w grze czy mam poniżej 40.000hp czy powyżej i tak ciągle klika F2...

Opublikowano

 

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
DWORD pid;
cin>> pid;
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
if(!hproc) {
cout << "nie udalo sie otworzyc procesu";
return 1;
}
char buf[100] = {0};
DWORD out;
KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;
for(;; Sleep(100))
{
ReadProcessMemory(hproc,(PCVOID)0x07F7A6C0, buf, sizeof(double), &out);
double value = *(double*)(buf);
cout << value << endl;
if(value < 40000){
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY, 0 );
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}
}
}

1373986324-U917591.png

Zapraszam do prezentacji serwera uMetin2:

KLIK

Opublikowano
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
DWORD pid;
cin>> pid;
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
if(!hproc) {
cout << "nie udalo sie otworzyc procesu";
return 1;
}
char buf[100] = {0};
DWORD out;
KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;
for(;; Sleep(100))
{
ReadProcessMemory(hproc,(PCVOID)0x07F7A6C0, buf, sizeof(double), &out);
double value = *(double*)(buf);
cout << value << endl;
if(value < 40);
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY, 0 );
        keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}
}

 

 

czemu vaule < 40000 ?

 

40 tysięcy ?

 

Nie dziwie sie że klika non stop, jestem pewny że Twoje hp jest zawsze mniejsze niż 40000 ! :)

 

daj

 

if(value < 40)

Pisze boty do gier WWW na zlecenie.

Opublikowano

ZORBIŁEM! yay!

 

tak wygląda kod:

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
DWORD pid;
cin>> pid;
HANDLE hproc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
if(!hproc) {
cout << "nie udalo sie otworzyc procesu";
return 1;
}
char buf[100] = {0};
DWORD out;
KEYBDINPUT key= {0x71, 0, KEYEVENTF_KEYUP,0,GetMessageExtraInfo()};
INPUT zz;
zz.type = INPUT_KEYBOARD;
zz.ki = key;
for(;; Sleep(100))
{
ReadProcessMemory(hproc,(PCVOID)0x07F7A6C0, buf, sizeof(double), &out);
double value = *(double*)(buf);
if(value < 40000){keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY, 0 ); keybd_event( 0x71, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );}
else if (value > 40000){Sleep(10);}
}
}

dzięki metin1998 za pomoc pod każdym postem odstaniesz lubię to bo poświęciłeś sporo czasu :)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...