Coding for Penetration Testers: Building Better Tools