PDA

View Full Version : قفل شدن SP و View.



SYNDROME
جمعه 23 آذر 1386, 18:16 عصر
با سلام
یک DataBase را من به سیستم خود Attach کردم.
در زمانی که روی SP دابل کلیک می کنم تا آن را ببینم پیغام


Encrypted Object Is Not Transferable And Script Can Not Be Generated

برروی صفحه نمایش داده می شود و زمانی که می خواهم View ها را Design پیغام


An unexpected error happend during this operation

نمایش داده می شود.
دلیل پیغام های فوق چیست؟
چطور می توان این کارها را انجام داد؟
آیا راه حلی برای باز کردن این SP و View ها وجود دارد؟
به دلیل اینکه نمی دانستم باید دنبال چی بگردم نتوانستم جستجو کنم.
اگر امکان دارد بنده را راهنمایی کنید و یا لینکی در این مورد قرار دهید.
با تشکر فراوان
موفق باشید

Ali Mahabadi
جمعه 23 آذر 1386, 19:11 عصر
view ها و sp ها - encrypt شده است . نمی توان کد آن را دید فقط قابل اجرا هستند.

حمیدرضاصادقیان
جمعه 23 آذر 1386, 20:35 عصر
البته من در همین سایت یک sp دیدم که میتوانست Sp های که encrypt شده بودن رو به کد تبدیل کنه.حالا میتونی سرچ کنی پیداش کنی.

SYNDROME
جمعه 23 آذر 1386, 20:47 عصر
view ها و sp ها - encrypt شده است . نمی توان کد آن را دید فقط قابل اجرا هستند.


البته من در همین سایت یک sp دیدم که میتوانست Sp های که encrypt شده بودن رو به کد تبدیل کنه.حالا میتونی سرچ کنی پیداش کنی.
1-اگر امکان دارد توضیح دهید که چطور می توانم این کار را انجام داد.
2-اگر امکان دارد لینک SP مورد نظر را که کدها را باز می کند برای من قرار دهید.
با تشکر فراوان
موفق باشید

Ali Mahabadi
یک شنبه 25 آذر 1386, 09:42 صبح
ابتدا اینSP را اجرا



CREATEPROCEDURE DECRYPTSP2K (@objName varchar(50))
--INPUT: object name (stored procedure,
--
-- view or trigger)
--Original idea: shoeboy <shoeboy@a
-- dequacy.org>
--Copyright © 1999-2002 SecurityFocus
--adapted by Joseph Gama
--Planet Source Code, my employer and my
--
-- self are not responsible for the use
-- of
-- this code
--This code is provided as is and for ed
--
-- ucational purposes only
--Please test it and share your results
AS
DECLARE @a nvarchar(4000), @b nvarchar(4000), @c nvarchar(4000), @d nvarchar(4000), @i int, @t bigint
--get encrypted data
SET @a=(SELECT ctext FROM syscomments WHERE id =object_id(@objName))
SET @b='ALTER PROCEDURE '+ @objName +' WITH ENCRYPTION AS '+REPLICATE('-', 4000-62)
EXECUTE(@b)
--get encrypted bogus SP
SET @c=(SELECT ctext FROM syscomments WHERE id =object_id(@objName))
SET @b='CREATE PROCEDURE '+ @objName +' WITH ENCRYPTION AS '+REPLICATE('-', 4000-62)
--start counter
SET @i=1
--fill temporary variable
SET @d =replicate(N'A',(datalength(@a)/ 2))
--loop
WHILE @i<=datalength(@a)/2
BEGIN
--xor original+bogus+bogus encrypted
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
--drop original SP
EXECUTE('drop PROCEDURE '+ @objName)
--remove encryption
--try to preserve case
SET @d=REPLACE((@d),'WITH ENCRYPTION','')
SET @d=REPLACE((@d),'With Encryption','')
SET @d=REPLACE((@d),'with encryption','')
IFCHARINDEX('WITH ENCRYPTION',UPPER(@d))>0
SET @d=REPLACE(UPPER(@d),'WITH ENCRYPTION','')
--replace SP
execute( @d)




بعد دقت کنید دستور اول را فقط یک بار اجرا کنید وگرنه SP را خراب می کند


exec DECRYPTSP2K 'نام SP'
exec sp_helptext 'نام SP'


نکات :
1- این SP فقط روی 2000 اجرا می شود روی 2005 اجرا نمی شود
2- بکاپ از DB یادتون نره چون ممکنه SP و .. از بین ببره

SYNDROME
دوشنبه 26 آذر 1386, 17:53 عصر
با تشکر از Ali Mahabadi
تابع شما روی SP هایی که خودم می سازم کار کرد ولی SP دیتا بیس مورد نظر را که اجرا می کنم.


exec DECRYPTSP2K 'SYNDROME'
exec sp_helptext 'SYNDROME'

پیغام می دهد


Server: Msg 208, Level 16, State 6, Procedure SYNDROME, Line 1
Invalid object name 'SYNDROME'

در صورتی که مطمئن هستم که این SP وجود دارد.
آیا SP به شکل خاصی قفل شده است؟
منتظر راهنمایی دوستان هستم.
با تشکر از دوستان
موفق باشید

AminSobati
دوشنبه 26 آذر 1386, 23:46 عصر
آیا dbo.MySP یا چیزی غیر از dbo وجود داره که لازم بشه نام ببرین؟

SYNDROME
سه شنبه 27 آذر 1386, 07:54 صبح
آیا dbo.MySP یا چیزی غیر از dbo وجود داره که لازم بشه نام ببرین؟
امین جان منظورتان را متوجه نشدم.اگر امکان دارد کمی توضیح بدهید.
موفق باشید

Ali Mahabadi
سه شنبه 27 آذر 1386, 09:01 صبح
exec DECRYPTSP2K 'SYNDROME'

DECRYPTSP2K این SP فقط روی SP های encrypt شده باید اجرا شود آن هم فقط یک بار .

SYNDROME
سه شنبه 27 آذر 1386, 16:56 عصر
DECRYPTSP2K این SP فقط روی SP های encrypt شده باید اجرا شود آن هم فقط یک بار .
دقیقاً این کار را کردم ولی همان بار اول Error مورد نظر ار نمایش داد.
روی هر SP دیگر هم تست می کنم همین مشکل است.
بنظر دوستان مشکل از کجاست؟
با تشکر فراوان
موفق باشید

SYNDROME
جمعه 30 آذر 1386, 21:37 عصر
آیا کسی بین دوستان نیست که بدونه چطور SP و View را می توان قفل کرد که نتوان آن را باز کرد.
همانند SP بالا که باز نمی شود.
منتظر راهنمایی دوستان هستم.
موفق باشید