-
Member
Help me choose a way
Hello.
I was going to write a bot.
I used to use the dll injection method,
Then I edited the memory and transferred the data to an external application.
Now I need a bot again, because times are hard and the way I used is outdated, the bot is banned even on some pirate servers.
Please tell me the way, what methods of implementation can be used now?
From what I know:
1 library injection,
2 access to process memory from an external application,
3 Using add-ons, transferring data using pixel color
-
Member
Interested in patch 2,5,4
Maybe there is some kind of library like BlackMagic for old patches?
I want to find the safest way to implement a bot.
Reading pixels seems like the safest way at the moment.
Although I may be wrong
-
Member
If I read the memory without changing anything, how dangerous is it, on the current patch 2,5,4?
like this for example
Code:
byte* ReadMEMORY(DWORD adress, DWORD size, DWORD pid)
{
static byte* bytes = new byte[size];
HANDLE hprocess = OpenProcess(PROCESS_VM_READ, false, pid);
ReadProcessMemory(hprocess, (LPCVOID)adress, bytes, size, NULL);
CloseHandle(hprocess);
return bytes;
}
and will it work?
perhaps I need to get the SE_DEBUG_NAME privilege?
-
Active Member
Originally Posted by
Hrap
If I read the memory without changing anything, how dangerous is it, on the current patch 2,5,4?
like this for example
Code:
byte* ReadMEMORY(DWORD adress, DWORD size, DWORD pid)
{
static byte* bytes = new byte[size];
HANDLE hprocess = OpenProcess(PROCESS_VM_READ, false, pid);
ReadProcessMemory(hprocess, (LPCVOID)adress, bytes, size, NULL);
CloseHandle(hprocess);
return bytes;
}
and will it work?
perhaps I need to get the SE_DEBUG_NAME privilege?
Be careful. Some pages could be guard protected. It would be better to check if region you want to read is backed
-
Post Thanks / Like - 1 Thanks
Hrap (1 members gave Thanks to Kovrizha for this useful post)
-
Member
Originally Posted by
Kovrizha
Be careful. Some pages could be guard protected. It would be better to check if region you want to read is backed
I read about it, but unfortunately I don’t know how to check if the region is protected.
could you help with that?
Can you tell me where I can read about it?
-
Member
Tasks I have set for myself
I need to read the following data from the game
Player name
player health
Player Position
target, if any
target position
in fact, these are all the fields of the object in wow
it would be nice to organize an object manager, as it seems to me, without it you won’t get the necessary information
I used to use dll injections,
Hook detours.lib was used, intercepted render,
executed the code in it, used the EnumVisualObject function, returned the Render procedure back
At the same time, the EnumVisualObject function worked only from the intercepted render function
I've been reading a lot about this lately.
I understand now the old way will lead to a ban on 2,5,4
Please help me figure out which direction to go
Can I read the values I need from the game's memory without using injections and hooks?
How can I influence memory protection?
Or do you still need to use hooks?
I used to use someone else's library for reading and writing, she did everything herself
Now I want to figure out how this is implemented for a start, at least on old pirates 3,3,5a
If it’s not difficult for you, at least in theory, could you describe the procedure that should be taken to obtain the data I need and what I should pay attention to
Otherwise, I feel that I will wander for a long time in search of solutions and I may go down the wrong path.
-
★ Elder ★
Originally Posted by
Kovrizha
Be careful. Some pages could be guard protected. It would be better to check if region you want to read is backed
No guard pages in WoW! That was/is an overwatch thing
-
Active Member
Originally Posted by
king48488
No guard pages in WoW! That was/is an overwatch thing
I could be wrong but at the end of 2021 QueryWorkingSetEx sometimes returned FALSE for me
-
Active Member
Originally Posted by
Hrap
I read about it, but unfortunately I don’t know how to check if the region is protected.
could you help with that?
Can you tell me where I can read about it?
Afaik you need to call QueryWorkingSetEx before ReadProcessMemory
-
Contributor
wow currently has none not saying they wont add them but easy to add check future u
-
Post Thanks / Like - 1 Thanks
doityourself (1 members gave Thanks to charles420 for this useful post)
-
Member
While I'm struggling with compilation problems))
visual studio does not compile code with lpvoid to DWORD_PTR conversion
I got stuck on such a trifle yesterday))
-
Member
Guys please tell me how to read the name of the player?
I'm doing it
Code:
DWORD_PTR s_PlayerName = 0x00C79D10, // 3.3.5
BYTE* ReadMEMORY(DWORD_PTR adress, DWORD size, DWORD pid)
{
static BYTE* bytes = new BYTE[size];
HANDLE hprocess = OpenProcess(PROCESS_VM_READ, false, pid);
if (!ReadProcessMemory(hprocess, (void*)adress, bytes, size, NULL))
{
CloseHandle(hprocess);
return 0;
}
CloseHandle(hprocess);
return bytes;
}
char buf[10];
memset(buf, 0, sizeof(buf));
memcpy(&buf, ReadMEMORY(BaseAdress + s_PlayerName , 10, myEntry.th32ProcessID), 10);
i get doodle instead of name.
How to do it right?
-
Member
Understood!))
Learned to read from memory
One more question left
I have used EnumVisibleObjects before.
I called it from a hooked render function
Announced
Code:
typedef void(__cdecl* tEnumVisibleObjects)(void*, INT);
tEnumVisibleObjects EnumVisibleObjects = (tEnumVisibleObjects)0x4d4b30
calling
Code:
EnumVisibleObjects(&EnumObject,0);
question
Can I call and use this function from my application and how can I implement it?
-
Contributor
Avid Ailurophile
Originally Posted by
Hrap
Understood!))
Learned to read from memory
One more question left
I have used EnumVisibleObjects before.
I called it from a hooked render function
Announced
Code:
typedef void(__cdecl* tEnumVisibleObjects)(void*, INT);
tEnumVisibleObjects EnumVisibleObjects = (tEnumVisibleObjects)0x4d4b30
calling
Code:
EnumVisibleObjects(&EnumObject,0);
question
Can I call and use this function from my application and how can I implement it?
Maybe take a peek and read this forum before expecting everyone to spoon feed you the answers.
"May all your bacon burn"
-
Member
I apologize for stupid questions.
I speak English very bad
Therefore, reading the forum takes a lot of time, and a lot has been read in the last week.
I wrote a memory class and learned a lot
Moreover, rockets fall, distracting. At night he fell very close
And about the WOW functions: they only worked for me from the stream. I wonder if it's possible to call them remotely
But in any case, I watch how everyone writes their own object manager, I'm currently doing it myself
I think this is the right way