После эксплойта на сайте ASP.NET клиенту оставалась определенная строка вредоносного кода, распространившаяся по всей базе данных, в нескольких столбцах нескольких таблиц. Добавленная строка является согласованной и не меняется от таблицы к таблице, поэтому теоретически, если бы я мог просто выполнить поиск и замену по всей базе данных, это можно было бы очистить за одну операцию.
Я мог бы довольно легко сделать это в PostgreSQL или MySQL, сделав что-то вроде этого:
mysqldump bad_db | sed 's/evilcode//g' | mysql fixed_db
Но как бы вы сделали это с SQLServer? Я не уверен, что под Windows все так просто.
Проблема, с которой вы столкнетесь, заключается в том, что файл резервной копии базы данных является двоичным, а не простым текстом, как дамп MySQL. Вот ссылка на сайт к сообщению в блоге, которое я написал некоторое время назад, в котором будут очищены поля varchar и nvarchar. В нем нет кода для текста и ntext, но это, вероятно, очистит большую его часть. Текст и Ntext сложнее, поскольку в них нельзя использовать такие вещи, как подстрока.