Top 10 Free Photo Recovery Software That Can Restore Deleted or Corrupted Images

Photos serve as memories of the past. You may save them on your computer, memory card, flash drive or even burn them on a disc. If these images get accidentally deleted or corrupted, you can still restore them by using a free photo recovery software. Yes, there are applications that you can use without a cost that can help restore your lost images. Some of these programs may also restore other files including documents, video and audio files.

10. MjM Free Photo Recovery

10. MjM Free Photo Recovery

MjM Free Photo Recovery is an easy to use application for restoring accidentally deleted images or photos from a portable storage that was reformatted. You don’t have to cry over pictures that you accidentally deleted as MjM can recover them for you. It works on portable storage like memory cards and flash drives. It does not work on hard drives so you may need to use another program if you are trying to recover photos saved on your computer. It is also limited on recovering jpeg files only. It cannot restore those that have different formats. But for jpeg images on portable storage, this application can efficiently recover all deleted photos.

9. ZAR (Zero Assumption Recovery)

9. ZAR (Zero Assumption Recovery)

Zero Assumption Recovery or ZAR is an application used for the recovery of data that was accidentally deleted or corrupted on the computer or external storage. This is available for $59.95. However, there is a free version of ZAR that lets you recover images that were deleted from the memory of a digital camera. Install the application and choose Image Recovery (Free) for the recovery option. You can then use it to restore photos from the selected storage. You can recover all photos found or select specific images you wish to restore.

8. Greenfish DataMiner

8. Greenfish DataMiner

This is a free recovery software that can restore data including photos, video or audio files on CD or DVD. If you saved important images on a CD or DVD but you cannot access them for some reason, you can use Greenfish DataMiner to recover your data. This is a small but powerful application that works effectively without taking much of your system resources. Insert the disc and use the application to recover its content. A copy of the recovered files will be saved on your computer. They can also be burned into a disc as an ISO image is saved. You may copy all recovered files or select only those that you need.

7. PicaJet Photo Recovery

7. PicaJet Photo Recovery

PicaJet Photo Recovery is an efficient tool in recovering accidentally deleted images from almost all kinds of external storage such as memory cards and USB sticks. It has a simple graphical user interface. It is straightforward so you don’t need to be a computer geek to use it. Start the application, select the drive and the directory on where the recovered files will be saved then click the Start button. It will start the image recovery process. Click on the recovered image to get a preview of the files.

6. Art Plus Digital Photo Recovery

6. Art Plus Digital Photo Recovery

You can download the free trial version of this application. But for full and unlimited access, you may get it for $24.95. It can recover photos from all types of memory cards, whether they are cards used on digital cameras or mobile devices. If your memory card is not read when connecting it to the computer or on your own device, it can still be detected by Art Plus Digital Photo Recovery. It can recover photos of various file formats including JPEG, PNG and TIF images.

5. CardRecovery

5. CardRecovery

This is one of the widely used recovery applications. It does not just recover photos from memory cards and flash drives, it also restore deleted, corrupted or lost videos. Take advantage of the free trial to see how efficient this program is. It can find images that cannot be restored by ordinary applications. It supports various image formats like TIF, JPEG and JPG, as well as video formats including MPEG, MP4, AVI, MTS, MOV, 3GP, ASF and MPG.

4. Pandora Recovery

4. Pandora Recovery

Pandora Recovery is a helpful application for restoring lost or deleted files from your computer. You need another drive or storage to transfer the recovered files. Running the program is easy as it comes with a recovery wizard that will guide on the step by step process of the restoration. As long as the images are not severely damaged, there is a big chance that the program can still restore them.

3. PC Inspector File Recovery

3. PC Inspector File Recovery

This program recovers data including images, documents, audio and video files on your computer. However, the disk should still be readable for it to run. It supports various formats including JPG, GIF, PDF, ZIP, MOV, PNG and MP3. The original date and time stamp of the files will also be restored. If your files were corrupted, there is no need to fret as this program can recover them for you.

2. FlashPhoenix Photo Recovery

2. FlashPhoenix Photo Recovery

Phoenix Photo Recovery lets you recover photos and other files that were accidentally deleted or lost on all kinds memory cards. It has an intuitive user interface that would immediately tell you what needs to be done to restore files. Select the drive that you wish to scan and click next. The application will scan the selected drive and give you the preview of files that were restored. Scanning and restoring of files is for free. However, if you wish to save the recovered files, you need to purchase the full application for $49.50. Though it requires for a purchase before saving the files, you can be sure that your images are recovered before spending anything.

1. Recuva

1. Recuva

This is one of the top photo recovery applications that you can get at no cost. It is fast and efficient in searching and restoring files. It can find deleted or lost photos from your computer, digital camera, flash drive and memory cards. Select the drive that you wish to check and start the scan. Recuva will show the filename, path, date last modified, size, as well as the current status of the files. Select all or choose specific files to restore.

 

20 Linux Server Hardening Security Tips

In Flight Linux

In Flight Linux (Photo credit: John C Abell)

Securing your Linux server is important to protect your data, intellectual property, and time, from the hands of crackers (hackers). The system administrator is responsible for security Linux box. In this first part of a Linux server security series, I will provide 20 hardening tips for default installation of Linux system.

#1: Encrypt Data Communication

All data transmitted over a network is open to monitoring. Encrypt transmitted data whenever possible with password or using keys / certificates.

  1. Use scp, ssh, rsync, or sftp for file transfer. You can also mount remote server file system or your own home directory using special sshfs and fuse tools.
  2. GnuPG allows to encrypt and sign your data and communication, features a versatile key managment system as well as access modules for all kind of public key directories.
  3. Fugu is a graphical frontend to the commandline Secure File Transfer application (SFTP). SFTP is similar to FTP, but unlike FTP, the entire session is encrypted, meaning no passwords are sent in cleartext form, and is thus much less vulnerable to third-party interception. Another option is FileZilla – a cross-platform client that supports FTP, FTP over SSL/TLS (FTPS), and SSH File Transfer Protocol (SFTP).
  4. OpenVPN is a cost-effective, lightweight SSL VPN.
  5. Lighttpd SSL (Secure Server Layer) Https Configuration And Installation
  6. Apache SSL (Secure Server Layer) Https (mod_ssl) Configuration And Installation

#1.1: Avoid Using FTP, Telnet, And Rlogin / Rsh

Under most network configurations, user names, passwords, FTP / telnet / rsh commands and transferred files can be captured by anyone on the same network using a packet sniffer. The common solution to this problem is to use either OpenSSH , SFTP, or FTPS (FTP over SSL), which adds SSL or TLS encryption to FTP. Type the following command to delete NIS, rsh and other outdated service:
# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

#2: Minimize Software to Minimize Vulnerability

Do you really need all sort of web services installed? Avoid installing unnecessary software to avoid vulnerabilities in software. Use the RPM package manager such as yum or apt-get and/or dpkg to review all installed set of software packages on a system. Delete all unwanted packages.
# yum list installed
# yum list packageName
# yum remove packageName

OR
# dpkg --list
# dpkg --info packageName
# apt-get remove packageName

#3: One Network Service Per System or VM Instance

Run different network services on separate servers or VM instance. This limits the number of other services that can be compromised. For example, if an attacker able to successfully exploit a software such as Apache flow, he / she will get an access to entire server including other services such as MySQL, e-mail server and so on. See how to install Virtualization software:

#4: Keep Linux Kernel and Software Up to Date

Applying security patches is an important part of maintaining Linux server. Linux provides all necessary tools to keep your system updated, and also allows for easy upgrades between versions. All security update should be reviewed and applied as soon as possible. Again, use the RPM package manager such as yum and/or apt-get and/or dpkg to apply all security updates.
# yum update
OR
# apt-get update && apt-get upgrade
You can configure Red hat / CentOS / Fedora Linux to send yum package update notification via email. Another option is to apply all security updates via a cron job. Under Debian / Ubuntu Linux you can use apticron to send security notifications.

#5: Use Linux Security Extensions

Linux comes with various security patches which can be used to guard against misconfigured or compromised programs. If possible use SELinux and other Linux security extensions to enforce limitations on network and other programs. For example, SELinux provides a variety of security policies for Linux kernel.

#5.1: SELinux

I strongly recommend using SELinux which provides a flexible Mandatory Access Control (MAC). Under standard Linux Discretionary Access Control (DAC), an application or process running as a user (UID or SUID) has the user’s permissions to objects such as files, sockets, and other processes. Running a MAC kernel protects the system from malicious or flawed applications that can damage or destroy the system. See the official Redhat documentation which explains SELinux configuration.

#6: User Accounts and Strong Password Policy

Use the useradd / usermod commands to create and maintain user accounts. Make sure you have a good and strong password policy. For example, a good password includes at least 8 characters long and mixture of alphabets, number, special character, upper & lower alphabets etc. Most important pick a password you can remember. Use tools such as “John the ripper” to find out weak users passwords on your server. Configure pam_cracklib.so to enforce the password policy.

#6.1: Password Aging

The chage command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change his/her password. The /etc/login.defs file defines the site-specific configuration for the shadow password suite including password aging configuration. To disable password aging, enter:
chage -M 99999 userName
To get password expiration information, enter:
chage -l userName
Finally, you can also edit the /etc/shadow file in the following fields:

{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:

Where,

  1. Minimum_days: The minimum number of days required between password changes i.e. the number of days left before the user is allowed to change his/her password.
  2. Maximum_days: The maximum number of days the password is valid (after that user is forced to change his/her password).
  3. Warn : The number of days before password is to expire that user is warned that his/her password must be changed.
  4. Expire : Days since Jan 1, 1970 that account is disabled i.e. an absolute date specifying when the login may no longer be used.

I recommend chage command instead of editing the /etc/shadow by hand:
# chage -M 60 -m 7 -W 7 userName
Recommend readings:

#6.2: Restricting Use of Previous Passwords

You can prevent all users from using or reuse same old passwords under Linux. The pam_unix module parameter remember can be used to configure the number of previous passwords that cannot be reused.

#6.3: Locking User Accounts After Login Failures

Under Linux you can use the faillog command to display faillog records or to set login failure limits. faillog formats the contents of the failure log from /var/log/faillog database / log file. It also can be used for maintains failure counters and limits.To see failed login attempts, enter:
faillog
To unlock an account after login failures, run:
faillog -r -u userName
Note you can use passwd command to lock and unlock accounts:
# lock account
passwd -l userName
# unlocak account
passwd -u userName

#6.4: How Do I Verify No Accounts Have Empty Passwords?

Type the following command
# awk -F: '($2 == "") {print}' /etc/shadow
Lock all empty password accounts:
# passwd -l accountName

#6.5: Make Sure No Non-Root Accounts Have UID Set To 0

Only root account have UID 0 with full permissions to access the system. Type the following command to display all accounts with UID set to 0:
# awk -F: '($3 == "0") {print}' /etc/passwd
You should only see one line as follows:

root:x:0:0:root:/root:/bin/bash

If you see other lines, delete them or make sure other accounts are authorized by you to use UID 0.

#7: Disable root Login

Never ever login as root user. You should use sudo to execute root level commands as and when required. sudo does greatly enhances the security of the system without sharing root password with other users and admins. sudo provides simple auditing and tracking features too.

#8: Physical Server Security

You must protect Linux servers physical console access. Configure the BIOS and disable the booting from external devices such as DVDs / CDs / USB pen. Set BIOS and grub boot loader password to protect these settings. All production boxes must be locked in IDCs (Internet Data Center) and all persons must pass some sort of security checks before accessing your server. See also:

#9: Disable Unwanted Services

Disable all unnecessary services and daemons (services that runs in the background). You need to remove all unwanted services from the system start-up. Type the following command to list all services which are started at boot time in run level # 3:
# chkconfig --list | grep '3:on'
To disable service, enter:
# service serviceName stop
# chkconfig serviceName off

#9.1: Find Listening Network Ports

Use the following command to list all open ports and associated programs:
netstat -tulpn
OR
nmap -sT -O localhost
nmap -sT -O server.example.com

Use iptables to close open ports or stop all unwanted network services using above service and chkconfig commands.

#9.2: See Also

#10: Delete X Windows

X Windows on server is not required. There is no reason to run X Windows on your dedicated mail and Apache web server. You can disable and remove X Windows to improve server security and performance. Edit /etc/inittab and set run level to 3. Finally, remove X Windows system, enter:
yum groupremove "X Window System"

#11: Configure Iptables and TCPWrappers

Iptables is a user space application program that allows you to configure the firewall (Netfilter) provided by the Linux kernel. Use firewall to filter out traffic and allow only necessary traffic. Also use the TCPWrappers a host-based networking ACL system to filter network access to Internet. You can prevent many denial of service attacks with the help of Iptables:

#12: Linux Kernel /etc/sysctl.conf Hardening

/etc/sysctl.conf file is used to configure kernel parameters at runtime. Linux reads and applies settings from /etc/sysctl.conf at boot time. Sample /etc/sysctl.conf:

# Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0
# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1

#13: Separate Disk Partitions

Separation of the operating system files from user files may result into a better and secure system. Make sure the following filesystems are mounted on separate partitions:

  • /usr
  • /home
  • /var and /var/tmp
  • /tmp

Create septate partitions for Apache and FTP server roots. Edit /etc/fstab file and make sure you add the following configuration options:

  1. noexec – Do not set execution of any binaries on this partition (prevents execution of binaries but allows scripts).
  2. nodev – Do not allow character or special devices on this partition (prevents use of device files such as zero, sda etc).
  3. nosuid – Do not set SUID/SGID access on this partition (prevent the setuid bit).

Sample /etc/fstab entry to to limit user access on /dev/sda5 (ftp server root directory):

/dev/sda5  /ftpdata          ext3    defaults,nosuid,nodev,noexec 1 2

#13.1: Disk Quotas

Make sure disk quota is enabled for all users. To implement disk quotas, use the following steps:

  1. Enable quotas per file system by modifying the /etc/fstab file.
  2. Remount the file system(s).
  3. Create the quota database files and generate the disk usage table.
  4. Assign quota policies.
  5. See implementing disk quotas tutorial for further details.

#14: Turn Off IPv6

Internet Protocol version 6 (IPv6) provides a new Internet layer of the TCP/IP protocol suite that replaces Internet Protocol version 4 (IPv4) and provides many benefits. Currently there are no good tools out which are able to check a system over network for IPv6 security issues. Most Linux distro began enabling IPv6 protocol by default. Crackers can send bad traffic via IPv6 as most admins are not monitoring it. Unless network configuration requires it, disable IPv6 or configure Linux IPv6 firewall:

#15: Disable Unwanted SUID and SGID Binaries

All SUID/SGID bits enabled file can be misused when the SUID/SGID executable has a security problem or bug. All local or remote user can use such file. It is a good idea to find all such files. Use the find command as follows:
#See all set user id files:
find / -perm +4000
# See all group id files
find / -perm +2000
# Or combine both in a single command
find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls

You need to investigate each reported file. See reported file man page for further details.

#15.1: World-Writable Files

Anyone can modify world-writable file resulting into a security issue. Use the following command to find all world writable and sticky bits set files:
find /dir -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
You need to investigate each reported file and either set correct user and group permission or remove it.

#15.2: Noowner Files

Files not owned by any user or group can pose a security problem. Just find them with the following command which do not belong to a valid user and a valid group
find /dir -xdev \( -nouser -o -nogroup \) -print
You need to investigate each reported file and either assign it to an appropriate user and group or remove it.

#16: Use A Centralized Authentication Service

Without a centralized authentication system, user auth data becomes inconsistent, which may lead into out-of-date credentials and forgotten accounts which should have been deleted in first place. A centralized authentication service allows you maintaining central control over Linux / UNIX account and authentication data. You can keep auth data synchronized between servers. Do not use the NIS service for centralized authentication. Use OpenLDAP for clients and servers.

#16.1: Kerberos

Kerberos performs authentication as a trusted third party authentication service by using cryptographic shared secret under the assumption that packets traveling along the insecure network can be read, modified, and inserted. Kerberos builds on symmetric-key cryptography and requires a key distribution center. You can make remote login, remote copy, secure inter-system file copying and other high-risk tasks safer and more controllable using Kerberos. So, when users authenticate to network services using Kerberos, unauthorized users attempting to gather passwords by monitoring network traffic are effectively thwarted. See how to setup and use Kerberos.

#17: Logging and Auditing

You need to configure logging and auditing to collect all hacking and cracking attempts. By default syslog stores data in /var/log/ directory. This is also useful to find out software misconfiguration which may open your system to various attacks. See the following logging related articles:

  1. Linux log file locations.
  2. How to send logs to a remote loghost.
  3. How do I rotate log files?.
  4. man pages syslogd, syslog.conf and logrotate.

#17.1: Monitor Suspicious Log Messages With Logwatch / Logcheck

Read your logs using logwatch or logcheck. These tools make your log reading life easier. You get detailed reporting on unusual items in syslog via email. A sample syslog report:

 ################### Logwatch 7.3 (03/24/06) ####################
        Processing Initiated: Fri Oct 30 04:02:03 2009
        Date Range Processed: yesterday
                              ( 2009-Oct-29 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: www-52.nixcraft.net.in
  ##################################################################
 --------------------- Named Begin ------------------------
 **Unmatched Entries**
    general: info: zone XXXXXX.com/IN: Transfer started.: 3 Time(s)
    general: info: zone XXXXXX.com/IN: refresh: retry limit for master ttttttttttttttttttt#53 exceeded (source ::#0): 3 Time(s)
    general: info: zone XXXXXX.com/IN: Transfer started.: 4 Time(s)
    general: info: zone XXXXXX.com/IN: refresh: retry limit for master ttttttttttttttttttt#53 exceeded (source ::#0): 4 Time(s)
 ---------------------- Named End -------------------------
  --------------------- iptables firewall Begin ------------------------
 Logged 87 packets on interface eth0
   From 58.y.xxx.ww - 1 packet to tcp(8080)
   From 59.www.zzz.yyy - 1 packet to tcp(22)
   From 60.32.nnn.yyy - 2 packets to tcp(45633)
   From 222.xxx.ttt.zz - 5 packets to tcp(8000,8080,8800)
 ---------------------- iptables firewall End -------------------------
 --------------------- SSHD Begin ------------------------
 Users logging in through sshd:
    root:
       123.xxx.ttt.zzz: 6 times
 ---------------------- SSHD End -------------------------
 --------------------- Disk Space Begin ------------------------
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             450G  185G  241G  44% /
 /dev/sda1              99M   35M   60M  37% /boot
 ---------------------- Disk Space End -------------------------
 ###################### Logwatch End #########################

(Note output is truncated)

#17.2: System Accounting with auditd

The auditd is provided for system auditing. It is responsible for writing audit records to the disk. During startup, the rules in /etc/audit.rules are read by this daemon. You can open /etc/audit.rules file and make changes such as setup audit file log location and other option. With auditd you can answers the following questions:

  1. System startup and shutdown events (reboot / halt).
  2. Date and time of the event.
  3. User respoisble for the event (such as trying to access /path/to/topsecret.dat file).
  4. Type of event (edit, access, delete, write, update file & commands).
  5. Success or failure of the event.
  6. Records events that Modify date and time.
  7. Find out who made changes to modify the system’s network settings.
  8. Record events that modify user/group information.
  9. See who made changes to a file etc.

See our quick tutorial which explains enabling and using the auditd service.

#18: Secure OpenSSH Server

The SSH protocol is recommended for remote login and remote file transfer. However, ssh is open to many attacks. See how to secure OpenSSH server:

#19: Install And Use Intrusion Detection System

A network intrusion detection system (NIDS) is an intrusion detection system that tries to detect malicious activity such as denial of service attacks, port scans or even attempts to crack into computers by monitoring network traffic.

It is a good practice to deploy any integrity checking software before system goes online in a production environment. If possible install AIDE software before the system is connected to any network. AIDE is a host-based intrusion detection system (HIDS) it can monitor and analyses the internals of a computing system.

Snort is a software for intrusion detection which is capable of performing packet logging and real-time traffic analysis on IP networks.

#20: Protecting Files, Directories and Email

Linux offers excellent protections against unauthorized data access. File permissions and MAC prevent unauthorized access from accessing data. However, permissions set by the Linux are irrelevant if an attacker has physical access to a computer and can simply move the computer’s hard drive to another system to copy and analyze the sensitive data. You can easily protect files, and partitons under Linux using the following tools:

#20.1: Securing Email Servers

You can use SSL certificates and gpg keys to secure email communication on both server and client computers:

Other Recommendation:

Recommend readings:

  1. Red Hat Enterprise Linux – Security Guide.
  2. Linux security cookbook– A good collections of security recipes for new Linux admin.
  3. Snort 2.1 Intrusion Detection, Second Edition – Good introduction to Snort and Intrusion detection under Linux.
  4. Hardening Linux – Hardening Linux identifies many of the risks of running Linux hosts and applications and provides practical examples and methods to minimize those risks.
  5. Linux Security HOWTO.

In the next part of this series I will discuss how to secure specific applications (such as Proxy, Mail, LAMP, Database) and a few other security tools. Did I miss something? Please add your favorite system security tool or tip in the comments.

Share Files and Printers between Windows 7 and XP

If you have a home network and are running Windows 7 and have XP on other PC(s) you might want to share files between them.  Today we will look at the steps to share files and hardware devices like a printer.

Sharing Files In Windows 7 and XP

Sharing folders between two Windows 7 machines with the new HomeGroup feature is an easy process, but the HomeGroup feature is not compatible with Vista or XP.  For this tutorial we are using Windows 7 x64 RC1 and XP Professional SP3 connected through a basic Linksys home wireless router.

First make sure both machines are members of the same Workgroup which by default is named Workgroup.

workgroup

 

 

On the Windows 7 machine go into Control Panel \ All Control Panel Items \ Network and Sharing Center then click on Change advanced sharing settings.

network and sharing

advanced

You will want to verify the following settings under Advanced Sharing Settings for the Home or Work and Public profile.

home or work settings

If you want any user to have access the public shares turn off password protection.  This is located in Advanced Sharing Settings toward the bottom of the list.

turn off pw

If you want to keep it enabled make sure there is a log in account for the other XP machines and they have a password.

create pw

Now if you go into Network in Windows 7 you should see your XP machine and the Windows 7 as well which in this case is Mysticgeek-PC.

Explorer

To share the printer on the Windows 7 machine go into Devices and Printers from the Start menu and double click on the printer icon.

devices

Next double click on “Customize your printer”.

1 Printer

In the Properties screen click on the Sharing Tab and check the box to share the printer and type in its share name.

2 printer share

If your XP machine is an x86 OS you can install Additional Drivers before setting up the XP machine.

3 Printer add drivers

To find the shared folders and devices double click on the Windows 7 machine icon under Network.  Here you can see the printer connected to my Windows 7 machine is shared and also the Users Folder.

shared device and users

Continue into the Users folder and Public to see the shared folders, here I also created a folder called XP Share just to keep everything in central location.

xpshare

Over on your XP machine open up My Network Places to find the Windows 7 (mysticgeek-pc) shared folder.

My Network Places

Double click on the Share folder to find a list of shared folders in the Public folder on Windows 7.  If you have password protection enabled you will need to type in the username and password of the user account on the Windows 7 machine first.

folders

Setup XP With Shared Printer

To set up the shared printer in XP you will need to go into Printers and Faxes from the Start menu and kick off the Add Printer Wizard.

add Printer

Now select “A network printer, or a printer attached to another computer” then hit Next.

network option

Next select “Connect to this printer…” and type in the path for the printer connected to the Windows 7 machine and click next.  

print

Now click Yes to the confirmation message.

confirm msg

Then click Finish the printer to install and complete the Wizard.

Complete

In some cases you will need to install the x86 XP drivers for the shared printer because the Windows 7 drivers are not compatible with XP.  When everything is installed open up Printers and Faxes to find the shared printer.

in explorer

This should help you get started with sharing your files and other devices with your Windows 7 machine.  When I first started I was able to see the printer on XP right away because I had a HomeGroup set up, but once I deleted it I needed to share the printer like you would for a workgroup.  You might also have to do a couple restarts of the XP machine for it to see the shared resources on Windows 7.  If you have had any experiences with sharing between Windows 7 and XP leave us a comment!