powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Декодирование хранимой процедуры
14 сообщений из 14, страница 1 из 1
Декодирование хранимой процедуры
    #32045068
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста. Ранее была написана хранимая процедура with encryption. Человек,писавший ее давно уволился и найти его нет никакой возможности. Подскажите как можно увидеть ее код на T-SQL?
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045069
Guest111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что недавно предложил 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.
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
Декодирование хранимой процедуры
    #32045116
Фотография Shura_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем же тогда радость кодирования процедуры если любой ее так просто сможет раскодировать?
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045191
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно интересно текст хранимой процедуры вообще из базы удалить, она же типа откомпилирована?
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045204
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To akuz
Перестартуешь сервак - потеряешь проц.
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045242
Tulkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто-нить это проверял?
Я проверил- не работает.
Да и не могу понять,как оно будет работать,если ф-я encrypt() возвращает всего-навсего аски-код символа в хексе с двумя нулями впереди.
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045246
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню Robert Djabarov предлагал данную процедуру для версии 6.5
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045276
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да да, но на 6.5 она как раз и не работала.
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045305
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лично я пользуюсь dOMNAR's SQL Server SysComments Decryptor-ом. Для 7 и 2000-го годится.
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045481
kosm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите,а возможно вообще скрыть SP, чтобы только выдавалось сообщение,что нельзя,мол смотреть...
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045512
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы только выдавалось сообщение,что нельзя,мол смотреть

Кому выдавалось ? Рядовому пользователю и пользователю - администратору сервера ?
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045569
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Glory:

А где можно найти dOMNAR's SQL Server SysComments Decryptor
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045578
Фотография Shura_M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.geocities.com/d0mn4r/dSQLSRVD.html
...
Рейтинг: 0 / 0
Декодирование хранимой процедуры
    #32045592
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за наводку.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Декодирование хранимой процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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