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
imagevalcolumna ensys.sysobjvaluesy lo almacena en una variable@ContentOfEncryptedObject - Calcula
@ObjectDataLengthdeDATALENGTH(@ContentOfEncryptedObject)/2. - Genera un
ALTER PROCEDUREdeclaración rellenada a la longitud correcta con el-carácter (entonces en este casoALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------) - Ejecuta
ALTERdeclaración, recupera la versión cifrada desys.sysobjvaluesy lo almacena en la variable@ContentOfFakeEncryptedObjectluego revierte el cambio. - Genera un
CREATE PROCEDUREdeclaració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))
)
)