This term was once used to describe a clever programmer.

In recent years, this term has been applied to those who exploit security vulnerabilities to try and break into a computer system.

Originally, those who break into computer systems (for malicious purposes or as a challenge) were known as ‘crackers’.