That can be done with mkisofs.
First you mount the iso on a loopback interface. While mounted, you can make changes. Finally, you re-create the bootable iso using mkisofs. You'll need to set the eltorito boot image using the -b flag, eltorito catalog using -c, and several other flags to set up the bootable characteristics of the iso (-no-emul-boot -boot-load-size 4 -boot-info-table -J -R .) from within the mounted iso filesystem.
If you don't have the eltorito boot file, you can extract it from the original iso using dd.
I have yet to be limited by open source. In one case, I found another developer who had the skills to accomplish what I needed, and it only cost $500 and about 4 days to have that additional code written.