Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Снять Encrypted в storedproc's и view-шках V6.5 / 7 сообщений из 7, страница 1 из 1
13.08.2002, 17:20:57
    #32042946
INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снять Encrypted в storedproc's и view-шках V6.5
Дело было так: старый программер проставил Encrypted в некоторые хранимые и вьюшки, дабы любопытные админы и продвинутые юзы не знакомились с элементами бизнес-логики базы. Это отчасти логично.
Но он ушел, и мне, его продолжателю, время от времени требуется что-то менять. Старый автор шлёт исходники по требованию, но так как дело было давно, иногда он присылает старые версии, из-за чего случаются большие глюки. Вопрос: знает ли кто алгоритм шифрования и как его сломать?
В syscomments посмотрел, похоже на поточный, байт в байт. Но есть ли перемещения или подстановки... Короче, у кого какая инфа, поделитесь.
Я тем временем полажу по форуму, может где кто уже говорил по-поводу...
...
Рейтинг: 0 / 0
13.08.2002, 21:17:12
    #32043011
SergCat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снять Encrypted в storedproc's и view-шках V6.5
Мне думается, что сначало надо по форуму поискать, а потом уже задавать вопрос.
Если до сих пор не нашел, то ищи по словосочетанию with Encryption
...
Рейтинг: 0 / 0
14.08.2002, 02:45:29
    #32043020
Robert Djabarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снять Encrypted в storedproc's и view-шках V6.5
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
14.08.2002, 10:18:26
    #32043067
Tulkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снять Encrypted в storedproc's и view-шках V6.5
Попробовал (2K) - 'Error...no match found'
...
Рейтинг: 0 / 0
14.08.2002, 12:45:54
    #32043145
INSERT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снять Encrypted в storedproc's и view-шках V6.5
SergCat! Поискал, про 7.0-2К - полно всего, а вот про 6.5 что-то никак.
И если бы я вдруг нашёл, то сразу бы поместил на форуме откат, что, мол, спасибо, сам пробил тему, да заодно и её решение (я так на Oracle-овском форуме уже поступал).

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


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