There are several anti-debugging approaches which the malware business is using.
Often it is very difficult to analyse the malware, cause your reversing tools are recognized by the evil malware samples.

A very nice way is to use a low-level approach by using hardware virtualization.

click here for paper and source