Зачастую, человек не сведущий в программировании врядли заметит "бяку" в скриптах. Полагаться на программные средства нельзя, т.к. они отловят только самые бородатые вкрапления бэкдоров и шеллов, причем те, которые не подвергались модификации.
Предлагаю простую логику проверки, но предупреждаю, что знания рассматриваемого скрипта необходимы, иначе все в пустую.
0 этап. Прогоняем известными нам антивирями. Эффективно так же прогнать через линуксовый ClamAV.
1. Самое безобидное что может быть -- это встраивание скрытых ссылок на сторонние ресурсы.
Цель: повысить кол-во ссылающихся доменов на целевые страницы(сайты), тем самым поднять рейтинг у поисковиков.
Решение: прогнать поиском в файловом менеджере по всей директории с условием поиска в тексте. Искать следует все вхождения
http://
https://
и каждое найденое вхождение проверять внимательно визуально.
Сдесь же давануть поиском по всем вызывам функций библиотеки
Для просмотра ссылки Войди или Зарегистрируйся, mail, exec,shell_exec, passthru, system, proc_open, popen, sock
В общем случае искать и уделять внимание в первую очеред функционалу связанному с загрузкой, отгрузкой данных, обращением к БД, открытию портов, сокетов, обращений к внешним адресам и функциям связанными с отправкой почты.
2. Проверить по датам изменений файлов. Многие упускают этот момент. Проверить глазами и умом более тчательно те, которые подверглись изменениям последними.
3. Вариант посложнее, когда встраиваемый код перед вставкой в скрипт
Для просмотра ссылки Войди или Зарегистрируйся. Как правило, если это касается PHP скриптов некого комерческого продукта - то там все довольно лаконично, красиво, правильные построения блоков условий и функций, читаемые адекватные имена переменных. Пролистывая даже бегло на глаз такую бяку все же можно заметить. Часто используют функционал
Для просмотра ссылки Войди или Зарегистрируйся, который так же легко мониториться глазами.
4. Самый сложный вариант, когда "бяка" встроена "как надо". Грамотно составлена и не вызывает внешне подозрений. Здесь только разбираться в сути кода,... по существу пройти цепочки всех вызовов и функций. Может занять время примерно от 10% до 30% тех часов, которые были потрачены на разработку этого скрипта. Надежнее всего, но знания языка необходимы 100%.