Okay, first off, do not have them roll perception to see through the illusion unless your players are actively trying to see through it. Players have a passive perception score, which was designed specifically for this purpose. Secondly, there is no way you can hide uses of Detect Magic without hand-waving it once your players question it. However, castings of Detect Magic are, in my personal experience, not very common. My current campaign has had a grand total of two castings of detect magic, and the wizard is level 6. Besides, from the current classes, the bard is the only one that can take that spell, and bards get access to a lot of interesting level 1 spells, and can only choose a limited number of them. The only way to hide magic within range from the caster is the ways outlined in the spell itself. Covering the illusion in a thin sheet of lead, for example, would cover it perfectly. This doesn't help with illusory repairs of buildings, or undead with illusions to make them appear living. I would personally suggest not worrying about it until they actually cast Detect magic. Do keep in mind that Detect Magic has a range of 30 feet, though. They have to be relatively close to the illusion to actually see it. However, the shopkeepers etc. would have both an illusion aura and a necromancy aura, making the fact that they're zombies very obvious if the spell is cast. There is, of course, also the option of creating a new high-level spell that hides the magical auras of anything it is cast on from spells like Detect Magic.