Look at the topology. What you see ?
Eth0 must be physically connected to Internet (ADSL modem?). Do not connect Eth0 to hub.
You need to create bridge and TAP to bridge that upper line (tap/eth/br0') to the VirtualBox guest.
This step is described in chapter: "Intermediate Topic: Networking via Host Bridging" in my guide: http://forgeftp.novell.com/lfl/.html/virtualbox.html
Install your software on the guest. Now you will have Internet in the guest.
Currently your Host is not logically connected to the Internet. Only physically.
Let's connect host now.
You create a second bridge (br1), and two Tunnel AdaPters (TAP) tap1 and tap2. Add tap1 and tap2 to your br1.
This procedure is described too in the guide.
Guest needs to have two virtual NICs, one mapped to Host's tap0 and to tap1 respectively.
Route all your host's traffic via tap2.
Connecting other home computes to your internet:
Eth1 must be physically connected to hub.
Add Eth1 to br1. All other PCs will automatically get their connection (via DHCP).
Step 1. install uml_utilities and bridge-utils packages.
Step 2. Let's build your logical topology: (assuming your eth0 is physically connected to ADSL modem and eth1 is physically connected to hub - ADSL modem and hub must be two separate physical devices, not all-in-one combo)
(-u tux, will means username "tux" - use YOUR username)
# tunctl -t tap0 -u [tux]
# tunctl -t tap1 -u [tux]
# tunctl -t tap2 -u [tux]
# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 tap0
# brctl addbr br1
# brctl addif br1 eth1
# brctl addif br1 tap1
# brctl addif br1 tap2
All logical addresses (IPs) needs to be removed from Host on all interfaces. (taps/bridges/eth's)
-NOTE: If you don't remove IPs from Host, Host will hijack and interfere with your connections.
# ifconfig eth0 0.0.0.0 up
# ifconfig eth1 0.0.0.0 up
# ifconfig tap0 0.0.0.0 up
# ifconfig tap1 0.0.0.0 up
# ifconfig tap2 0.0.0.0 up
# ifconfig br0 0.0.0.0 up
# ifconfig br1 0.0.0.0 up
NOTE2: This configuration is temporal, and will lost after you restart your host PC. Good for testing, but not for work.
Step 3. Create VirtualBox VM with two NICs (Network Interface Cards), one mapped to Host's tap0, and other mapped to host's tap1.
Start it with Windows guest, install your software, and use Windows "Internet Connection Sharing (ICS)", to share your internet.
tap2 will be the adapter, that Host uses for his networking.
# dhcpcd tap2
Finally, route all your host's traffic via tap2.
# route add -net 0.0.0.0 gw [192.168.0.1] dev tap2
NOTE1:maybe this last step won't be needed, because DHCPcd may modify your routing tables already, not sure about this - don't use this if not necessary.
NOTE2: gw is gateway, or in your case - your Windows guest's IP.