Artikel SQL Server Pro "Decrypt SQL Server Objects" masih bekerja di SQL Server 2008.
Anda harus terhubung melalui DAC. Lihat file "Decrypt SQL 2005 stored procedure, functions, triggers, views.sql" di pengunduhan .
Hanya untuk meringkas langkah-langkah yang dilakukannya untuk definisi prosedur tersimpan berikut
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Mengambil teks objek terenkripsi dari
imageval
kolom disys.sysobjvalues
dan menyimpannya dalam variabel@ContentOfEncryptedObject
- Menghitung
@ObjectDataLength
dariDATALENGTH(@ContentOfEncryptedObject)/2
. - Menghasilkan
ALTER PROCEDURE
pernyataan diisi dengan panjang yang benar dengan-
karakter (jadi dalam hal iniALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------
) - Mengeksekusi
ALTER
pernyataan, mengambil versi terenkripsi darisys.sysobjvalues
dan menyimpannya dalam variabel@ContentOfFakeEncryptedObject
lalu gulung kembali perubahannya. - Menghasilkan
CREATE PROCEDURE
pernyataan diisi dengan panjang yang benar dengan-
karakter (jadi dalam hal iniCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------
). Ini disimpan dalam variabel@ContentOfFakeObject
Kemudian loop melalui @i = 1 to @ObjectDataLength
dan mendekripsi definisi karakter pada satu waktu menggunakan XOR
berikut ini perhitungan.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)