Статията за SQL Server Pro "Декриптиране на SQL Server обекти" все още работи в SQL Server 2008.
Трябва да се свържете чрез DAC. Вижте файла „Декриптиране на SQL 2005 съхранени процедури, функции, тригери, views.sql“ в изтеглянето .
Само за да обобщим стъпките, които изпълнява за следната дефиниция на съхранена процедура
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Извлича шифрования текст на обекта от
imagevalколона вsys.sysobjvaluesи го съхранява в променлива@ContentOfEncryptedObject - Изчислява
@ObjectDataLengthотDATALENGTH(@ContentOfEncryptedObject)/2. - Генерира
ALTER PROCEDUREизраз, подплатен до правилната дължина с-знак (така че в този случайALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------) - Изпълнява
ALTERизраз, извлича шифрованата версия отsys.sysobjvaluesи го съхранява в променливата@ContentOfFakeEncryptedObjectслед това връща обратно промяната. - Генерира
CREATE PROCEDUREизраз, подплатен до правилната дължина с-символ (така че в този случайCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------). Това се съхранява в променливата@ContentOfFakeObject
След това преминава за @i = 1 to @ObjectDataLength и дешифрира декрипцията символ по знак, използвайки следния XOR изчисление.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)