FIXING PRSPY >64p

General discussion of the Project Reality: BF2 modification.
User avatar
Mats391
PR:BF2 Lead Developer
Posts: 7643
Joined: 2010-08-06 18:06

Re: FIXED PRSPY >64p

Post by Mats391 »

There are ways to run cheat engine on linux i think, but no idea how good the results are.
Either way i dont see anything preventing from adding this to windows servers, if it all works fine there.
The Iron Dreamer
Posts: 444
Joined: 2009-01-16 22:23

Re: FIXED PRSPY >64p

Post by The Iron Dreamer »

Most if not all servers run on linux.
Image
Image
Arab
PR:BF2 Developer
Posts: 2898
Joined: 2012-05-18 03:37

Re: FIXED PRSPY >64p

Post by Arab »

You can use wine, or an alternative called PlayOnLinux to run the cheat engine application in linux. It's an app that allows native support for most windows games & apps and is not an emulator.

Link: https://www.winehq.org/

It can run Battlefield 2 just google around on how to install.

Pm me and I can help you with linux if you need help. Im not very good but im familiar with linux, just not in a technical level.
Last edited by Arab on 2014-11-11 22:11, edited 4 times in total.
Nemes1s
Posts: 42
Joined: 2011-08-04 13:40

Re: FIXED PRSPY >64p

Post by Nemes1s »

Linux 32 bit:

dice::hfe::ServerQueryCache::ServerQueryCache(void)
Offset: 00077B8D change mov edi, 3Fh to 63h

dice::hfe::ServerQueryCache::ServerQueryCache(void)
Offset: 00077C9D change mov edi, 3Fh to 63h

dice::hfe::ServerQueryCache::getPlayerKey(int, dice::hfe: :P layerQueryKey) (optional)
Offset: 00078062 change cmp edx, 3Fh to 63h

dice::hfe::ServerQueryCache::update(void)
Offset: 000790BD change cmp [ebp+var_1AC], 3Fh to 63h

Attention: These changes are untested and may either not work or in the worst case cause server instability.

I will add 64 bit later.

EDIT:

Linux 64 bit:

dice::hfe::ServerQueryCache::ServerQueryCache(void)
Offset: 0006D387 change mov edi, 40h to 64h

dice::hfe::ServerQueryCache::ServerQueryCache(void)
Offset: 0006D477 change mov edi, 40h to 63h

dice::hfe::ServerQueryCache::getPlayerKey(int, dice::hfe: :P layerQueryKey) (optional)
Offset: 0006D30A change cmp esi, 3Fh to 63h

dice::hfe::ServerQueryCache::update(void)
Offset: 0006E546 change cmp [rsp+238h+var_22C], 40h to 64h
Last edited by Nemes1s on 2014-11-11 23:15, edited 1 time in total.
Reason: added 64 bit
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Post by UTurista »

This seems promissing, can I ask how did you found out the values?
And did you tested this in your computer (local server)?

edit:
I've tried the 64x and I got a Segmentation Fault error.
Last edited by UTurista on 2014-11-14 15:48, edited 1 time in total.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXED PRSPY >64p

Post by UTurista »

Hi everyone,

Like you might noticed the assembly solution didn't worked, the servers running in windows machine are very few and the linux solution is nowhere to be found.

But not everything is lost, we still have a non-native solution... Python! this might have none to a huge impact on the server performance, so again it could be a dead end, but we still need to try.


After a day of work I've made a QueryModule that adds a listening (UDP)port and replies with json file.

Currently the model for this JSON file is:

Code: Select all

ipAddress   
queryPort 
customQueryPort   
currentTime          
squadTime             
players                  
     name
     kit
     squad
     isSquadLeader
teams
     name
This is far from complete, for example I want to reply with a fastest and smallest message, instead of the current block of text (MessagePack)

But seeing this is my first time coding with Python I wanted to ask here if there's someone that could help me.



The current version of the code is already functional but needs to be optimized and expanded.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
piepieonline
Retired PR Developer
Posts: 433
Joined: 2009-07-22 00:41

Re: FIXED PRSPY >64p

Post by piepieonline »

AncientMan and I tried python already, but we found that server stability seemed to suffer, which is why we reverted back to not worrying about it. :(
Image
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXED PRSPY >64p

Post by UTurista »

[R-DEV]piepieonline wrote:AncientMan and I tried python already, but we found that server stability seemed to suffer, which is why we reverted back to not worrying about it. :(
And was your approach the same as mine? I knew that AM already had tried but he never said how was his approach so I figured I would try.


And if indeed was this your approach what do you think about an alternative were the server keeps the information based on events and not by iterating all players and after X seconds is the server that sends the information to the Master Server, instead of replying to it.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
piepieonline
Retired PR Developer
Posts: 433
Joined: 2009-07-22 00:41

Re: FIXED PRSPY >64p

Post by piepieonline »

We tried the other way, contacting the server. I don't think there would be any difference though...

Both of these methods might be worth testing again though, but we'll have to wait for other tests to finish up first probably...
Image
BloodyDeed
Retired PR Developer
Posts: 4452
Joined: 2008-05-07 17:43

Re: FIXED PRSPY >64p

Post by BloodyDeed »

All bf2 python programming that involves sockets resulted in lags. Seems like BF2 was never meant to support it.
Image
piepieonline
Retired PR Developer
Posts: 433
Joined: 2009-07-22 00:41

Re: FIXED PRSPY >64p

Post by piepieonline »

BloodyDeed, we did manage to get around that, using timers and stuff, so that wasn't the issue.

It appeared that the number of crashes increased, which was the issue I was concerned with.
Image
sirfstar
Posts: 255
Joined: 2011-09-01 07:18

Re: FIXED PRSPY >64p

Post by sirfstar »

instead of trying to re-write something in a low level or using py, couldn't you just put alongside another little server that just reads necessary things from the game server memory?
Last edited by sirfstar on 2014-12-23 22:24, edited 1 time in total.
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXED PRSPY >64p

Post by UTurista »

[R-DEV]piepieonline wrote:BloodyDeed, we did manage to get around that, using timers and stuff, so that wasn't the issue.

It appeared that the number of crashes increased, which was the issue I was concerned with.
And did you guys managed to find out what caused the crashes? Were the sockets our accessing some null objects?
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXED PRSPY >64p

Post by UTurista »

If there are any server admins interested in helping this project I would appreciate.

Not sure if its possible to add python modules to the server without conflicting the PR Server License, but I'd like to try this version of the code.

Edit: Could a mod change the title of this thread to "Fixing..." instead of "Fixed..."
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
The Iron Dreamer
Posts: 444
Joined: 2009-01-16 22:23

Re: FIXED PRSPY >64p

Post by The Iron Dreamer »

If the Devs gives us the go ahead, I don't think that us at =MeRk= would mind to do this test.
Image
Image
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXING PRSPY >64p

Post by UTurista »

Bumping Thread.

If =Merk= is interested in testing we just need the Devs to say if they can test it w/o password or if needs to be "event" like.

The sooner the better.


Edit:
Following Mineral's advice I've sent PM to AM and AD
Last edited by UTurista on 2014-12-29 15:02, edited 1 time in total.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
User avatar
Mineral
Retired PR Developer
Posts: 8534
Joined: 2012-01-02 12:37
Location: Belgium

Re: FIXING PRSPY >64p

Post by Mineral »

Save bet is just to make it passworded and tie it to another event to get +64 on the server. But PM'ing a red-tag might get you a bit further then that :D
Image
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXING PRSPY >64p

Post by UTurista »

Green Light, Red Tags said it was OK to test the code in public games, no password no nothing.

Any server interested PM so I can send the (2-step) instructions.
Last edited by UTurista on 2014-12-29 16:20, edited 3 times in total.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
The Iron Dreamer
Posts: 444
Joined: 2009-01-16 22:23

Re: FIXING PRSPY >64p

Post by The Iron Dreamer »

=MeRk= Server is running the script right now. The only thing we need is to get 64+ players on the server.
Image
Image
UTurista
PR:BF2 Developer
Posts: 985
Joined: 2011-06-14 14:13

Re: FIXING PRSPY >64p

Post by UTurista »

Hi everyone, I've promising news.

Today, with =Merk= running with ~80 players, the scripted was tested and no problems were detected.
During 18:49 and now, 21:24 (PRT) the server stayed in a constant ~80 players, 4/5 map changes (1k to 4k) and no player complaint about lag. The script ran every 5 seconds through a web request.

I would like to see more servers running the script to have better statistics but it seems the python module does not create LAG or increases the Crash probability.
Image


Dont question the wikipedia! Just because it reports different things on different languages does not make it unreliable source!
Post Reply

Return to “PR:BF2 General Discussion”