if I remember correctly reading the 32 bytes that contain login code isn't allowed, but whole eeprom is copied to ram where reading is posible. You can read part of eeprom and search the ram to find the copy location, then you can read the missing parts.
That's also the way Lemmiwinks is doing it. Searches the copy of the eeprom in the ram and
then writes the changed adaptation channels into the ram copy. When turning off ignition,
the changes are written back into the eeprom. But I'm not shure if you could update all
locations in the eeprom in this way or if it only works for certain locations like adaptation
chans.
A method to read and write the complete eeprom is to load your own r/w functions into
the ram and link in this code into the message handler. Then you can send your own
diagnostic messages which call your code in the ram and do the reading/writing without
any limitations.