You need an OBD II device, plus an interface tool that can write to the CANbus (the GMLAN doesn't have any security protocols, so you don't need a password to get write permissions).

The code is written in C++ but all of the data is done in HEX.

Ehh not quite Nearly module on the bus is secured. You can't just go willy nilly throwing data at it you need to figure out the security algo and then a boot loader for it and in the radios case there are multiple boot loaders and access methods depending on which parts you want to change. This isn't even getting into the actual unit OS that is only writeable by USB (can you imagine loading GIGS of data for an update over 33K SWCAN?!)