Existe alguna otra forma de utilizar el WITH ENCRYPTION
que no pueda ser descifrada?
Me he encontrado con algunos procedimientos que descifran
la encriptacion que hace microsoft a los Procedimientos
almacenados, triggers, vistas.
referencia:
http://difisec.sytes.net/modules.php?
name=News&file=article&sid2
y para sorpresas esta esto:
CREATE PROCEDURE DECRYPTSP2K (@objName varchar(50))
AS
DECLARE @a nvarchar(4000), @b nvarchar(4000), @c nvarchar
(4000), @d nvarchar(4000), @i int
SET @a=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='ALTER PROCEDURE '+ @objName +' WITH ENCRYPTION
AS '+REPLICATE('-', 4000-62)
EXECUTE (@b)
SET @c=(SELECT ctext FROM syscomments WHERE id = object_id
(@objName))
SET @b='CREATE PROCEDURE '+ @objName +' 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 '+ @objName)
SET @d=REPLACE((@d),'WITH ENCRYPTION', '')
SET @d=REPLACE((@d),'With Encryption', '')
SET @d=REPLACE((@d),'with encryption', '')
IF CHARINDEX('WITH ENCRYPTION',UPPER(@d) )>0
SET @d=REPLACE(UPPER(@d),'WITH ENCRYPTION', '')
execute( @d)
GO
mi pregunta es: microsoft tendra respuesta a su codigo de
encriptación tan simple o existe algun otro metodo para
encriptar los procedure, trigger o vistas.. que no sea tan
a la ligera. La privacidad deja de existir.
Leer las respuestas