From the command line you can create a system dump using the following command
tar -cvf /sdcard/system.tgz /system
assuming both /sdcard and /system are mounted. you may have to use "busybox tar" instead.
You can run it from recovery mode.
To mount the filesystems while in adb shell use
"mount /dev/block/mtdblock4 /system" to mount system
"mount /dev/block/mmcblk0p1 /sdcard" to mount sdcard
As for making an update.zip you can take an existing one and replace the system directory inside it with your own custom one. Rezip it, no need to resign it for the EVO recovery, and flash away. Oh, and you'll have to delete any symlinks from the /system/bin directory inside the zip before flashing.