First of all (giving the answers from bottom to top):
Febs, it sure wasn't my intention to do something illegally or getting you guys in trouble. I was just listing options that I could think of and got a reply.
Bluebrother, I already did try wine. Maybe I have a rather old version of this thing here at my old SuSE box. It just didn't work.
Mr_Rabid_Teddybear: Thanks a lot for your offer. I guess I'll try out the very first suggestion first, or rather I already did.

nls: Thanks a lot for the suggestion. Building the tools was quite easy after I edited the Makefile slightly to have it use the right compiler. Using the tools at the original image H300.hex provided me finally with a new one. It just troubles me that the size is so much different:
-rw-r--r-- 2626559 Mar 14 19:26 H300.hex (old)
-rw-r--r-- 4189157 Mar 14 19:29 H300.hex (new)That's over 1M more. The bootloader is only 50k in size. Is this a normal behaviour? Could I have made a mistake while compiling/using the tools?
Here's what I did and the output of the tools:
# ./descramble -iriver ../../H300.hex H300
Model H300 series
File decoded correctly and all checksums matched!
Output file contains all headers and checksums
# ./mkboot -h300 H300 ../../bootloader-h300.bin test
Wrote 0x3febe5 bytes in test
# ./scramble -iriver test H300.hex
Model H300 series
File encoded successfully and checksum table built!By the way... I hacked the tool "romsizetest.pl" slightly to also give me a positive message. Here's what I got:
Added to the code:
else {
printf "Everything in order. There still are %d bytes left.\n",$max-$file;
}
H300.hex (original version):
Everything in order. There still are 262144 bytes left.H300.hex (patched version):
Everything in order. There still are 262144 bytes left.Amazingly, there's no difference between the numbers.
Now I'm sitting here looking at that rather large file, not really knowing wether it's save to update the player with it.