sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan dekrypteres lagret procedure i SQL Server 2008

SQL Server Pro-artiklen "Dekrypter SQL Server-objekter" fungerer stadig i SQL Server 2008.

Du skal oprette forbindelse via DAC'en. Se filen "Decrypt SQL 2005 stored procedures, functions, triggers, views.sql" i downloaden .

Bare for at opsummere de trin, den udfører for den følgende definition af lagrede procedurer

CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
 
  1. Henter den krypterede objekttekst fra imageval kolonne i sys.sysobjvalues og gemmer den i en variabel @ContentOfEncryptedObject
  2. Beregner @ObjectDataLength fra DATALENGTH(@ContentOfEncryptedObject)/2 .
  3. Genererer en ALTER PROCEDURE sætning udfyldt til den korrekte længde med - tegn (så i dette tilfælde ALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------ )
  4. Udfører ALTER sætning, henter den krypterede version fra sys.sysobjvalues og gemmer det i variablen @ContentOfFakeEncryptedObject ruller derefter ændringen tilbage.
  5. Genererer en CREATE PROCEDURE sætning udfyldt til den korrekte længde med - tegn (så i dette tilfælde CREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS----------- ). Dette bliver gemt i variablen @ContentOfFakeObject

Det går derefter igennem for @i = 1 to @ObjectDataLength og dekrypterer definitionen et tegn ad gangen ved at bruge følgende XOR beregning.

NCHAR( UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^ ( UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^ UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1)) ) )

  1. Forbind MySQL med Python 3.6

  2. LibreOffice:'com.mysql.jdbc.driver' kan ikke indlæses

  3. django kan ikke forbinde mysql i docker-compose

  4. Oracle med node-oracle:Fejl under forsøg på at hente tekst for fejl ORA-01804