Yes, the algorithm ( and its translation in perl or C) can be found on the web ...IMHO, the author of gmaptool should have the skill to decrypt the map level data (read only) and display its content. Maybe for legal or other reasons he/she chose not to decrypt it, so all locked maps will not have this map level data displayed.
I have also tested it in ImgTool but , for legal reasons, I have decided to hide this functionality in the public versions...
There is also a confusion about the terms "locked" and "unlocked".
According to Garmin terminology (as it can be seen in Basecamp for example) :
- a map with a clear (non encrypted) level section is called "Not lockable" : the byte 0xD is set to 0x00 and all devices can display the map.
- a map with an encrypted level section is lockable : for example, if you try to use it in Basecamp , without entering a valid unlock code, the map will be called "Locked" and Basecamp won't display the map, but if you enter a valid unlock code in Basecamp, the map will be called "Unlocked" and Basecamp will fully display it . So, there is no difference between a locked and unlocked map : the data is the same, the img file is the same, the difference is just that , if the rendering engine has the valid unlock code, it would "accept" to decrypt the level section and display the map.
But, when you use an unlocker, you change your map in a "Not lockable" map :the encrypted level section is replaced by a clear ( non encrypted) level section, so thaat all devices and rendering engines can display it.