Posted: Fri May 19, 2023 3:00 am Post subject: Mount&Blade Bannerlord finding CONSTANT entity list
Hi guys,
In Mount & Blade: Bannerlord, I can find the entity list by looking for my coordinates, checking offsets to the entity, then finding the list of entities. I know it works because I can draw ESP on all entities using viewmatrix.
The issue is, every now and then the games' memory decides to change its location and I lose all previously correct pointers to the address. This includes the viewmatrix and any other addresses I have. (In this game the entity list is saved in a linked list)
In some cases, I can bypass this by just having a saved pointer list and just finding a working one, but it's annoying not having consistency.
What can I do in this case? Could it be that there is a way to find the REAL pointer to the entity list?
It's worth adding that nothing changes in the game scene - all the entities are present and no reload is done.
I scanned 10 levels deep running a pointer scanner for 24 hours and still can't seem to find it. On top of that, they are on Threadstack0 so it makes it even more fun.
Another issue I am facing is in the image below I think these numbers allocate a specific number of bytes to that particular list? These lists constantly change (character entity list, object entity list, e.g. trees) (removed entities, added entities) and I think sometimes exceed their size? What happens then? Could this be the reason why it decides to change the location in memory?:
What's weird is for long entity lists (stones, trees) they are in separate lists? When I draw them with ESP I find that not all of them are in there - some trees and stones missing, even though I am looping through them all (10K+). How can this be?
Could it be that there is a way to find the REAL pointer to the entity list?
Backtrace an access to a relevant value and see the path it takes. At minimum, you'd need to be able to read assembly. Some knowledge of reverse engineering would help too- e.g. calling conventions, data structures, and identifying memory allocation calls (threadstack0 base addresses)
Code injection might be better. Search for "injection copy" for more information.
JingleBellz wrote:
These lists constantly change... and I think sometimes exceed their size? What happens then? Could this be the reason why it decides to change the location in memory?
Maybe. That's what typically happens with vectors (aka arrays in certain higher-level languages).
JingleBellz wrote:
What's weird is for long entity lists (stones, trees) they are in separate lists? When I draw them with ESP I find that not all of them are in there - some trees and stones missing, even though I am looping through them all (10K+). How can this be?
Either not all entities are stored in a single list (data structure shenanigans) or there's some race condition happening (the game is modifying the data structure while you're reading it). If the problems are consistent, it's probably not a race condition. _________________
I don't know where I'm going, but I'll figure it out when I get there.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum