Sh Myko Düpe Hepsini EngeLLeyin..
Öncelikle exe ve Gameserverdan basliyalim
Level 83 e çikan Gameserver + Stat veriyor. Sorunsuz.. / Akuma Xskip eski versionu..
PATCH
http://uploaded.to/?id=5fl3quKod:
Rar pass : Reallizt
Sonrasinda.. Ebenezer in bulundugu klasöre geçiyoruz. orda bulunan HacktoolList.Txt sini açiyoruz..
ve
Kod:
MYKOhack
MyKOhack
Mykohack
MYKO hack
MyKO hack
Cheat Engine
Cheat Engine 5.5
Cheat Engine.exe
CheatEngine
Cheat Engine.EXE
Ac Tool
Mykohack Launcher
MYKOHackV4.3
MYKOHackV4.3.exe
MYKOHack Launcher
MYKOHack Launcher.exe
(Code = 10303)
MYKOHackV4.4
MYKOHackV4.4.exe
MYKOHackV3.9
MYKOHackV3.9.exe
MYKOHackV4.2
MYKOHackV4.2.exe
MYKOHackV4.1
MYKOHackV4.1.exe
MYKOHackV4
MYKOHackV4.exe
Code = 10303
MYKOHackV4.44
MYKOHackV4.44.exe
MYKOHackV4.43
MYKOHackV4.43.exe
MYKOHackV4.42
MYKOHackV4.42.exe
MYKOHackV4.41
MYKOHackV4.41.exe
MYKOHackV4.40
MYKOHackV4.40.exe
MYKOHack LauncherT
MYKOHack LauncherT.exe
OriginalFilenameMYKOHack Launcher.exe
MYKOHack Launcher
MYKOHack Launcher.exe
prtwlf
prtwlf.exe
Portwolf
Prtwlf.exe
1299 Anti-XSkip by Portwolf v1.7
Skip
BunLarı ekliyoruz.. Bu sistem. Exe isimlerini yakalar ve listeler.. Benim unuttugum exe isimleride olabilir o yüzden bunlari siz istediginiz gibi editliyebilirsiniz ..
2. Aşama
Query Analyzer i açin Aşağıdaki Kodu Yazıp f5 Yapın
Kod:
CREATE TABLE [dbo].[DISCONNECT_USER](
[UserID] [varchar](40) NOT NULL
) ON [PRIMARY]
3. Aşama
INSERT_HACKTOOL_USER procedurunu açiyoruz ve temizliyoruz. Temizledikten sonra benim verdigimi proceduru ekliyoruz yerine
Kod:
CREATE PROCEDURE [dbo].[INSERT_HACKTOOL_USER]
@AccountID char(21),
@CharID char(21),
@HackToolName char(512)
AS
INSERT INTO HACKTOOL_USERLOG ( strAccountID, strCharID, strHackToolName )
VALUES (@AccountID, @CharID, @HackToolName )
INSERT INTO DISCONNECT_USER (UserID) VALUES (@Charid)
4. AŞama
Akumanin verdigi Dupecheck procedurunu kullaniyorsaniz. Açip içerigini temizleyip. Verdigim Procedur ile degistiriyorsunuz
Kod:
CREATE PROCEDURE [dbo].[DUPE_CHECK_USER]
(@strUserId char(21))
AS
/*
Author : AKUMA
Update : 11.03.2009 - 11:37
*/
DECLARE @DupeDeletingSystemStatus tinyint
/* 0 = Dupe Items Only Reporting Their Deletion / 1 = Dupe Items Deleted */
SET @DupeDeletingSystemStatus = 1
/* The required tables are created. */
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id(N'[dbo].[DUPE_CHECKED_USER_ITEM_LIST]') AND OBJECTPROPERTY(id,N'IsUserTable') = 1)
CREATE TABLE [dbo].[DUPE_CHECKED_USER_ITEM_LIST](
[strUserId] [char](21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Num] [int] NULL,
[strSerial] [int] NULL,
[IsDupe] [tinyint] NULL
) ON [PRIMARY]
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id(N'[dbo].[DUPE_ITEM_LIST]') AND OBJECTPROPERTY(id,N'IsUserTable') = 1)
CREATE TABLE [dbo].[DUPE_ITEM_LIST](
[strUserId] [char](21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Num] [int] NULL,
[strSerial] [int] NULL
) ON [PRIMARY]
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id(N'[dbo].[DUPE_CHECK_USER_INVENTORY]') AND OBJECTPROPERTY(id,N'IsUserTable') = 1)
CREATE TABLE [dbo].[DUPE_CHECK_USER_INVENTORY](
[strUserId] [char](21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Num] [int] NULL,
[StackSize] [smallint] NULL,
[Durability] [smallint] NULL,
[InventorySlot] [int] NULL,
[strSerial] [int] NULL DEFAULT ((0))
) ON [PRIMARY]
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id(N'[dbo].[DUPE_CHECK_REPORT]') AND OBJECTPROPERTY(id,N'IsUserTable') = 1)
CREATE TABLE [dbo].[DUPE_CHECK_REPORT](
[strUserId] [char](21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Num] [int] NULL,
[strSerial] [int] NULL,
[ItemName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
) ON [PRIMARY]
/* Variables */
DECLARE @CheckUser int,@CheckDupeItemUser int,@While int,@I int,@Num int, @Durability int,@StackSize int,@InventorySlot int,@strSerial int,@RecordCount int, @CountX int,@CheckInn int, @Slot int
DECLARE @strUserIDx char(21), @strName varchar(100), @DurabilityX varchar(2),@StackSizeX varchar(2),@WareHouseData varchar(1601),@StopX varchar(2)
DECLARE @NumX varbinary(4),@strSerialX varbinary(4)
DECLARE @DupedCount int
/* Delete User Information are Old. */
DELETE FROM DUPE_CHECKED_USER_ITEM_LIST WHERE strUserId = @strUserId
DELETE FROM DUPE_CHECK_USER_INVENTORY WHERE strUserId = @strUserId
SET @I = 14 * 0 + 1
SET @While = 401
SELECT @CheckUser = COUNT(*) FROM USERDATA WHERE strUserId = @strUserId
IF @CheckUser > 0
BEGIN
-- Control Begins.
SET @I = 14 * 0 + 1
SET @While = 401
SET @Num = 0
SET @Durability = 0
SET @StackSize = 0
SET @strSerial = 0
WHILE @I < @While
BEGIN
SET @Num = 0
SET @Durability = 0
SET @StackSize = 0
SET @strSerial = 0
SELECT
@strUserId = strUserId,
@Num = CAST(CAST(SUBSTRING(CAST(SUBSTRING(strItem, @I,4) AS VARBINARY(4)), 4, 1)+SUBSTRING(CAST(SUBSTRING(strItem, @I,4) AS VARBINARY(4)), 3, 1)+SUBSTRING(CAST(SUBSTRING(strItem, @I,4) AS VARBINARY(4)), 2, 1)+SUBSTRING(CAST(SUBSTRING(strItem, @I,4) AS VARBINARY(4)), 1, 1) AS VARBINARY(4)) AS INT),
@Durability = CAST(CAST(CAST(SUBSTRING(strItem, @I+5, 1) AS VARBINARY(1))+CAST(SUBSTRING(strItem, @I+4, 1) AS VARBINARY(1)) AS VARBINARY(2)) AS INT),
@StackSize = CAST(CAST(CAST(SUBSTRING(strItem, @I+7, 1) AS VARBINARY(1))+CAST(SUBSTRING(strItem, @I+6, 1) AS VARBINARY(1)) AS VARBINARY(2)) AS INT),
@strSerial = CAST(CAST(SUBSTRING(CAST(SUBSTRING(strSerial, @I,4) AS VARBINARY(4)), 4, 1)+SUBSTRING(CAST(SUBSTRING(strSerial, @I,4) AS VARBINARY(4)), 3, 1)+SUBSTRING(CAST(SUBSTRING(strSerial, @I,4) AS VARBINARY(4)), 2, 1)+SUBSTRING(CAST(SUBSTRING(strSerial, @I,4) AS VARBINARY(4)), 1, 1) AS VARBINARY(4)) AS INT)
FROM USERDATA
WHERE strUserId = @strUserId
IF @strSerial <> 0 AND @Num <> 0
BEGIN
INSERT INTO DUPE_CHECKED_USER_ITEM_LIST (strUserId,Num,strSerial) VALUES (@strUserId,@Num,@strSerial)
END
INSERT INTO DUPE_CHECK_USER_INVENTORY (strUserId,Num,StackSize,Durability,InventorySlot,strSerial) VALUES (@strUserId,@Num,@StackSize,@Durability,(@I-1) / 8,@strSerial)
SET @I = @I + 8
END
-- Add items to list dupe.
DECLARE DUPE_CURSOR CURSOR FAST_FORWARD FOR
SELECT strSerial, COUNT(*) -1
FROM DUPE_CHECKED_USER_ITEM_LIST WHERE strSerial <> 0 AND Num <> 0
GROUP BY strSerial
HAVING COUNT(strSerial) > 1
OPEN DUPE_CURSOR
FETCH NEXT FROM DUPE_CURSOR INTO @strSerial, @CountX
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE DUPE_CHECKED_USER_ITEM_LIST SET IsDupe = 1 WHERE strSerial = @strSerial
FETCH NEXT FROM DUPE_CURSOR INTO @strSerial, @CountX
END
CLOSE DUPE_CURSOR
DEALLOCATE DUPE_CURSOR
DECLARE DUPE_CURSOR CURSOR FAST_FORWARD FOR
SELECT strUserId,Num,strSerial FROM DUPE_CHECKED_USER_ITEM_LIST WHERE IsDupe = 1
OPEN DUPE_CURSOR
FETCH NEXT FROM DUPE_CURSOR INTO @strUserIdX,@Num,@strSerial
WHILE @@FETCH_STATUS = 0
BEGIN
SET @DupedCount = 0
SELECT @DupedCount = COUNT(*) FROM DUPE_ITEM_LIST WHERE strUserId = @strUserIdX AND Num = @Num AND strSerial = @strSerial
IF @DupedCount = 0
BEGIN
INSERT INTO DUPE_ITEM_LIST (strUserId,Num,strSerial) VALUES (@strUserIdX,@Num,@strSerial)
END
FETCH NEXT FROM DUPE_CURSOR INTO @strUserIdX,@Num,@strSerial
END
CLOSE DUPE_CURSOR
DEALLOCATE DUPE_CURSOR
-- We are looking to dupe the queue.
IF @DupeDeletingSystemStatus = 1
BEGIN
SELECT @DupedCount = COUNT(*) FROM DUPE_ITEM_LIST WHERE strUserId = @strUserId
IF @DupedCount <> 0
BEGIN
-- Start Deleting
SET @Num = 0
SET @strSerial = 0
DECLARE DUPE_ITEM_LIST_CURSOR CURSOR FOR
SELECT Num,strSerial FROM DUPE_ITEM_LIST WHERE strUserId = @strUserId
OPEN DUPE_ITEM_LIST_CURSOR
FETCH NEXT FROM DUPE_ITEM_LIST_CURSOR INTO @Num,@strSerial
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @strName = NULL
SELECT @strName = strName FROM ITEM WHERE Num = @Num
INSERT INTO DUPE_CHECK_REPORT (strUserId,Num,strSerial,ItemName) VALUES (@strUserId,@Num,@strSerial,@strName)
INSERT INTO DISCONNECT_USER (UserID) VALUES (@struserid)
UPDATE DUPE_CHECK_USER_INVENTORY SET Num = 0,StackSize = 0, Durability = 0, strSerial = 0 WHERE Num = @Num AND strSerial = @strSerial AND strUserId = @strUserId
DELETE FROM DUPE_ITEM_LIST WHERE Num = @Num AND strSerial = @strSerial AND strUserId = @strUserId
FETCH NEXT FROM DUPE_ITEM_LIST_CURSOR INTO @Num,@strSerial
END
CLOSE DUPE_ITEM_LIST_CURSOR
DEALLOCATE DUPE_ITEM_LIST_CURSOR
SET @strSerial = 0
SET @InventorySlot = 0
SET @I = 14 * 0
SET @While = 401
SELECT
@strUserId = strUserId,
@Num = Num,
@Durability = Durability,
@StackSize = stacksize,
@strSerial = strSerial
FROM DUPE_CHECK_USER_INVENTORY
WHERE strUserId = @strUserId and InventorySlot = @InventorySlot
SET @NumX = SUBSTRING(CAST(@Num AS VARBINARY(4)), 4, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 3, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 2, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 1, 1)
SET @DurabilityX = CAST(SUBSTRING(CAST(@Durability AS VARBINARY(2)), 2, 1)+SUBSTRING(CAST(@Durability AS VARBINARY(2)), 1, 1) as varchar(2))
SET @StackSizeX = CAST(SUBSTRING(CAST(@StackSize AS VARBINARY(2)), 2, 1)+SUBSTRING(CAST(@StackSize AS VARBINARY(2)), 1, 1) as varchar(2))
SET @strSerialX = SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 4, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 3, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 2, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 1, 1)
UPDATE USERDATA SET
strItem = CAST(SUBSTRING(strItem, 1, @I) + CAST(CAST(@NumX as varchar(4)) + @DurabilityX + @StackSizeX as varchar(
) + SUBSTRING(strItem, @I+8, 401-@I) as binary(400)),
strSerial = CAST(SUBSTRING(strSerial, 1, @I) + CAST(@strSerialX as varchar(4)) + SUBSTRING(strSerial, @I+8, 401-@I) as binary(400))
WHERE strUserId = @strUserId
SET @I = @I + 8
SET @InventorySlot = @InventorySlot + 1
WHILE @InventorySlot < 50
BEGIN
SELECT
@strUserId = strUserId,
@Num = Num,
@Durability = Durability,
@StackSize = StackSize,
@strSerial = strSerial
FROM DUPE_CHECK_USER_INVENTORY
WHERE strUserId = @strUserId and InventorySlot = @InventorySlot
SET @NumX = SUBSTRING(CAST(@Num AS VARBINARY(4)), 4, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 3, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 2, 1) + SUBSTRING(CAST(@Num AS VARBINARY(4)), 1, 1)
SET @DurabilityX = CAST(SUBSTRING(CAST(@Durability AS VARBINARY(2)), 2, 1)+SUBSTRING(CAST(@Durability AS VARBINARY(2)), 1, 1) as varchar(2))
SET @StackSizeX = CAST(SUBSTRING(CAST(@StackSize AS VARBINARY(2)), 2, 1)+SUBSTRING(CAST(@StackSize AS VARBINARY(2)), 1, 1) as varchar(2))
SET @strSerialX = SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 4, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 3, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 2, 1) + SUBSTRING(CAST(@strSerial AS VARBINARY(4)), 1, 1)
UPDATE USERDATA SET
strItem = CAST(SUBSTRING(strItem, 1, @I) + CAST(CAST(@NumX as varchar(4)) + @DurabilityX + @StackSizeX as varchar(
) + SUBSTRING(strItem, @I+8, 401-@I) as binary(400)),
strSerial = CAST(SUBSTRING(strSerial, 1, @I) + CAST(@strSerialX as varchar(4)) + SUBSTRING(strSerial, @I+8, 401-@I) as binary(400))
WHERE strUserId = @strUserId
SET @I = @I + 8
SET @InventorySlot = @InventorySlot + 1
END
DELETE FROM DUPE_CHECK_USER_INVENTORY WHERE strUserId = @strUserId
END
END
-- Deletion process is complete.
END
Eger baska bir dupecheck proceduru kullaniyorsaniz Procedurun tabloya insertledigi yerin altina
Kod:
INSERT INTO DISCONNECT_USER (UserID) VALUES (@Charid)
Account_logout procedurunu açiyorsunuz ve en altina
Kod:
Update userdata set authority = 255 where struserid = (select userid from Disconnect_user)
UPDATE_USER_DATA procedurunu açiyorsunuz ve
Temizleyip
Kod:
CREATE PROCEDURE [dbo].[UPDATE_USER_DATA]
@id varchar(21),
@Nation tinyint,
@Race tinyint,
@Class smallint,
@HairColor tinyint,
@Rank tinyint,
@Title tinyint,
@Level tinyint,
@Exp int,
@Loyalty int,
@Face tinyint,
@City tinyint,
@Knights smallint,
@Fame tinyint,
@Hp smallint,
@Mp smallint,
@Sp smallint,
@Str tinyint,
@Sta tinyint,
@Dex tinyint,
@Intel tinyint,
@Cha tinyint,
@Authority tinyint,
@Points tinyint,
@Gold int,
@Zone tinyint,
@Bind smallint,
@PX int,
@PZ int,
@PY int,
@dwTime int,
@QuestTotal smallint,
@strSkill varchar(20),
@strItem varchar(400),
@strSerial varchar(400),
@strQuest varchar(400),
@MannerPoint int,
@LoyaltyMonthly int
AS
DECLARE @KnightsIndex smallint
IF @Zone > 2 -- battle zone user
BEGIN
SELECT @KnightsIndex=Knights FROM USERDATA WHERE strUserId=@id
IF @KnightsIndex = -1 -- expel user
BEGIN
SET @Knights = 0
SET @Fame = 0
END
END
EXEC DUPE_CHECK_USER @id
UPDATE USERDATA
Set
Nation = @Nation,
Race = @Race,
Class = @Class,
HairColor = @HairColor,
Rank = @Rank,
Title = @Title,
[Level] = @Level,
[Exp] = @Exp,
Loyalty = @Loyalty,
Face = @Face,
City = @City,
Knights = @Knights,
Fame = @Fame,
Hp = @Hp,
Mp = @Mp,
Sp = @Sp,
Strong = @Str,
Sta = @Sta,
Dex = @Dex,
Intel = @Intel,
Cha = @Cha,
Authority = @Authority,
Points = @Points,
Gold = @Gold,
[Zone] = @Zone,
Bind = @Bind,
PX = @PX,
PZ = @PZ,
PY = @PY,
dwTime = @dwTime,
strSkill = @strSkill,
strItem = @strItem,
strSerial = @strSerial, -- 2002 11. 12
sQuestCount = @QuestTotal, -- 2003.04.09
strQuest = @strQuest, -- 2003.04.09
MannerPoint = @MannerPoint, -- 2004.01.30
LoyaltyMonthly = @LoyaltyMonthly, -- 2004.04.22
UpdateTime = getdate()
WHERE strUserId = @id
if @Zone=31 update userdata set zone=21 WHERE struserid=@id
if @Zone=21 update userdata set zone=21 WHERE struserid=@id
if @Zone=61 update userdata set zone=21 WHERE struserid=@id
if @Zone=101 update userdata set zone=21 WHERE struserid=@id
if @Zone=102 update userdata set zone=21 WHERE struserid=@id
if @Zone=62 update userdata set zone=21 WHERE struserid=@id
if @Zone=72 update userdata set zone=21 WHERE struserid=@id
if @Zone=71 update userdata set zone=21 WHERE struserid=@id
if @Zone=77 update userdata set zone=21 WHERE struserid=@id
if @Zone=81 update userdata set zone=21 WHERE struserid=@id
if @Zone=82 update userdata set zone=21 WHERE struserid=@id
if @id='Shlt' or @id ='DammKengKar'
BEGIN
INSERT INTO USER_LOG_KOR (strcharID, byType, updateTime) VALUES (@id, 2, getdate() )
END
Yerine ekliyorsunuz yada ayri bir sekilde kullaniyorsaniz. Kırmızı olan kisimin altina eklemeniz yeterlidir
Kod:
DECLARE @KnightsIndex smallint
IF @Zone > 2 -- battle zone user
BEGIN
SELECT @KnightsIndex=Knights FROM USERDATA WHERE strUserId=@id
IF @KnightsIndex = -1 -- expel user
BEGIN
SET @Knights = 0
SET @Fame = 0
END
END
EXEC DUPE_CHECK_USER @id
SHOPPINGMALL_BUY Procedurune geçiyoruz ve tekrardan herseyi silip yerine yenisini ekliyoruz
Kod:
ALTER PROCEDURE [dbo].[SHOPPINGMALL_BUY]
@nRet smallint OUTPUT,
@strCharID char(21),
@strAccountID char(21),
@nItenID int,
@sCount smallint
AS
BEGIN TRAN
INSERT INTO WEB_ITEMMALL (strAccountID, strCharID, ServerNo, ItemID, ItemCount ) VALUES ( @strAccountID, @strCharID, 0, @nItenID, @sCount )
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @nRet = -1
RETURN
END
exec DUPE_CHECK_USER @strcharid
COMMIT TRAN
SET @nRet = 1
ve En son olarak LOAD_WEB_ITEMMALL Procedurunu açip
Kod:
ALTER PROCEDURE [dbo].[LOAD_WEB_ITEMMALL]
@strCharID char(21)
AS
SELECT strAccountID, ItemID, ItemCount, BuyTime FROM WEB_ITEMMALL WHERE strCharID = @strCharID
EXEC DUPE_CHECK_USER @StrcharID
DELETE FROM WEB_ITEMMALL WHERE strCharID = @strCharID
[FONT="Comic Sans MS"][SIZE="3"][COLOR="DarkOrange"]
ile degistiriyoruz.
Hersey tamam. En son kisima geldik
http://uploaded.to/?id=bbn061LiveDC programimizi indiriyoruz. Settings diyoruz ve herseyi editliyoruz Table olan kisima Disconnect_user yaziyoruz bütün ayarlari yaptikdan sonra Run demeniz yeterli.
Bunlarin hepsi simdi neye yaradi ? ..
1 Dupeciler Aninda yakalanir
2 Hileciler Aninda yakalanir
3 Hileciler Dupeciler Oyundayken DC olurlar..
4 Otomatik Banlanirlar..