L'article SQL Server Pro "Décrypter les objets SQL Server" fonctionne toujours dans SQL Server 2008.
Vous devez vous connecter via le DAC. Voir le fichier "Décrypter les procédures stockées SQL 2005, les fonctions, les déclencheurs, les vues.sql" dans le téléchargement .
Juste pour résumer les étapes qu'il effectue pour la définition de procédure stockée suivante
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Récupère le texte de l'objet chiffré à partir de
imagevalcolonne danssys.sysobjvalueset le stocke dans une variable@ContentOfEncryptedObject - Calcule
@ObjectDataLengthdeDATALENGTH(@ContentOfEncryptedObject)/2. - Génère une
ALTER PROCEDUREdéclaration complétée à la bonne longueur avec le-caractère (donc dans ce casALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------) - Exécute le
ALTERinstruction, récupère la version chiffrée desys.sysobjvalueset stocke cela dans la variable@ContentOfFakeEncryptedObjectannule ensuite la modification. - Génère une
CREATE PROCEDUREdéclaration complétée à la bonne longueur avec le-caractère (donc dans ce casCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------). Ceci est stocké dans la variable@ContentOfFakeObject
Il boucle ensuite pour @i = 1 to @ObjectDataLength et déchiffre la définition un caractère à la fois en utilisant le XOR suivant calcul.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)