powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Снять Encrypted в storedproc's и view-шках V6.5
7 сообщений из 7, страница 1 из 1
Снять Encrypted в storedproc's и view-шках V6.5
    #32042946
INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело было так: старый программер проставил Encrypted в некоторые хранимые и вьюшки, дабы любопытные админы и продвинутые юзы не знакомились с элементами бизнес-логики базы. Это отчасти логично.
Но он ушел, и мне, его продолжателю, время от времени требуется что-то менять. Старый автор шлёт исходники по требованию, но так как дело было давно, иногда он присылает старые версии, из-за чего случаются большие глюки. Вопрос: знает ли кто алгоритм шифрования и как его сломать?
В syscomments посмотрел, похоже на поточный, байт в байт. Но есть ли перемещения или подстановки... Короче, у кого какая инфа, поделитесь.
Я тем временем полажу по форуму, может где кто уже говорил по-поводу...
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043011
SergCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне думается, что сначало надо по форуму поискать, а потом уже задавать вопрос.
Если до сих пор не нашел, то ищи по словосочетанию with Encryption
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043020
Robert Djabarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Here's the code I got somewhere. Hope it helps.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
If object_id('sp_DecryptObject') Is Not Null
   Drop Procedure sp_DecryptObject
GO
 /************************************************/ 
 /* REVISED REC'D 5/21/98                        */ 
 /* sp_decryptobject        Tom Sager 01/26/98   */ 
 /*                                              */ 
 /* Decrypts objects (views, procedures & trigs) */ 
 /* created with the WITH ENCRYPTION option.     */ 
 /*                                              */ 
 /* Uses the encrypt() built-in function to find */ 
 /* a plaintext string that encrypts to the same */ 
 /* value as stored in the text column of the    */ 
 /* syscomments table.                           */ 
 /*                                              */ 
 /************************************************/ 
Create Procedure sp_DecryptObject (
   @objname varchar( 30 ) = Null )
WITH ENCRYPTION
AS
   SET NOCOUNT ON

   declare @errmsg    varchar( 80 )
   declare @encrtext  varchar( 255 )
   declare @decrtext  varchar( 255 )
   declare @testtext  varchar( 255 )
   declare @printline varchar( 255 )
   declare @textlen   int
   declare @lup       int
   declare @match     char( 1 )
   declare @testchar  smallint
   declare @begblk    smallint
   declare @endblk    smallint

   if (select count(*) from sysobjects where name = @objname) =  0 
   begin
      select @errmsg = 'Object '+@objname+' not found in database '+DB_NAME()
      print @errmsg
      return  1 
   end

   if (select count(*) from sysobjects t1, syscomments t2 where t1.name = @objname and t1.id = t2.id and t2.texttype &  4  !=  0 ) =  0 
   begin
      select @errmsg = 'Object '+@objname+' is not encrypted in database '+DB_NAME()
      print @errmsg
      return  1 
   end

   DECLARE comments_cursor CURSOR for
      select t1.text from syscomments t1, sysobjects t2
         where t1.id = t2.id and t2.name = @objname order by t1.colid

   OPEN comments_cursor

   FETCH NEXT FROM comments_cursor INTO @encrtext

   WHILE (@@fetch_status <> - 1 )
   BEGIN
      IF (@@fetch_status <> - 2 )
      BEGIN
         select @decrtext = REPLICATE(' ',  255 )
         select @textlen = DATALENGTH(@encrtext)
         select @lup =  1 
         select @match = 'n'
         while (@lup <= @textlen)
         begin
            select @testchar =  0 
            select @match = 'n'
            while (@match = 'n')
            begin
               select @decrtext = STUFF(@decrtext,@lup, 1 ,CHAR(@testchar))
               select @testtext = encrypt(@decrtext)
               if ASCII(SUBSTRING(@testtext,@lup, 1 )) = ASCII(SUBSTRING(@encrtext,@lup, 1 ))
               begin
                  select @match = 'y'
               end
               select @testchar = @testchar +  1 
               if (@testchar >  255 )
               begin
                  print 'Error...no match found'
                  return  1 
               end
            end
            select @lup = @lup +  1 
         end
         select @begblk =  1 
         select @endblk =  1 
         while (@endblk <= @textlen)
         begin
            if (substring(@decrtext,@endblk, 1 ) = 0x0a)
            begin
               select @printline = @printline + SUBSTRING(@decrtext,@begblk,@endblk-@begblk+ 1 )
               print @printline
               select @begblk = @endblk +  1 
               select @endblk = @begblk
               select @printline = NULL
            end
            select @endblk = @endblk +  1 
         end
         select @printline = @printline + SUBSTRING(@decrtext,@begblk,@endblk-@begblk+ 1 )
      END
      FETCH NEXT FROM comments_cursor INTO @encrtext
   END
   print @printline
   CLOSE comments_cursor

   DEALLOCATE comments_cursor
GO
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043067
Tulkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал (2K) - 'Error...no match found'
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043145
INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergCat! Поискал, про 7.0-2К - полно всего, а вот про 6.5 что-то никак.
И если бы я вдруг нашёл, то сразу бы поместил на форуме откат, что, мол, спасибо, сам пробил тему, да заодно и её решение (я так на Oracle-овском форуме уже поступал).

Человеку за процедуру заранее спасибо, хотя ещё не катал.
Результаты сообщу позднее.
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043161
INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роберту от всего личного состава и меня лично огромная благодарность. Надеюсь, когда-н. и я в этом вопросе кому-н. помогу, благо, что, копаясь в теме я эту проблему и в 7 - 2К раскопал (на форуме этом).
Так что всем спасибо, с моей стороны вопрос закрыт.
...
Рейтинг: 0 / 0
Снять Encrypted в storedproc's и view-шках V6.5
    #32043378
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть ли способ закриптовать все sp шки в view шки сразу? Что-то типа for each ... и так далее?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Снять Encrypted в storedproc's и view-шках V6.5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]