terça-feira, 17 de fevereiro de 2009

Desencriptar Procedures no SQL 2000

PRIMEIRAMENTE VAMOS CRIAR A PROCEDURE ENCRYPTADA

CREATE PROCEDURE PROCENCRYPTADA @NUMERO1 INT, @NUMERO2 INT 
WITH ENCRYPTION AS
DECLARE @RESULT INT

BEGIN
SELECT @RESULT = @NUMERO1 + @NUMERO2
END


AGORA VAMOS TENTAR VERIFICAR O CODIGO DA PROCEDURE

SP_HELPTEXT PROCENCRYPTADA



AGORA VAMOS CRIAR A PROCEDURE PARA DESENCRIPTAR AS CRIPTOGRAFADAS

CREATE PROCEDURE DECRYPTPROC (@OBJETO VARCHAR(50))
AS
DECLARE @A NVARCHAR(4000),
      @B NVARCHAR(4000),
      @C NVARCHAR(4000),
      @D NVARCHAR(4000),
      @I INT,
      @T BIGINT
SET @A=(SELECT CTEXT FROM SYSCOMMENTS WHERE ID = OBJECT_ID(@OBJETO))
SET @B='ALTER PROCEDURE '
      + @OBJETO
      +' WITH ENCRYPTION AS '
      +REPLICATE('-', 4000-62)
EXECUTE (@B)
SET @C=(SELECT CTEXT FROM SYSCOMMENTS WHERE ID = OBJECT_ID(@OBJETO))
SET @B='CREATE PROCEDURE '
      + @OBJETO
      +' WITH ENCRYPTION AS '
      +REPLICATE('-', 4000-62)
SET @I=1
SET @D = REPLICATE(N'A', (DATALENGTH(@A) / 2))
WHILE @I<=DATALENGTH(@A)/2
BEGIN
      SET @D = STUFF(@D, @I, 1,
            NCHAR(UNICODE(SUBSTRING(@A, @I, 1)) ^
            (UNICODE(SUBSTRING(@B, @I, 1)) ^
            UNICODE(SUBSTRING(@C, @I, 1)))))
      SET @I=@I+1
END
EXECUTE ('DROP PROCEDURE '+ @OBJETO)
IF CHARINDEX('WITH ENCRYPTION',LOWER(@D))>0
      SET @D=REPLACE(LOWER(@D),'WITH ENCRYPTION', '')
EXECUTE( @D)
GO



AGORA VAMOS DESCRIPTAR A NOSSA PROCEDURE ENCRIPTADA COM A O ALGORITMO QUE CRIAMOS

DECRYPTPROC 'PROCENCRYPTADA'


AGORA PODEMOS VER O CODIGO DA PROCEDURE

SP_HELPTEXT PROCENCRYPTADA


Nenhum comentário:

Postar um comentário