They probably do this with the help of Blizzard Warden and wrobot leaves a unique signature that is the same for everyone with bot . I recommend creating a random fake hash report on running processes and not the static warden defaulting by wrobot .
and other more randomized the combat rotations (wrotation) .
from chat bot ( how detect wow bots ) :
Detection Methods
Behavioral Analysis
Monitor movement patterns for repetitive, non-human-like behavior (perfect straight lines, identical timing intervals)
Track combat patterns that are too consistent or optimal for human players
Look for players who never take breaks or play for impossibly long periods
Check for instant reactions that are faster than human response times
Technical Detection
Implement CAPTCHA challenges during gameplay at random intervals
Monitor memory access patterns and detect common bot injection methods
Check for multiple clients running from the same IP address
Analyze network traffic patterns for automated requests
Statistical Monitoring
Track experience/gold gain rates that exceed normal human capabilities
Monitor auction house activity for repetitive buying/selling patterns
Flag accounts with unusual progression speeds or resource accumulation
Prevention Measures
Server-Side Protection
Implement Warden-like anti-cheat systems that scan client memory
Add randomized server delays to disrupt bot timing
Use hardware fingerprinting to detect multiple accounts from same machine
Implement rate limiting on certain actions (looting, crafting, etc.)
Active Monitoring
Set up automated alerts for suspicious activity patterns
Have GMs periodically test suspected bots with direct interaction
Monitor popular botting locations more closely
Track players who ignore chat or don't respond to GM messages