O artigo do SQL Server Pro "Descriptografar objetos do SQL Server" ainda funciona no SQL Server 2008.
Você precisa se conectar através do DAC. Consulte o arquivo "Decrypt SQL 2005 stored procedures, functions, triggers, views.sql" em o download .
Apenas para resumir as etapas que ele executa para a seguinte definição de procedimento armazenado
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Recupera o texto do objeto criptografado do
imageval
coluna emsys.sysobjvalues
e o armazena em uma variável@ContentOfEncryptedObject
- Calcula
@ObjectDataLength
deDATALENGTH(@ContentOfEncryptedObject)/2
. - Gera um
ALTER PROCEDURE
instrução preenchida para o comprimento correto com o-
caractere (então neste casoALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------
) - Executa o
ALTER
instrução, recupera a versão criptografada desys.sysobjvalues
e armazena isso na variável@ContentOfFakeEncryptedObject
em seguida, reverte a alteração. - Gera um
CREATE PROCEDURE
instrução preenchida para o comprimento correto com o-
caractere (então neste casoCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------
). Isso é armazenado na variável@ContentOfFakeObject
Em seguida, ele percorre
@i = 1 to @ObjectDataLength
e descriptografa a definição um caractere por vez usando o seguinte XOR
Cálculo. NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)