UMDGen is a GUI program for Windows for modifying PSP ISOs.
You can get UMDGen from the romhacking.net database: http://www.romhacking.net/utilities/1218/
The UMD format is based on the ISO9660 format.
ISO images are arranged by LBA, which is equivalent to a sector on writeable disks. One LBA is 2048 bytes (2kB).
Near the start of the ISO, there is a volume descriptor, path table and directory table. These are indexes that tell the OS where to find data stored on the UMD, by LBA number.
How to Replace a File
First, determine if there's enough space for the file you want to replace. There's enough if available LBAs is >= required LBAs.
Required LBAs: file_size / 2048 if this is an integer. Otherwise, it is this number rounded to the next higher integer.
Available LBAs: Load the ISO in UMDGen. Click layout tab. Note the LBA (position) of the file you want to replace and the file with the next higher LBA. Available LBAs = next file LBA - replace file LBA.
Replace File (enough space)
If there's enough space, this is a quick process.
1) File -> Export file list and pick a file name for it. 2) Navigate to the folder with the file you want to replace. 3) Replace the file by dropping the new file over the old one. 4) File -> Import file list and pick the file list exported in step 1. 5) Save as ISO.
Replace File (not enough space)
Do step 1 above. Open the file list in a text editor, and arrange the files such that there is enough space for the file you want to replace and save it. An easy way is to move the file to the end of the ISO. Follow steps 3, 4 and 5 above, choosing the modified file list in step 4 instead of the originally exported one.