Elitepvpers community poe bot?

03/30/2014 08:25 un4given2#16
Quote:
Originally Posted by baldoran View Post
Hi there, I'm also interested to help. My main is also C and C++.
May I also suggest pixel bot? As it is future-proof so we don't have to keep updating the offset.
some part can be done, but most can not. Hence bot will not be functional anyway.
I had done pixel thingy scripts for D3. It is really not reliable approach and also very faulty behavior with small changes in the client window etc. Writing a bot that only reads memory passively is very safe approach. I did a lot of botting back then in D3 for fun and I noticed the only way that Blizz could detect undetectable bots (both passive or warden proof bots) was using the patterns of bot behaviors. i.e. when you implement A-star algorithm for navigation, bot always tend to move certain locations in each map segment (If you played wow with honorbuddy you most likely have seen some bots moving on top of each other in BGs). I believe blizzard used the same algorithm to find such patterns and one day a lot of people got banned wondering why, because buddy guys insisted that warden still could not detect their bot in the memory. Also, blizz invested a lot of resources against botters (as well as suing some of the bot makers) but I don't think that GGG is going to do this. Therefor no matter what approach we use (pixels, passive or active), not-human behavior of the bot will be its pitfall in the end.
03/30/2014 10:56 LordRogan#17
This sounds very interesting. I would like to participate as well.
I'm a software engineer. Main main focus is C++ (also Delphi and LUA).
The passive memory reading approach is the best in my opinion because it's hard to detect and reliable.
I have some ideas about movement and how to make it seem more human.
03/30/2014 12:45 toas#18
If somebody gives me a static pointer to the player struct and navmesh, I could start with the bot. I have done an API to send input to path of exile (like InputAPI->useFlask(2)), just need the correct memory locations for pathfinding and so on.

Edit: In my opinion a pixel bot won't work. PoE's life-bars are difficult to scan, and how do you want to scan the map for pathfinding?

Some guy was able to extract the navmesh: [Only registered and activated users can see links. Click Here To Register...] but he didn't write how he got it.
03/30/2014 13:48 Lightmaxime#19
How does your API work? Is it simulating a mouse click on the flask?
Otherwise, I believe that calling PoE internal functions to drink a flask can be detected. Well, actually, I'm sure it can be - I don't know if PoE has a warden or credential system.
03/30/2014 14:21 toas#20
It's sending a Keyboard Event to PoE, so I would say it's almost undetectable.

Here's a snippet of the code I'm using: [Only registered and activated users can see links. Click Here To Register...]

I'm currently working on getting the mapdata, also I mentioned it's using STL containers as hell. But I don't think I can reverse everything without help.

Edit: I already found the function which decrypts the packets and so on, but I'd need to inject a jump to be able to process that packets, which wouldn't be passive.
03/30/2014 15:29 Lightmaxime#21
Code:
if (pid > 65536)
I've been having processes with pid > 130000 on my 32 bit Vista laptop.

Maybe using a VPN and VM so that you can inject without being yourself banned? There are free VPNs over the web.

About the help you need, I think everyone interested in this thread should make a list of the things he can do (not the languages or what, but reverse engineering, interface, input, etc).

For my part, I can do
-input,
-interface,
-scripting
amongst many things.

But I'm not the best here for reverse engineering. Though I'd love to learn more of it.
03/30/2014 16:04 toas#22
Exilebuddy uses injection, and there are tons of ban-records. i'd really like passive injection, but if it's not possible in another way, we will have to make an injection-based bot.

What I could do:
- Interface
- Bot Logic
- Pathfinding (A*)
- Scripting / Questing
- Plugins

What I can't do:
- Reversal of Client (for static pointer)
03/30/2014 16:17 Lightmaxime#23
Exiled Bot doesn't use injection, and it's a good bot, though it lacks many things. Including questing.
03/30/2014 16:20 toas#24
Yeah, but it's much more difficult with passive injection
03/30/2014 16:33 Sushey#25
thats a really good idea, but would it be better if you do it private? i mean, the GGG staff could take a look here and see that you guys are coding a bot and then it will constantly get fixed o:
03/30/2014 17:21 un4given2#26
I also think we should move to a more private place for planning things related to this project.
Personally I am interested in the Bot logic (I am thinking of FSM(finite state..) for the bot),
movement implementation and combat logic.
BTW for thosewho are interested in reverse engineering you might consider using jetbrains dotpeek and exilebuddy to get some readily available infos in plain c# code!
03/30/2014 17:46 madadayo#27
well, they can see exile bot too and nothin of it gets fixed, so why should they do it with this one?
03/30/2014 18:03 un4given2#28
Quote:
Originally Posted by toas View Post
Yeah, but it's much more difficult with passive injection
which part of exilebot do you think does injection? all parts to me seems doing passively. poeple are getting banned due to reasons I explained previously unless GGG had decided to scan players pc memory!
03/30/2014 18:06 e2537066#29
Quote:
Originally Posted by madadayo View Post
well, they can see exile bot too and nothin of it gets fixed, so why should they do it with this one?
exactly, even if you do it opensource what would it matter. just make it humanlike so it cant recognize patterns and dont change the games memory.

as long as ggg doesnt randomly change offsets (if that's even possible?)

seems like a ton of work though. maybe someone can reverse engineer stuff from exiled-bot?
03/30/2014 18:25 toas#30
I'm currently experienting with IDAPro to check how the Game and Exiled Bot are working. Keep in mind you need an unpacked Exiled-Bot version (without Themida).

If anyone has a more private room to talk, send me a pm :)

@un4given2 I'm sorry, I didn't mean "injection", I meant passive memory reading instead of hooks or something like that :)