El artículo de SQL Server Pro "Descifrar objetos de SQL Server" todavía funciona en SQL Server 2008.
Necesitas conectarte a través del DAC. Consulte el archivo "Descifrar procedimientos almacenados, funciones, disparadores, vistas de SQL 2005". ">la descarga .
Solo para resumir los pasos que realiza para la siguiente definición de procedimiento almacenado
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Recupera el texto del objeto encriptado del
imageval
columna ensys.sysobjvalues
y lo almacena en una variable@ContentOfEncryptedObject
- Calcula
@ObjectDataLength
deDATALENGTH(@ContentOfEncryptedObject)/2
. - Genera un
ALTER PROCEDURE
declaración rellenada a la longitud correcta con el-
carácter (entonces en este casoALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------
) - Ejecuta
ALTER
declaración, recupera la versión cifrada desys.sysobjvalues
y lo almacena en la variable@ContentOfFakeEncryptedObject
luego revierte el cambio. - Genera un
CREATE PROCEDURE
declaración rellenada a la longitud correcta con el-
carácter (así que en este casoCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------
). Esto se almacena en la variable@ContentOfFakeObject
Luego recorre para @i = 1 to @ObjectDataLength
y descifra la definición un carácter a la vez usando el siguiente XOR
cálculo.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)