[Release] Namensfix OllyDBG

09/27/2017 15:43 хαrvα#1
Credits: D0n!

Moin moin,

einige von euch kennen den Bug ja.. Man kann per OllyDBG seinen Charakter nennen wie man will.. z.B [Admin]Geneth oder sonst wie. Den Bug an sich release ich nicht, jedoch den Fix dafür.

1.
[Only registered and activated users can see links. Click Here To Register...]
2.
[Only registered and activated users can see links. Click Here To Register...]

Löscht alles was dort vorhanden ist, und fügt das dort ein:

Code:
USE [Character]
GO
/****** Object:  StoredProcedure [dbo].[p_Char_Create]    Script Date: 09/27/2017 15:35:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** 개체: 저장 프로시저 dbo.p_Char_Create    스크립트 날짜: 2007-03-13 오후 6:25:10 ******/


ALTER PROCEDURE [dbo].[p_Char_Create] 
/*
Character Create 
2004.6 By CJC
 input:
   All Args
 output: 
   nCharNo = 1~? 생성된 캐릭의 번호(에러시 = 0 )
           =  0 캐릭 생성 에러
           = -1 해당 유저의 슬롯에 캐릭이 있음.
           = -2 캐릭 외모 기록 에러
           = -3 캐릭 옵션 기록 에러
*/
  [MENTION=7094823]nuse[/MENTION]rNo int,			-- 1	1 ~ ? [MENTION=3476088]ncr[/MENTION]eateWorld tinyint,	-- 2	0 ~ ? [MENTION=1267808]nad[/MENTION]minLevel tinyint,	-- 3	0=USER, 1~?=GM Level 1~?
  [MENTION=1672162]nsL[/MENTION]otNo tinyint,		-- 4	0 ~ 5
  [MENTION=325240]Sid[/MENTION] nvarchar(40),		-- 5  
  [MENTION=7011834]nRa[/MENTION]ce tinyint,			-- 6	0 = Human, 1 = Elf, 2 = Dark elf [MENTION=1440671]Nclass[/MENTION] tinyint,		-- 7	1 = Fighter,4 = Cleric, 7 = Archer, 10 = Mage [MENTION=1572698]nGeN[/MENTION]der tinyint,		-- 8	0 = Male, 1 = Female
  [MENTION=928935]Nhai[/MENTION]rType tinyint,		-- 9	0 ~ ?
  [MENTION=928935]Nhai[/MENTION]rColor tinyint,	-- 10	0 ~ ? [MENTION=1193570]nface[/MENTION]Shape tinyint,	-- 11	0 ~ ?
@nCharNo int OUTPUT     -- 12
AS
SET NOCOUNT ON
-- 에러코드 일단 세팅
SET @nCharNo = 0
-- 해당유저의 해당슬롯에 캐릭이 있는지 확인
IF EXISTS (SELECT nUserNo FROM tCharacter(NOLOCK) WHERE nUserNo =  [MENTION=7094823]nuse[/MENTION]rNo AND nSlotNo =  [MENTION=1672162]nsL[/MENTION]otNo AND bDeleted = 0)
BEGIN
	SET @nCharNo = -1
	RETURN
END
IF EXISTS (SELECT sID FROM tCharacter(NOLOCK) WHERE sID =  [MENTION=325240]Sid[/MENTION])
    BEGIN
    RETURN
    END
    ELSE
-- 캐릭 생성
BEGIN TRAN
IF EXISTS (SELECT sID FROM tCharacter(NOLOCK) WHERE sID =  [MENTION=325240]Sid[/MENTION])
    BEGIN
    RETURN
    END
    ELSE
INSERT tCharacter (  nUserNo,  nSlotNo,  sID,  nCreateWorld,  nAdminLevel )
VALUES            (  [MENTION=7094823]nuse[/MENTION]rNo,  [MENTION=1672162]nsL[/MENTION]otNo,  [MENTION=325240]Sid[/MENTION], [MENTION=3476088]ncr[/MENTION]eateWorld, [MENTION=1267808]nad[/MENTION]minLevel )
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	RETURN
END
SET @nCharNo = @@IDENTITY
-- 캐릭 외모 세팅
INSERT tCharacterShape (  nCharNo,  nRace,  nClass,  nGender,  nHairType,  nHairColor,  nFaceShape )
VALUES                 ( @nCharNo,  [MENTION=7011834]nRa[/MENTION]ce, [MENTION=1440671]Nclass[/MENTION], [MENTION=1572698]nGeN[/MENTION]der,  [MENTION=928935]Nhai[/MENTION]rType,  [MENTION=928935]Nhai[/MENTION]rColor, [MENTION=1193570]nface[/MENTION]Shape ) 
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	SET @nCharNo = -2
	RETURN
END
-- 캐릭 옵션 세팅
INSERT tCharacterOptions (  nCharNo )
VALUES                   ( @nCharNo )
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	SET @nCharNo = -3
	RETURN
END
-- 캐릭 생성 성공
IF PATINDEX('%[^A-Za-z0-9_]%',  [MENTION=325240]Sid[/MENTION]) <> 0
BEGIN
 ROLLBACK TRAN
 SET @nCharNo = -3
 RETURN
END
COMMIT TRAN
-- end

Und schon ist es gefixt :)
09/27/2017 17:37 Cℓoυd#2
Getestet? Kann ich das in meinen releasten Files mit aufnehmen?
09/27/2017 17:42 хαrvα#3
Quote:
Originally Posted by Cℓoυd View Post
Getestet? Kann ich das in meinen releasten Files mit aufnehmen?
Klar kannst du machen :)
Funktioniert einwandfrei

Das ist der fix nochmal im einzelnen :

Quote:
IF PATINDEX('%[^A-Za-z0-9_]%', @[Only registered and activated users can see links. Click Here To Register...]) <> 0 BEGIN ROLLBACK TRAN SET @nCharNo = -3 RETURN END
Kommt vor Commit Tran am Ende
09/27/2017 21:11 Nátsú Dórágúnírú#4
Seit wann ist Cloud wieder entbannt o.O ?!

Ah ist ein neuer accound name xD
09/27/2017 21:43 D0n!#5
Quote:
Originally Posted by Cℓoυd View Post
Getestet? Kann ich das in meinen releasten Files mit aufnehmen?
Kannst es aufnehmen aber thanks oder credits hat Xarva dafür nicht verdient ;)
09/27/2017 23:17 хαrvα#6
Quote:
Originally Posted by D0n! View Post
Kannst es aufnehmen aber thanks oder credits hat Xarva dafür nicht verdient ;)
Jetzt wo du es erwähnt,

der Fix ist von dir.. ganz vergessen^^ Sorry.

Jedoch bin ich der Meinung, dass die Community den Fix gut gebrauchen kann.
09/27/2017 23:35 D0n!#7
kein ding, aber dann ladts besser als .sql file hoch, wer das per copy&paste einfügt der sollte
aufgrund der automatischen formatierung des Forums wohl vor nem dicken problem stehen
wenn er/sie nicht weis was da überhaupt passiert. :D
09/28/2017 17:16 Cℓoυd#8
Quote:
Originally Posted by D0n! View Post
Kannst es aufnehmen aber thanks oder credits hat Xarva dafür nicht verdient ;)
Habe es geändert, trotzdem danke an Xarva für den Release.
10/08/2017 11:09 xXTaksumiXx#9
Quote:
Originally Posted by хαrvα View Post
Credits: D0n!

Moin moin,

einige von euch kennen den Bug ja.. Man kann per OllyDBG seinen Charakter nennen wie man will.. z.B [Admin]Geneth oder sonst wie. Den Bug an sich release ich nicht, jedoch den Fix dafür.

1.
[Only registered and activated users can see links. Click Here To Register...]
2.
[Only registered and activated users can see links. Click Here To Register...]

Löscht alles was dort vorhanden ist, und fügt das dort ein:

Code:
USE [Character]
GO
/****** Object:  StoredProcedure [dbo].[p_Char_Create]    Script Date: 09/27/2017 15:35:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/****** 개체: 저장 프로시저 dbo.p_Char_Create    스크립트 날짜: 2007-03-13 오후 6:25:10 ******/


ALTER PROCEDURE [dbo].[p_Char_Create] 
/*
Character Create 
2004.6 By CJC
 input:
   All Args
 output: 
   nCharNo = 1~? 생성된 캐릭의 번호(에러시 = 0 )
           =  0 캐릭 생성 에러
           = -1 해당 유저의 슬롯에 캐릭이 있음.
           = -2 캐릭 외모 기록 에러
           = -3 캐릭 옵션 기록 에러
*/
  [MENTION=7094823]nuse[/MENTION]rNo int,			-- 1	1 ~ ? [MENTION=3476088]ncr[/MENTION]eateWorld tinyint,	-- 2	0 ~ ? [MENTION=1267808]nad[/MENTION]minLevel tinyint,	-- 3	0=USER, 1~?=GM Level 1~?
  [MENTION=1672162]nsL[/MENTION]otNo tinyint,		-- 4	0 ~ 5
  [MENTION=325240]Sid[/MENTION] nvarchar(40),		-- 5  
  [MENTION=7011834]nRa[/MENTION]ce tinyint,			-- 6	0 = Human, 1 = Elf, 2 = Dark elf [MENTION=1440671]Nclass[/MENTION] tinyint,		-- 7	1 = Fighter,4 = Cleric, 7 = Archer, 10 = Mage [MENTION=1572698]nGeN[/MENTION]der tinyint,		-- 8	0 = Male, 1 = Female
  [MENTION=928935]Nhai[/MENTION]rType tinyint,		-- 9	0 ~ ?
  [MENTION=928935]Nhai[/MENTION]rColor tinyint,	-- 10	0 ~ ? [MENTION=1193570]nface[/MENTION]Shape tinyint,	-- 11	0 ~ ?
@nCharNo int OUTPUT     -- 12
AS
SET NOCOUNT ON
-- 에러코드 일단 세팅
SET @nCharNo = 0
-- 해당유저의 해당슬롯에 캐릭이 있는지 확인
IF EXISTS (SELECT nUserNo FROM tCharacter(NOLOCK) WHERE nUserNo =  [MENTION=7094823]nuse[/MENTION]rNo AND nSlotNo =  [MENTION=1672162]nsL[/MENTION]otNo AND bDeleted = 0)
BEGIN
	SET @nCharNo = -1
	RETURN
END
IF EXISTS (SELECT sID FROM tCharacter(NOLOCK) WHERE sID =  [MENTION=325240]Sid[/MENTION])
    BEGIN
    RETURN
    END
    ELSE
-- 캐릭 생성
BEGIN TRAN
IF EXISTS (SELECT sID FROM tCharacter(NOLOCK) WHERE sID =  [MENTION=325240]Sid[/MENTION])
    BEGIN
    RETURN
    END
    ELSE
INSERT tCharacter (  nUserNo,  nSlotNo,  sID,  nCreateWorld,  nAdminLevel )
VALUES            (  [MENTION=7094823]nuse[/MENTION]rNo,  [MENTION=1672162]nsL[/MENTION]otNo,  [MENTION=325240]Sid[/MENTION], [MENTION=3476088]ncr[/MENTION]eateWorld, [MENTION=1267808]nad[/MENTION]minLevel )
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	RETURN
END
SET @nCharNo = @@IDENTITY
-- 캐릭 외모 세팅
INSERT tCharacterShape (  nCharNo,  nRace,  nClass,  nGender,  nHairType,  nHairColor,  nFaceShape )
VALUES                 ( @nCharNo,  [MENTION=7011834]nRa[/MENTION]ce, [MENTION=1440671]Nclass[/MENTION], [MENTION=1572698]nGeN[/MENTION]der,  [MENTION=928935]Nhai[/MENTION]rType,  [MENTION=928935]Nhai[/MENTION]rColor, [MENTION=1193570]nface[/MENTION]Shape ) 
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	SET @nCharNo = -2
	RETURN
END
-- 캐릭 옵션 세팅
INSERT tCharacterOptions (  nCharNo )
VALUES                   ( @nCharNo )
IF @@ERROR <> 0
BEGIN
	ROLLBACK TRAN
	SET @nCharNo = -3
	RETURN
END
-- 캐릭 생성 성공
IF PATINDEX('%[^A-Za-z0-9_]%',  [MENTION=325240]Sid[/MENTION]) <> 0
BEGIN
 ROLLBACK TRAN
 SET @nCharNo = -3
 RETURN
END
COMMIT TRAN
-- end

Und schon ist es gefixt :)
Danke für den release ist sehr gut zu wissen und hätte noch 1 frage wie läuft es so mit KeRnOnline ?
10/09/2017 14:15 хαrvα#10
Quote:
Originally Posted by xXTaksumiXx View Post
Danke für den release ist sehr gut zu wissen und hätte noch 1 frage wie läuft es so mit KeRnOnline ?
Musst du auf der Facebook Seite Kern Online gucken. Ich arbeite nicht an kern :)