Well it's not makeself that is the problem for me - it's unself - and it's obviously working for some people, just not for me... Unself injects some weird data into the decrypted ELF meaning that I can't edit the eboot.bin correctly and so it's working...
The fact that some people can successfully edit the eboots so they're working and I can't get it to work has me puzzled - I have to assume they're using unself to decrypt as well, so somewhere there's an error in unself (probably not since other people can successfully decrypt), in my use of unself or the keys are incorrect (I highly doubt that since they're grabbed directly from Kakaroto's git).
I ran the VirtualBox PS3L1GHT image provided, and generated an .ELF from NFSHP. I then copied it over to my Windoz host and did a FC /B. They indeed created the same .elf using the win32 tools and the linux tools. I'm stumped.
It's a shame really that no one wants to share how they're succeeding in the decryption part - it's really all I need to get figured out to be able to fix eboots - the modification process is easy... I have a vast game library that I could start work on, and I'd think the few people that actually can decrypt would be swamped and happy for the help.
Alright guys, I've got a step further (maybe you already did this).
The .elf file starts after the offset named in the header length. So when copying each decrypted section (.elf), do so from the [section.header.offset]-[header.length]. The block lengths will be the same. Paste each block to the actual offsets in the EBOOT.
After reading eboot.bin, I see the header length is 0x980. Also, the first encrypted section starts at 0980 for 1033b68 blocks. In the elf file, this block is from 0 to 1033b68 (section header - header length). (It seems the elf file is slightly smaller because unselfing strips the header away) So paste block elf 0-1033b68 to eboot 980-10344e8. Now do the same for the second block. Paste elf 1040000 (1040980-header) through 109fe9c (1040000+length) to eboot 1040980. Make any better sense?
Using this, I compared my fixed nfshp to the downloladed one that I've tested as working, and I now have VERY MINOR DIFFERENCES, so I know I'm on the right track. When using my fixed eboot, the game no longer gives an error, but it just goes back to the XMB after trying to load for several seconds. By comparing the sections of the elf (adjusted for header length) to the sections of the working fixed eboots, I can now see the same data. I am so close now, but I just can't get my damn eboot to work all the way. Hope this helps.