load into and use Shell in
then run the following
cd /system/bin
cat btld_testmode > ../btld_testmode (this backs up the file)
cat sh >> btld_testmode (we append it first, don't know why, but we cant just overwrite it at first)
cat sh > btld_testmode (overwrite it)
Now, it lost is setuid. but that is fine, the factorytest.rc will restore it. so reboot the phone, reloading .
cd /system/bin
./btld_testmode
Now you are in a root shell, you know what to do
cat sh > su
chmod 4755 su
exit
./su
Now we will put btld_testmode back.
cat ../btld_testmode > btld_testmode
chmod 6777 btld_testmode
Currently the su looses it's setuid on reboot, so it is not permanent.
Still working on that.
Edit: it seems all permissions get reset, then are set up by the init script.
Sadly, we can't overwrite the init script because changes in / do not persist.
All we can use this for is flashing, unless we find another way to persist our setuid...
But hey, at least we have a root shell! It is a start

More here, including a trick to guarantee test mode will activate:
http://midnightchannel.net/blog/255-how-to-root-the-samsung-moment.htmlImportant Update:hokansoc warns:
Just wanting to warn everyone... TRY THIS AT YOUR OWN RISK.
All it takes is skipping one step to brick your phone. Specifically this step
"Now we will put btld_testmode back.
cat ../btld_testmode > btld_testmode
chmod 6777 btld_testmode"
Now personally, mine is still sh, and I have had no problems, however, Decepticrock notes:
I'm not sure what btld_testmode is for but I didn't have a problem skipping that step. Still curious what that program is for.
Nevermind, this appears to be bluetooth related.
Now, I don't use Bluetooth on my phone, so perhaps an important step before rooting is to disable bluetooth?