Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

ME3 Profile Editor

Non-toolset utilities for the ME Trilogy developed by community coders. Note: Restricted to coder- or modder-oriented tools. User-oriented tools belong where they can be adequately supported (e.g., Nexusmods).

Re: ME3 Profile Editor

Postby Fog.Gene » 03 Jan 2015, 14:21

Just tested this. It finds my GR just fine, but it still gets reset after launching the game while connected to the internet. Same thing happened when I edited the values manually.

A couple of things I noticed:

1. My initial guess was to read the constructs like this (take the first entry as example):

02 00 00 00 -- Int32 (little endian) byte count?
74 01 -- Name/ID?
00 00 00 32 -- Int32 (big endian) 50 readiness
00 -- null terminator?


If we check how a keybinding is stored in the file, a somewhat similar structure appears

11 00 00 00 -- Int32 (little endian) char count
53 68 61 72 65 64 5F 45 78 69 74 41 74 6C 61 73 -- null-terminated char[0x11] (Shared_Exit_Atlas)
02 -- Unknown (flag?)
02 -- Unknown (flag? maybe flags the following mapping). Does not change with mapping.
58 -- Primary keymap
00 -- Unknown (flag? maybe flags the following mapping). Does not change with mapping.
DA -- Secondary keymap
00 -- Unknown
00 -- null terminator?


So the only common pattern I found so far is:

Int32 (little endian) that may be used as byte count
String of len == count or 2 byte ID if count == 0x02
5-7 bytes data

2. This doesn't really matter because you exit the for loop as soon as you get all the codes, but (in my file at least) the GR values end at (file.length - 0x4E)


EDIT: forgot #2 lol
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: ME3 Profile Editor

Postby WarrantyVoider » 03 Jan 2015, 14:26

ofc it gets resetted, because on the inet you get to the real server and it will contain your real progress they know of. thats why you have a local_profile.sav for your game to store the state (offline) and the playerprofile.txt in my server, that represents the actual progress on the server side (if online server doesnt know you made an achievement, it will overwrite your local profile with its last known state of you)

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: ME3 Profile Editor

Postby Fog.Gene » 03 Jan 2015, 14:28

Any way to hijack the server check? You guys are the space wizards :P

I mean, there must be a way to overwrite the server file. Otherwise we could not update our keybindings either.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: ME3 Profile Editor

Postby Fog.Gene » 03 Jan 2015, 15:41

Just a small update. By checking somebody else's profile (mine was barren of achievements or progress) I noticed some extra things.

Int32  (little endian) that may be used as byte count
String of len == count or Int16 ID if count == 0x02
2 bytes only in certain constructs, such as keybindings (might be an ID)
Int32 (big endian) might be data (galactic readiness) or byte count (e.g. for a following string)
byte * count other data (if it exists, usually a null-terminated string)


I think I'm close to figuring this one out. Might start coding something, if nobody else does.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: ME3 Profile Editor

Postby WarrantyVoider » 03 Jan 2015, 21:01

well that would be DIRECTLY cheating on official servers if I inject custom settings while MITM, and as I dont think the servers will be online for long anymore anyway, I dont think it would be a good idea to make this

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: ME3 Profile Editor

Postby Fog.Gene » 03 Jan 2015, 21:05

Yeah you're right. I got carried away. Since I don't play MP, I'll just prevent it from altering my local file.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: ME3 Profile Editor

Postby JunkoXan » 03 Jan 2015, 21:13

what about emulating it through non-MITM mode for those who don't want to connect to official GR server?
JunkoXan
User
 
Posts: 233
Joined: 26 Apr 2014, 16:02
Has thanked: 4 time
Have thanks: 15 time

Re: ME3 Profile Editor

Postby Fog.Gene » 04 Jan 2015, 00:00

This is all I got.

Spoiler:
BOF

int32 Count // total element count

struct ShortID{

int32 len0 // ID byte-length
int16 id // ID
int32 value or len1 // value if followed by 0x0, byte-length otherwise

byte null or char[len1 + 0x0] or Int64 PID
}

// 0xC bytes unknown construct
// starts like a short ID struct, but deviates at the end
// it's the same in the two profiles I checked.
// marks the beginning of the keybinds
int32 len0 // ID byte-length
int16 ID // 0x637 (37 06 in file)
0x0
0x0
03 9F 04 29

array[] KeyBindinding; // several arrays of keybindings, one for each in-game section
// each array begins with 0x1 followed by 0x0, then the array itself
Keybinding{

int32 len2 // char length
Char[len2] name // null-terminated string: binding name
int16 unk1 // unknown
char key1 // a single byte, if assigned will be ASCII encoded keyboard key
byte unk2 // always 0x2
char key2 // a single byte, if assigned will be ASCII encoded keyboard key
byte unk3 // always 0x0
}
byte 00 or 01 00
// if 01 00, it mirrors in-game menu separator (Combat, Multiplayer, etc...), then follows another array
// if 00, key-binding section ends

struct ShortID{

// same as above
}

EOF


- The whole key-bindings section counts as one element towards the total count
- The weird construct before the key-bindings does not follow a clear structure, no idea what that is
- Each ID must mean something, cannot know with my barren profile...
- The char array in the "short id" struct is used for the auth string and some others, such as what seemed to be online profiles

I noticed in the MP forum (the unlocked one) that you guys have a profile editor? If this is old news, well, thanks for letting me practice anyway. I have code that dumps the whole file as text, but nothing to serialize and allow editing. Feel free to code that if this helps, and it is not made already.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: ME3 Profile Editor

Postby WarrantyVoider » 04 Jan 2015, 01:33

JunkoXan wrote:what about emulating it through non-MITM mode for those who don't want to connect to official GR server?


thats what PSE does, have your own server :P

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: ME3 Profile Editor

Postby JunkoXan » 04 Jan 2015, 02:20

WarrantyVoider wrote:
JunkoXan wrote:what about emulating it through non-MITM mode for those who don't want to connect to official GR server?


thats what PSE does, have your own server :P

greetz WV


my GR is at 0% though? ._.
JunkoXan
User
 
Posts: 233
Joined: 26 Apr 2014, 16:02
Has thanked: 4 time
Have thanks: 15 time

PreviousNext

Return to Third-Party Utilities

Who is online

Users browsing this forum: No registered users and 0 guests

suspicion-preferred