lostinspace
11-04-2002, 11:55 AM
Well, I managed to make my own non-C version of keyreader, and I was trying to eliminate any possible footprint from it, so I tried to :
- not store offset in readable form in memory
- not store name of application I'm checking (EQGAME) in readable form in memory
- for each keyread attempt I grant process rights and then revoke, closing all handles, so it is in debug mode for few milisec
Practically, only thing that remained as possible footprint is EQ Key itself. I also do not store old key in readable format in keyreader memory, but .... since we all want to automate key reading, and only way now is using shared folder on Linux ( I used samba) , if SOE wanted to do some (admittedly intrusive) scan of shared folders and subfolders for files 8 bytes long, and check if they contain their current session key, they would be able to draw some conclusions.
So I was thinking if it would be possible to add few things on SEQ side:
1) some 64 bit integer shared key (in seqdef.xml) for keyreader to XOR EQ key before write to file, and SEQ to un-XOR after reading
2) possibility for SEQ to read keydata file in some time interval ( again can be set up in seqdef.xml), and if changed to change its key
3) allow files longer than 8 bytes, random size. SEQ can read 1st 8 bytes, but keyreader can make random size, so SOE can not use file length as search method
4) *optionally* but would be very usable one: if SEQ can detect that current key is working, to ignore step number 2. Or to only timer-read key while not in server/char select screen ( so SEQ does not get wrong key when keyreader send it while on char-select) screen)
- not store offset in readable form in memory
- not store name of application I'm checking (EQGAME) in readable form in memory
- for each keyread attempt I grant process rights and then revoke, closing all handles, so it is in debug mode for few milisec
Practically, only thing that remained as possible footprint is EQ Key itself. I also do not store old key in readable format in keyreader memory, but .... since we all want to automate key reading, and only way now is using shared folder on Linux ( I used samba) , if SOE wanted to do some (admittedly intrusive) scan of shared folders and subfolders for files 8 bytes long, and check if they contain their current session key, they would be able to draw some conclusions.
So I was thinking if it would be possible to add few things on SEQ side:
1) some 64 bit integer shared key (in seqdef.xml) for keyreader to XOR EQ key before write to file, and SEQ to un-XOR after reading
2) possibility for SEQ to read keydata file in some time interval ( again can be set up in seqdef.xml), and if changed to change its key
3) allow files longer than 8 bytes, random size. SEQ can read 1st 8 bytes, but keyreader can make random size, so SOE can not use file length as search method
4) *optionally* but would be very usable one: if SEQ can detect that current key is working, to ignore step number 2. Or to only timer-read key while not in server/char select screen ( so SEQ does not get wrong key when keyreader send it while on char-select) screen)