vSRO Trigger Bulmak Backdoor iptal etmek!

Spare

Machine Man
.
Katılım
28 May 2018
Mesajlar
3,032
Tepkime puanı
3,280
Puanları
605
Yaş
26
Konum
İstanbul
Kredi
113.31[TL]
vsro
Trigger Neden Koyulmuştur ?
Trigger'lar genelde önlem amaçlı çalınma hack'lenme gibi durumlarda yapımcı tarafından korumaya alınmak için koyulur vsro alanında
tabiki triggerle bir çok oyunda oluşan buglar vs'de engellenebilir korumanın yanı sıra procedur'e göre daha hızlı işlem yaptığı söylenmektedir

Tetikleyiciler ne zaman kullanılırlar ?
Tetikleyicileri kullanmanın bir çok nedeni vardır. Bir tabloda bir değişiklik yapıldığında ayni anda bir çok değişik işlemin de yapılması gerekli olabilir. Belki de bu tabloda yapılan değişikliklerin oyunda açılan bikarektere yada guilde yönlendirilmesini sağlar Bu işlemler için tetikleyiciler kullanmak çoğu kez çok zarif çözümler üretmenizi sağlayabilir.

Ardı Sıra Tetikleyiciler (After Triggers)
Bir tabloya UPDATE, INSERT veya DELETE işlemi yapıldıktan sonra bir takım işlemlerin yapılması için kullanılan tetikleyicilere Ardı Sıra Tetikleyici denir. Bu tür tetikleyiciler pek çok değişik iş yapabilirler. Bir başka tabloya veri girişi yapmak veya tabloyu güncellemek, tablolar arasında uyumu sağlamak için bu tür tetikleyiciler çok uygundur.

USE SRO_VT_SHARD
GO
SELECT table_name = OBJECT_NAME(parent_object_id) ,
trigger_name = name ,
trigger_owner = USER_NAME(schema_id) ,
OBJECTPROPERTY(object_id, 'ExecIsUpdateTrigger') AS isupdate ,
OBJECTPROPERTY(object_id, 'ExecIsDeleteTrigger') AS isdelete ,
OBJECTPROPERTY(object_id, 'ExecIsInsertTrigger') AS isinsert ,
OBJECTPROPERTY(object_id, 'ExecIsAfterTrigger') AS isafter ,
OBJECTPROPERTY(object_id, 'ExecIsInsteadOfTrigger') AS isinsteadof ,
CASE OBJECTPROPERTY(object_id, 'ExecIsTriggerDisabled')
WHEN 1 THEN 'Disabled'
ELSE 'Enabled'
END AS status
FROM sys.objects
WHERE type = 'TR'
ORDER BY OBJECT_NAME(parent_object_id)
 
Son düzenleme:
Ü

Üye silindi 92

Ben bulmak istiyorum iptal etsin istemiyorum o triggeri bulup kendime eklemek istediğim için kod ile trigger tespiti istiyorum
 
  • Konuyu başlatan
  • AdminCP
  • #3

Spare

Machine Man
.
Katılım
28 May 2018
Mesajlar
3,032
Tepkime puanı
3,280
Puanları
605
Yaş
26
Konum
İstanbul
Kredi
113.31[TL]
Yukarıda verdiğim kod sadece bulma da kullanılır. İptal etmek, etmemek size kalmış bir durumdur.
Aktif veya Pasif tüm triggerleri listeleyecektir..
 
Katılım
6 Mar 2019
Mesajlar
148
Tepkime puanı
25
Puanları
28
Yaş
24
Konum
İzmir
Kredi
0.00[TL]
@Spare hocam bunlar cıktı triger olarak ama zararlı mıdır zararsız mıdır sizce

Kod:
triger name                                                   trgowner  tablename                                      updt dele inst after  isdof status
__srSquirrelMod_UniqueKillLog_Silk                            dbo       __srSquirrelMod_UniqueKillLog                    0    0    1    1    0    Enabled
TR_REVERSE                                                    dbo       _Char                                            1    0    0    1    0    Enabled
_Title_Update                                                 dbo       _Char                                            1    0    0    1    0    Enabled
_Title_Msg                                                    dbo       _Memo                                            0    0    1    1    0    Enabled

Triger Prosedürleri>
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  Trigger [dbo].[__srSquirrelMod_UniqueKillLog_Silk]    Script Date: 2.11.2020 09:17:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[__srSquirrelMod_UniqueKillLog_Silk]
ON [SRO_VT_SHARD].[dbo].[__srSquirrelMod_UniqueKillLog]
after  insert 
as begin
DECLARE  @unique_name varchar(128) ,  @CharName varchar(128) SELECT  @unique_name = unique_name,@charname=charname FROM [SRO_VT_SHARD].[dbo].[__srSquirrelMod_UniqueKillLog]
DECLARE @CharID int = (SELECT CharID FROM SRO_VT_SHARD.dbo._Char where (CharName16 = @charname OR NickName16 = @Charname))
DECLARE @UserID varchar(56) = (SELECT JID FROM SRO_VT_ACCOUNT.dbo.TB_User U WITH(NOLOCK)JOIN SRO_VT_SHARD.dbo._User U2 WITH(NOLOCK) ON U.JID = U2.UserJID WHERE CharID = @CharID)                                                                   
DECLARE @SILK int 
            SELECT @SILK = 
            CASE WHEN @unique_name = 'MOB_CH_TIGERWOMAN' Then '2'
                 WHEN @unique_name = 'MOB_EU_KERBEROS' Then '2'
                 WHEN @unique_name = 'MOB_OA_URUCHI' Then '2'
                 WHEN @unique_name = 'MOB_AM_IVY' Then '2'
                 WHEN @unique_name = 'MOB_KK_ISYUTARU' Then '3'
                 WHEN @unique_name = 'MOB_TK_BONELORD' Then '4'
                 WHEN @unique_name = 'MOB_RM_TAHOMET' Then '4'
                 WHEN @unique_name = 'MOB_CH_TIGERWOMAN_L3' Then '1'
                 WHEN @unique_name = 'MOB_EU_KERBEROS_L3' Then '1'
                 WHEN @unique_name = 'MOB_OA_URUCHI_L3' Then '1'
                 WHEN @unique_name = 'MOB_AM_IVY_L3' Then '1'
                 WHEN @unique_name = 'MOB_KK_ISYUTARU_L3' Then '2'
                 WHEN @unique_name = 'MOB_TK_BONELORD_L3' Then '2'
                 WHEN @unique_name = 'MOB_RM_TAHOMET_L3' Then '2'
                 WHEN @unique_name = 'MOB_TQ_BLACKSNAKE_L3' Then '2' 
                 WHEN @unique_name = 'MOB_RM_ROC' Then '15'
                 WHEN @unique_name = 'MOB_SD_NEITH' Then '6'
                 WHEN @unique_name = 'MOB_SD_SELKIS' Then '6'
                 WHEN @unique_name = 'MOB_SD_SETH' Then '10'
                 WHEN @unique_name = 'MOB_SD_ANUBIS' Then '7'
                 WHEN @unique_name = 'MOB_SD_ISIS' Then '6'
                 WHEN @unique_name = 'MOB_SD_HAROERIS' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_01' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_02' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_03' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_04' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_05' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_06' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_07' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_08' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_09' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_10' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_11' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_12' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_13' Then '10'
                 WHEN @unique_name = 'MOB_BOCC1337_BOSS_UQ_14' Then '10'
              
                 ELSE 0 END
    BEGIN
    EXEC SRO_VT_ACCOUNT.[CGI].[CGI_WebPurchaseSilk_Own] @UserID,@SILK
    END
    END
--
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  Trigger [dbo].[TR_REVERSE]    Script Date: 2.11.2020 09:11:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TR_REVERSE] ON [dbo].[_Char] AFTER UPDATE
AS
BEGIN
   declare @Newtel as smallint = (select TelRegion from inserted)
   declare @Newdied as smallint = (select DiedRegion from inserted)
   declare @charID as int = (select CharID from inserted)
   declare @ItemINV as int = (Select ItemID from _Inventory where Slot = 8 and CharID= @charID)
 
   if(@ItemINV not like '0')
   begin
   update _Char Set TelRegion= 0 , TelPosX=0,TelPosY=0,TelPosZ=0,TelWorldID=0
      update _Char Set DiedRegion= 0,DiedPosX=0,DiedPosY=0,DiedPosZ=0,DiedWorldID=0
end
end
--
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  Trigger [dbo].[_Title_Update]    Script Date: 2.11.2020 09:13:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[_Title_Update]
on [dbo].[_Char]
after update
as
SET NOCOUNT ON
SET XACT_ABORT ON
 
DECLARE @CharID int
DECLARE @Charname varchar(64)
DECLARE @OldTitle tinyint
DECLARE @NewTitle tinyint
DECLARE @Filter_Title table (TitleID tinyint)
DECLARE @OldTitle_Array varchar(max)
SELECT @CharID = CharID FROM inserted
SELECT @Charname = CharName16 from inserted
SELECT @OldTitle = HwanLevel from deleted
SELECT @NewTitle = HwanLevel FROM inserted
INSERT INTO @Filter_Title values ('0')
INSERT INTO @Filter_Title values ('97')
INSERT INTO @Filter_Title values ('98')
INSERT INTO @Filter_Title values ('99')
INSERT INTO @Filter_Title values ('100')
INSERT INTO @Filter_Title values ('101')

BEGIN TRY
BEGIN TRANSACTION

IF (@OldTitle NOT IN (SELECT * FROM @Filter_Title))
BEGIN
IF NOT EXISTS (SELECT Charname FROM _CharTitles WHERE Charname = @Charname)
BEGIN
INSERT INTO _CharTitles values (@CharID,@Charname,CONVERT(VARCHAR(50),@OldTitle),@NewTitle)
END

ELSE
BEGIN
SELECT @OldTitle_Array = REPLACE(OldTitle,',', CHAR(13) + CHAR(10)) FROM _CharTitles where CharID = @CharID

IF(CHARINDEX(convert(varchar(50),@OldTitle),@OldTitle_Array) < 1)
BEGIN
UPDATE _CharTitles SET OldTitle = OldTitle+','+convert(varchar(50),@OldTitle) ,NewTitle = @NewTitle WHERE CHARid = @CharID
END
END

END

UPDATE _CharTitles SET NewTitle = @NewTitle WHERE CHARid = @CharID


COMMIT TRANSACTION
END TRY
BEGIN CATCH

IF XACT_STATE() <> 0
BEGIN
print CONVERT(VARCHAR(50),ERROR_NUMBER()) +' error number'
print CONVERT(VARCHAR(50),ERROR_SEVERITY())+' error servesity'
print CONVERT(VARCHAR(50),ERROR_LINE())+ ' error line'
print ERROR_MESSAGE() + ' error mesaage'
ROLLBACK TRANSACTION
END

END CATCH
--
Kod:
USE [SRO_VT_SHARD]
GO
/****** Object:  Trigger [dbo].[_Title_Msg]    Script Date: 2.11.2020 09:14:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[_Title_Msg]
on [dbo].[_Memo]
after insert
as

SET NOCOUNT ON
SET XACT_ABORT ON

DECLARE @ReceiveCharID int
DECLARE @ReceiveCharname varchar(64)
DECLARE @SentCharname varchar(64)
DECLARE @SentCharID int
DECLARE @SentMsg varchar(255)
DECLARE @SentCharRace varchar(35)
DECLARE @OldTitles varchar(50)
DECLARE @TitleName varchar(255)
DECLARE @TitleID smallint

SELECT @ReceiveCharID = CharID from inserted
SELECT @ReceiveCharname = CharName16 FROM _Char WHERE CharID = @ReceiveCharID
SELECT @SentCharname = FromCharName FROM  inserted
SELECT @SentCharID = CharID FROM _Char WHERE CharName16 = @SentCharname
SELECT @SentMsg = Message FROM inserted
SELECT @SentCharRace = CASE WHEN RefObjID BETWEEN 1907 AND 1932 THEN 'Chinese' WHEN RefObjID between 14888 AND 14900 THEN 'Europe' END FROM _Char WHERE CharID = @SentCharID
SELECT @OldTitles =  REPLACE(OldTitle, ',', CHAR(13) + CHAR(10)) FROM _CharTitles WHERE Charname = @SentCharname
SELECT @TitleID = ID FROM _Titles WHERE ID = @SentMsg AND Race = @SentCharRace
SELECT @TitleName = Titlename FROM _Titles WHERE ID = @TitleID AND Race = @SentCharRace

BEGIN TRY
BEGIN TRANSACTION

IF (@ReceiveCharname LIKE '%SYSTEM%')
BEGIN

IF (@SentMsg = @TitleID)
BEGIN

IF (CHARINDEX(CONVERT(VARCHAR(50),@TitleID),@OldTitles) > 0)
BEGIN
Update _Char SET HwanLevel = @TitleID WHERE CharID = @SentCharID
INSERT INTO _Memo (CharID,FromCharName,Message,Date,Status,RefObjID) values (@SentCharID,'[SYSTEM]','The title : '+@TitleName+' has been update to be your current game title',GETDATE(),0,1907)
END

ELSE
BEGIN
INSERT INTO _Memo (CharID,FromCharName,Message,Date,Status,RefObjID) values (@SentCharID,'[SYSTEM]','The title : '+@TitleName+' is not include in your old game title list',GETDATE(),0,1907)
END

END

ELSE
BEGIN
INSERT INTO _Memo (CharID,FromCharName,Message,Date,Status,RefObjID) values (@SentCharID,'[SYSTEM]','The title : '+@SentMsg+' is not include in our game title list',GETDATE(),0,1907)
END

END
COMMIT TRANSACTION
END TRY

BEGIN CATCH

IF XACT_STATE() <> 0
BEGIN
PRINT 'ERROR'
ROLLBACK TRANSACTION
END

END CATCH
Üst üste post gönderildiği için tek mesajda birleştirildi:

UP
 

Benzer konular

Üst