This is really cool. I'm surprised just finding common substrings through evolution works so well. Wouldn't just using the existing substrings in a dictionary work better than mutating new and random ones?
And is it really moral to do this? The only applications of this are pretty unethical.