Procura e substituição de strings em um banco de dados inteiro

1

Após uma exploração em um site ASP.NET, o cliente ficou com uma sequência específica de códigos de malware espalhados por todo o banco de dados, várias colunas de várias tabelas. A seqüência de caracteres prepended é consistente e não muda de tabela para tabela, então, teoricamente, se eu pudesse fazer uma pesquisa e substituição em todo o banco de dados, isso poderia ser esclarecido em uma única operação.

Eu poderia fazer isso com bastante facilidade no PostgreSQL ou no MySQL fazendo algo assim:

mysqldump bad_db | sed 's/evilcode//g' | mysql fixed_db

Mas como você faria isso com o SQLServer? Não tenho certeza se é tão simples no Windows.

    
por tylerl 09.10.2012 / 01:40

1 resposta

1

O problema que você vai encontrar é que o arquivo de backup do banco de dados é binário e não um texto simples como um dump MySQL. Aqui está um link para um post de blog que escrevi há algum tempo e que irá limpar os campos varchar e nvarchar. Não há código nele para texto e ntext, mas isso provavelmente irá limpar a maior parte. Text e Ntext são mais difíceis porque você não pode usar coisas como substring neles.

    
por 09.10.2012 / 02:03