Scanning planets - BoundlessProxyUI updated

BoundlessProxyUI

Hello Everyone! :wave:

My name is nidaren and I have recently got back to this amazing game.

I have updated the awesome planet scanning tool - BoundlessProxyUi, with permission from @Angellus and by his suggestion I am now making this forum post with the updated build.

It can be accessed here via my github’s releases page here:

Download

What is BoundlessProxyUI?

BoundlessProxyUI is a MITM (“man in the middle”) proxy that sits between your Boundless game client and the Boundless game servers. The purpose of it is to read all of the data that goes between your game and the server to pull out useful data that is needed by our community to power all of our awesome tools, like Boundlexx, various Discord bots for guilds or Boundless Information Station.

Why would I want to use BoundlessProxyUI?

Color data! The main use for ProxyUI is getting all of the color data for worlds that we cannot (yet) get via without someone running the game. You may have seen all of the amazing hard work of some community members who have been doing to scan peoples worlds so they can make forum posts with all of their colors in it. This is how that is done! So you can do it yourself and help get color data for everyone else.

Is ProxyUI “safe”?

I really want to tell you “yes”, but that would be really irresponsible of me to do so. ProxyUI is a MITM proxy. That in of itself comes with a number of security implications. I have done my best to make how ProxyUI works as visible as possible, but that still requires a large amount of technical knowledge to decode all of that information and truly know if it is “safe”. What I can give is information about ProxyUI to determine if it is safe enough for you to use:

If for any reason you do not feel comfortable running ProxyUI, it is okay! Just do not use it. The last thing I would ever want to do is get someone to run a program on their computer they are not comfortable with.

If you need color data updated/uploaded for a world and you are not running ProxyUI, post your request here and I will be happy to scan and update it for you.

But Windows says ProxyUI may be harmful…

Yes it does. The short answer for that is because ProxyUI is an Open Source project. Microsoft is complaining that the program is potentially harmful because it is not signed. Code signing can be very expensive and very hard to set up. Because the project is done in the free time of the community, it is just not feasible at this moment. If you are even concerned about the safety of a ProxyUI executable, please always make sure you download them directly from my Github project.

Uploading Color Data to Boundlexx

The main use of ProxyUI for many will likely to be to upload Color Data to Boundlexx. This allows us as a community to better track all of the possible colors in our game universe to provide that data to other via our awesome tools better.

If you want to upload Color Data to Boundlexx, awesome!. The only thing you need to get started is ProxyUI and a Boundlexx API key. Message @Angellus directly to get an API key. The API key is essentially your “password” to upload color data. Please do not share this with anyone!

Unfortunately the Internet is a scary place. The Boundless community may be amazing, but some random person off the Internet may not be. In interest of trying to keep bad people from doing bad things and protecting our color data, API keys are absolutely required to upload any data.

Adapted information originally posted by Angellus in the previous app thread. Credits (c)Angellus

How to scan a planet:

Guide originally made by Mr @Redlotus

  1. Download the Boundless Proxy UI
  2. Request an API from @Angellus on the forums or on Discord
  3. Unpack the app to location you want.
  4. Insert the API key into the program
  5. START SCANNING!

Thank you very much and see you in Boundless! :slight_smile:

17 Likes

Updated the app to 1.5.3 and temporarily disabled the option to upload and save control filles, as they do not parse properly.

In the meantime I have scanned 45 sovereign worlds that are available through Dragon’s network.

If you do not feel confident enough to use the app, but would like your world scanned, let me know :slight_smile:

4 Likes

If I have an API key already, can I use your version with it?

Hello,

Yes, if you API is valid - you should have no trouble using it.

Ok, I’ve got it up and running.

1 Like

Very nice!

Updated the app to 1.5.4, fixed several errors that were being spammed into the log as well cleaned it up.

Hi… Tested it too and Proxy Ui works,

Thx for updating it

Helmut

1 Like

Small update to 1.5.5:

  • Added short API response to log when uploading world json.
  • Cleaned the code somewhat.
  • Added proper capitalization for planet names when saving into files and display.
  • Fixed extended error message on Json message decode.
1 Like

Are you sure they are not parsing correctly, or just that you do not have permission to upload them? Only a couple of users historically had access to upload them (myself, Gorilla, Soju, Kasaisaru).

Hello thank you for your answer and explanation.

Yes they fail at the parse stage on reading number of players. They parse fine up to this point.

It’s ok though, world jsons parse and upload fine, and they contain all colour data. :slight_smile:

The world control data was still important though. Because that identifies what colors are available. Which that data is really important for Exos. Cannot identify if a color is Exo exclusive if the list of available colors for Sovereigns are not up to date.

I see, this is very useful to know, thanks for explaining. The parsing fails at the mentioned point

private Tuple<string, bool> ParseWorldControlJson(int planetId, byte[] buffer, int offset)
[...]
var playerCount = BitConverter.ToUInt16(GetBytes(buffer, offset, 2), 0); <---
[...]

and I lack the skill and expertise to fix it, so sadly they won’t be available until someone is able to see what is wrong with the captured world control message.

Love the API, though, it is very responsive and thank the stars it does accept the world jsons with the API kindly provided by you :slight_smile:

What is exactly the error you are facing?

1 Like

Hello Tim,

From what I understand there must have been either something changed in the ids and the app catches the wrong message - or the bit counts and jumps are wrong. Sadly I have never worked with decoding the binary objects directly like this.

In debugging, when it was decoding the World Control Message I was stepping through each stage - worth noting is that even when it doesn’t throw exceptions prior to playerCount like for example numGuilds it gets some super high unrealistic number too - hence why I think it might have the wrong message or wrong offsets with how many bytes it has to jump over.

When it reaches the playerCount it states that the it throws the exception Message = "Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'startIndex')"

WordJsons work just fine, though. But they do not require any bytes jumping and can simply be assigned as the whole message from its buffer and parsed.

Is there a way to change the port this uses? I run a few secure sites and they of course run on port 443. It appears the proxy uses it also.

Thought Id ask since I have to shutdown IIS for a bit to run the Proxy.

Since the proxy acts as a middle man between Boundless and the its servers, and you cannot tell Boundless to use another port, that’s sadly not possible.

2 Likes