Duda para modificar firmware

Buenas, me gustaría modificar el contenido de la rom de un pic 16f54 que me vino con una pantalla lcd por ebay en concreto de sure-electronics el modelo parece ser DE-LD007V200 que es una demo de pantallas lcd 20x4 de la web www.sure-electronics.com (comprado a traves de ebay) tiene usb puerto icsp y luego la conexion serial para las pantallas asi como potenciometro de ajuste para el contraste. dispongo de programador usb pero el caso es que solo veo el archivo leído por el programador en formato hexa y claro no puedo modificar el texto como quiero.

os pongo el codigo hexa ya que la informacion que me ofrece el programador no puedo copiarla para pegarla aqui.

:10000000FB0F3B0B10023000B002220048086108D1
:10001000760865082008460875086E082008570805
:1000200069087408680820085508730800084D0816
:100030006F08720865082008530875087208700870
:10004000720869087A0865087308200800085308D0
:10005000750872086508200845086C08650863087B
:10006000740872086F086E0869086308730800084E
:10007000560845085208200831082E0830080008A4
:10008000F30AF70AFA0AFE0A010B050B090B0C0B1F
:10009000150B180B210B240B2D0B300B390BE30A1E
:1000A000DC0ACF0A3E0B410B440B4D0B530B560B96
:1000B0005F0B650B680B710B740B7D0B830B860B51
:1000C0008F0B950B980BA10BA70BAA0BAD0BB00BCD
:1000D000B30BB70BBA0BC30BCD0BDD0BE60BD10B80
:1000E000D40BFF0FFF0FFF0FFF0FFF0FFF0FFF0FCF
:1000F000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F90
:10010000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F7F
:10011000FF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0F6F
:10012000FF0FFF0FFF0F000C0600050045040A0239
:10013000020A2E00000C06000505250445050E02E6
:10014000260045040D02020A2C00000C06000504DE
:10015000250445050C02260045040B02020A2B006B
:10016000000C06000504250445050B02800D260041
:1001700045040A02020AFF0C060005042505450590
:1001800006022E004504EE07C70A010C2700C80A24
:1001900067000D02020A6B006C00500C2D00F10B81
:1001A000AB024306AC02000C8C00780C43068B00BB
:1001B0000307CC0A0A02020A2C00EB00CB03E00A78
:1001C000EE0A4E0C2D00BA0A070268000801430728
:1001D000E00A4F0C2D00AC02CC000409980A0A0278
:1001E000020A3F0C2D00F10B400C2B003F0CA30A20
:1001F000410C2D00F10B420C2B003F0CA30A430CC9
:100200002D00F10B440C2B003F0CA30A450C2B00D6
:100210003B0CA30A460C2D00BA0A0702680008012D
:100220004307090B470C2B000C0CA30A480C2D00AC
:10023000BA0A0702680008014307150B490C2B0096
:10024000010CA30A4A0C2D00BA0A07026800080133
:100250004307210B4B0C2B00030CA30A4C0C2D0065
:10026000BA0A07026800080143072D0B4D0C2B004A
:10027000060CA30A0A02020A510C2A00920A520C26
:100280002A00F00A530C2D00BA0A07026800080180
:100290004307410B540C2A00000CAE0A100C2B0033
:1002A000550C2A00050CDB0A560C2D00BA0A070271
:1002B000680008014307530B570C2A00180CAE0ABC
:1002C0000F0C2B00580C2A00160CDB0A590C2D00C1
:1002D000BA0A0702680008014307650B5A0C2D0093
:1002E000400C980A5B0C2D00BA0A0702680008014E
:1002F0004307710B5C0C2A00400CAE0A070C2B0064
:100300005D0C2A000E0CDB0A5E0C2D00BA0A0702F7
:10031000680008014307830B5F0C2D00200C980A2E
:10032000080C2B00600C2A00050CDB0A610C2D0068
:10033000BA0A0702680008014307950B620C2A00FD
:10034000580CAE0A100C2B00630C2A00260CDB0A9A
:10035000640C2A00CA0A650C2A00CA0A660C2A0024
:10036000CA0A670C2A00CA0A6900680C2A00F00A47
:10037000690C2D00BA0A0702680008014307B70B91
:100380006A0C2A00000CAE0A100C27000902870034
:100390002B006B0C2A00260CC901DB0A070C890014
:1003A0000307DA0B6F0C2A00CA0AA902100C890095
:1003B0000307B40BF00B6C0C2D00BA0A070268009F
:1003C00008014307DA0B6D0C2A00400CAE0A070C3B
:1003D0002700090287002B006E0C2A00370CC90188
:1003E000DB0A000A6E006F00AE024306AF02030C88
:1003F0008F00340C43068E000307F30B0D02020A34
:02400E00480860
:00000001FF

mi intencion es modificar el contenido en cualquier programa sease mplab arduino o cualquiera que acepte el archivo formato .hex

gracias

Una vez compilado un programa no se puede volver al codigo fuente con el cual se creo.

Saludos.

en modo ensamblador si se puede pero ya te las verás tu para entenderlo ... no esperes etiquetas ni nada parecido :D vamos tarea de chinos decodificar lo que hace el programa.

saludos