I found this mod years ago that works well. Most of my spammers use one name with no space. eg: "JohnDoe" instead of "John Doe".
This mod catches 98%of them by preventing names without a space.
mysite\oc-includes\osclass\UserActions.php
Line 63 right after " $input = $this->prepareData(true);
ADD
//-- spam code --
$str = $input["s_name"];
$pattern = "/\w+\s{1}\w+/"; // set up a regex to check for certain input reqruiments.
$validname = 0;
$validname = preg_match($pattern, $str);
if ($validname == 0) {
$flash_error .= _m('The name is not valid') . PHP_EOL;
$error[] = 10;
}
//-- end spam
Works like a champ.