PtokaX forum

Stuff => Offtopic => Topic started by: pHaTTy on 17 December, 2003, 12:11:55

Title: Tags, and Client versions
Post by: pHaTTy on 17 December, 2003, 12:11:55
Can someone give me a big list of all ways of catching clients,


<++ = DC++
><++ is ODC++

mldc = mldc

as many as ppl can for all clients

and data that is maybe sent by these clients, for others ways not just client tag wise

ie

if a client sends certain numbers to hub, that can be caught, or things like that, maybe certain numbers

and also please things like client versions as many as possible

errrm that all i think, oh and as many ways of finding fake tags

thanx

-phatty

Title:
Post by: NightLitch on 17 December, 2003, 12:19:27
As for a start maybe I Am sharing this wonderful
PaseMyInfo Function to you all...

I find it very good... but maybe it can be better...

NOTE: Code gotten from Skrollster...  
function doParseMyInfo( sMyInfo )
local sClient = "u" -- undefined
local sIsDcPlusplus,c,sDTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*<%+%+ ([^$<>]+)>%$" )
local sIsDCGUI,c,sGTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
local sIsNMDC2,c,sNTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
local sIsOther,c,sSpeed,sShare = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*%$ $([^$]+)[^$]%$[^$]*%$%s*(%d+)%$" )
local sTagInfo
local iShare = tonumber( sShare )
if sIsNMDC2 then
sTagInfo = sNTagInfo
sClient = "n" -- NMDC v2
elseif sIsDCGUI then
sTagInfo = sGTagInfo
sClient = "g" -- dcgui
elseif sIsDcPlusplus then
sTagInfo = sDTagInfo
local sIsOdc,c,sOdcTag = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*")
local sFakeInfo = strfind( sMyInfo,"<%+%+ V:.*><%+%+ V:.*>")
if sFakeInfo then
sClient = "f" --Faking dc++ tag
elseif sIsOdc then
sClient = "o" -- oDC
else
sClient = "d" -- DC++
end
elseif sIsOther then
local sIsMLDC = strfind( sMyInfo, "mld" )
if sIsMLDC then
sClient = "m"
end
if sSpeed and iShare then
return sClient, iShare, sSpeed, nil
else
return sClient, nil, nil, nil
end
else
sClient = "f"-- fake
return sClient, nil, nil, nil
end
local tFlags = {}
sTagInfo = sTagInfo..","
gsub( sTagInfo, "(.):([^,]+),", function( letter, value ) %tFlags[letter] = value ; end )
if not tFlags["H"] or not tFlags["S"] or not tFlags["V"] or not tFlags["M"]then
sClient = "f" -- fake
return sClient, nil, nil, nil
end
if sClient == "n" then
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
elseif sClient == "d" then
tFlags["V"] = tonumber(tFlags["V"])
if tFlags["V"] and tFlags["V"] < 0.24 then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
else
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
end
if tFlags["H"] < 0 then
sClient = "f"
end
elseif sClient == "g" then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
elseif sClient == "o" then
iVersion = tonumber(tFlags["V"])
if iVersion < 0.24 then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
else
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
end
local sIsOdc,c,sOdcTag = strfind(sMyInfo , "^%$MyINFO %$ALL [^ ]+ [^$]*")
tFlags["V"]=sOdcTag
if tFlags["H"] < 0 then
sClient = "f"
end
end
return sClient, iShare, sSpeed, tFlags
end

function doGetHubNumber(sHubTag, iHubCheckMethod)
local tHubs = {0}
local _,c = gsub( sHubTag, "(%d+)", function( x ) %tHubs[1] = %tHubs[1] + tonumber( x ) end, 3 )
if not (c == iHubCheckMethod) then tHubs[1] = 0 - tHubs[1] end
return tHubs[1]
end

Type of Clients:

 u: unknow tag (probably NMDC)
  f: tag parsed badly (probably faker)
 m: mldc client
 d: valid dc++ tag
 o: valid oDC tag
 g: valid DCGUI tag
 n: valid NMDC v2 user with tag


/NightLitch
Title:
Post by: c h i l l a on 17 December, 2003, 12:19:53
dc++ and its modds have in their PK  from the Key string..

a DCPLUSPLUS(VERSION)   I think thats quite relyable
Title:
Post by: pHaTTy on 17 December, 2003, 12:22:21
QuoteOriginally posted by c h i l l a
dc++ has in his PK  from the Key string..

a DCPLUSPLUS(VERSION)   I think thats quite relyable

yep thanx thats great, thats the sort of stuff i need to know :))

thanx, if you know anymore then please tell me, or if anyone knwo more please,,,
Title:
Post by: c h i l l a on 17 December, 2003, 12:28:24
hmm..  but I think its not catchable by Ptokax...
I just see it when someone downloads form me or I from him...  then I see it on BCDC,  but I haven't seen any PK string on Connect to Ptokax...  so not worthy actually...  but I will look, cause this is really becoming a big issue.. how to detect whitch client it really is.
Title:
Post by: NightLitch on 17 December, 2003, 12:29:14
I think you are up to something better than I have posted I think...

And I will be most happy to see what you have to bring us Phatty... :-)

If there can be better Client Check than the one I use
that Skrollster have made then post it...

I hope you share it when it's ready bro....

/NL
Title:
Post by: pHaTTy on 17 December, 2003, 12:31:00
it will be here soon, but first i need to find all possible ways of catching clients, wether its lua or not ;)
Title:
Post by: c h i l l a on 17 December, 2003, 12:59:53
i mixed it all up, well just got here for more info about $Key and $Lock and when they are sent, okey...

http://wza.digitalbrains.com/DC/doc/Introduction.html (http://wza.digitalbrains.com/DC/doc/Introduction.html)
Title:
Post by: pHaTTy on 17 December, 2003, 13:23:24
now you confused me....:P

thats just dc protocol, im looking for tags etc :P :))
Title:
Post by: c h i l l a on 17 December, 2003, 13:49:54
but if you look  in client to client handshakes..  there  the client sends a $Lock  with a PK  and in that PK you can find the DCPLUSPLUS     if it a dc++mod.
but you need to connect to the client first.
Title:
Post by: pHaTTy on 17 December, 2003, 13:55:51
QuoteOriginally posted by c h i l l a
but if you look  in client to client handshakes..  there  the client sends a $Lock  with a PK  and in that PK you can find the DCPLUSPLUS     if it a dc++mod.
but you need to connect to the client first.

yep that i have thx, but i stil do not know all of the ways of finding them, ie versions, for dc stealth, what ways i can i find that when connecting to it...
Title:
Post by: [NL]trucker on 17 December, 2003, 15:23:52
Phatty

i think you better ask for the adresses of the makers of all these clients and ask them about it.

they should be ablle to give you the info you want.
Title:
Post by: Event_Horizon on 17 December, 2003, 15:50:07
QuoteOriginally posted by [NL]trucker
Phatty

i think you better ask for the adresses of the makers of all these clients and ask them about it.

they should be ablle to give you the info you want.

good idea, but plz do it in a PM

these client addresses shouldn't be more public as they are... sone of them are good for OPs & Owners but not for a normal User
Title:
Post by: SaintSinner on 17 December, 2003, 15:58:02
try to download each one and connect to
a test hub and see what each one sends...
just a thought. :D
Title:
Post by: [NL]trucker on 17 December, 2003, 22:47:00
then he still needs to know where to get them so send
him the urls of the progs and he could do so.

ofcours in pm.
Title:
Post by: pHaTTy on 18 December, 2003, 00:02:42
no doesnt matter, dont send any urls, i not got time to go around to 10 forums, i asked here to get them in 1 thread, not all over the web :p
Title:
Post by: plop on 18 December, 2003, 00:21:20
<+V:
<++V:
<+ V:
all 3 bcdc++ versions, 2 of them show the limiter in bytes.
on some mods the speed is shown by a L: (bcdc++ cafe is using U:)

dcpro

IDC same as dc++ tag just the hub tag is in the wrong order.
H:op/reg/guest

no L or L:* means no limiter, limiter is showing the speed "per" slot.

tag like dc++ but with a letter wich isn't a K means czdc (old versions).


plop
Title:
Post by: MrZ on 18 December, 2003, 05:22:11
Hia:))

I maybe dumb, but dosnt all this just fall in the drain if they are smart enough to type in their own tag, or let the client simulate dc++ ??

We are right now in trying to rise the client version alowed in a hub, just to try stop fakers..even if we know they always be one step b4 us :-/

NightLitch... can u pls explain what the script from Skrollster does..

Z ya guys
Title:
Post by: plop on 18 December, 2003, 14:22:27
QuoteOriginally posted by MrZ
Hia:))

I maybe dumb, but dosnt all this just fall in the drain if they are smart enough to type in their own tag, or let the client simulate dc++ ??

We are right now in trying to rise the client version alowed in a hub, just to try stop fakers..even if we know they always be one step b4 us :-/

NightLitch... can u pls explain what the script from Skrollster does..

Z ya guys
the average I.Q. of faker is low, there are a couple smart 1ce but the rest walks after them.
so if we scripters do our best we can beat the dumb faker.
1 of the way's my a.i. bot auto bans 1 type of fake tag reached the stealth forum month's after i build that (prob more but no hub name was given on that).
we can't make it imposible for them 2 enter, but @ least we can make it very hard.

plop
Title:
Post by: NightLitch on 18 December, 2003, 15:56:07
Well MrZ, where to begin... heh...

This "script" function is a finish Client Checker,
Phatty tries to create a better ...

But I have found this one really realiable...

Exept for some days ago when there was many DC:PRO
clients coming into our hub.

Have tried modify the function for it but my knowlege seems
to be to little for creating it... Or as before I have missed
a simple part... :-)

But you can try this Script MrZ perhaps it will do until Phatty
brings us his fine Client Checker... :-)

-------------------------------------------------------------------------------------------------------------------------------------------
---===[ CLIENT CHECKER ]===---
--     By: NightLitch 2003
--        Request by: Dyzan
-------------------------------------------------------------------------------------------------------------------------------------------
--
-- Allowed Clients: Dc++, oDC, DcGui & Nmdc 2
--
-- NOTES:
--
-- NMDCv1 is blocked
-- MLDC is blocked
-- FakeClient is blocked (It should be)
--
-------------------------------------------------------------------------------------------------------------------------------------------

 BotName = "[-Client-Checker-]"

 -- Master --
MSR = {
Lvl = 0,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Moderator --
MOD = {
Lvl = 4,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Operator --
OPR = {
Lvl = 1,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Vip User --
VIP = {
Lvl = 2,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Reg User --
REG = {
Lvl = 3,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Regular User --
USR = {
Lvl = -1,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

-- Allow Connections Speeds --
AllowSpeed = {}
AllowSpeed["28.8Kbps"] = 0
AllowSpeed["33.6Kbps"] = 0
AllowSpeed["56Kbps"] = 0
AllowSpeed["ISDN"] = 0
AllowSpeed["DSL"] = 1
AllowSpeed["Cable"] = 1
AllowSpeed["LAN(T1)"] = 1
AllowSpeed["LAN(T3)"] = 1
AllowSpeed["Satellite"] = 0
-------------------------------------------------------------------------------------------------------------
function Main()
frmHub:RegBot(BotName)
end
-------------------------------------------------------------------------------------------------------------
function DataArrival(curUser,data)
if (strsub(data,1,7) == "$MyINFO") then
local sClient, iShare, sSpeed, tFlags = doParseMyInfo(data)
-- Master Check Slots/Hubs/MinSlotsPerHub -------------------------------------------------------------------
if curUser.iProfile == MSR.Lvl then
CheckClient(curUser,sClient,tFlags,MSR)
CheckSlotsHubs(curUser,MSR.MinSlots,MSR.MaxSlots,MSR.MaxHubs,MSR.MinSlotsPerHub,tFlags)
-- Moderator Check Slots Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------
elseif curUser.iProfile == MOD.Lvl then
CheckClient(curUser,sClient,tFlags,MOD)
CheckSlotsHubs(curUser,MOD.MinSlots,MOD.MaxSlots,MOD.MaxHubs,MOD.MinSlotsPerHub,tFlags)
-- Operator Check Slots/Hubs/MinSlotsPerHub -----------------------------------------------------------------
elseif curUser.iProfile == OPR.Lvl then
CheckClient(curUser,sClient,tFlags,OPR)
CheckSlotsHubs(curUser,OPR.MinSlots,OPR.MaxSlots,OPR.MaxHubs,OPR.MinSlotsPerHub,tFlags)
-- Vip Check Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------------------
elseif curUser.iProfile == VIP.Lvl then
CheckClient(curUser,sClient,tFlags,VIP)
CheckSlotsHubs(curUser,VIP.MinSlots,VIP.MaxSlots,VIP.MaxHubs,VIP.MinSlotsPerHub,tFlags)
-- Reg Check Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------------------
elseif curUser.iProfile == REG.Lvl then
CheckClient(curUser,sClient,tFlags,REG)
CheckSlotsHubs(curUser,REG.MinSlots,REG.MaxSlots,REG.MaxHubs,REG.MinSlotsPerHub,tFlags)
-- User Check Slots/Hubs/MinSlotsPerHub ---------------------------------------------------------------------
elseif curUser.iProfile == USR.Lvl then
CheckClient(curUser,sClient,tFlags,USR)
CheckSlotsHubs(curUser,USR.MinSlots,USR.MaxSlots,USR.MaxHubs,USR.MinSlotsPerHub,tFlags)
end
-- Speed Check ----------------------------------------------------------------------------------------------
SpeedCheck(curUser, sSpeed)
end
end
-------------------------------------------------------------------------------------------------------------
function CheckSlotsHubs(curUser,mnSlots,mxSlots,mxHubs,SlotPerHub,tFlags)
if tFlags["S"]==nil then
curUser:SendData(BotName,"You are hidding your Tag for checking your slots.")
curUser:Disconnect()
elseif (tonumber(tFlags["S"]) < mnSlots) then
curUser:SendData(BotName,"You have too litle slots open ( "..tFlags["S"].." ) Minimum slots is ( "..mnSlots.." ). ")
curUser:Disconnect()
elseif (tonumber(tFlags["S"]) > mxSlots) then
curUser:SendData(BotName,"You have too many slots open ( "..tFlags["S"].." ) Maximum slots is ( "..mxSlots.." ). ")
curUser:Disconnect()
elseif tFlags["H"]==nil then
curUser:SendData(BotName,"You are hidding your Tag for checking your hubs.")
curUser:Disconnect()
elseif (tonumber(tFlags["H"]) > mxHubs) then
curUser:SendData(BotName,"You are in too many hubs ( "..tFlags["H"].." ) Max Hubs is ( "..mxHubs.." ). ")
curUser:Disconnect()
elseif (SlotPerHub and tonumber(tFlags["S"]) < tonumber(tFlags["H"]) * SlotPerHub) then
curUser:SendData(BotName, "You have not met the Minimum slots/hub ( "..SlotPerHub.." ), You need to Share ( "..(tFlags["H"]*SlotPerHub).." ) slots.")
curUser:Disconnect()
end
end
-------------------------------------------------------------------------------------------------------------
function CheckClient(curUser,sClient,tFlags,Level)
-- DC++ Check --
if sClient == "d" then
VersionCheck(curUser,tFlags,Level.DcppVer,"DC++","http://dcplusplus.sourceforge.net")
-- oDC Check --
elseif sClient == "o" then
VersionCheck(curUser,tFlags,Level.oDcVer,"oDC","http://gempond.com/odc")
-- DcGui Check --
elseif sClient == "g" then
VersionCheck(curUser,tFlags,Level.DcGuiVer,"DcGui","http://dc.ketelhot.de")
-- MLDC Check
elseif sClient == "m" then
curUser:SendData(BotName,"Your client is not allowed here....")
curUser:Disconnect()
-- FakeDC Check --
elseif sClient == "f" then
curUser:SendData(BotName,"Your client is not allowed here....")
curUser:Disconnect()
-- Unknown Check --
elseif sClient == "u" then
curUser:SendData(BotName,"Your client is not allowed here....")
curUser:Disconnect()
-- NMDC 2 Check --
elseif sClient == "n" then
VersionCheck(curUser,tFlags,Level.Nmdc2Ver,"NMDC 2","http://neo-modus.com")
else
curUser:SendData(BotName,"Your client is not allowed here....")
curUser:Disconnect()
end
end
-------------------------------------------------------------------------------------------------------------
function VersionCheck(curUser,tFlags,Version,Client,DownloadClient)
if (tFlags["V"] == nil )then
curUser:SendTo(BotName, "You are hidding your Tag for checking your client version.")
end
if Client == "DcGui" then
if (tFlags["V"] < Version) then
curUser:SendData(BotName,"You are using "..Client.." version [ "..tFlags["V"].." ]")
curUser:SendData(BotName,"The oldest version allowed is "..Client.." [ "..Version.." ], you may download the latest "..Client.." at "..DownloadClient)
curUser:Disconnect()
end
else
if (tFlags["V"] < tonumber(Version)) then
curUser:SendData(BotName,"You are using "..Client.." version [ "..tFlags["V"].." ]")
curUser:SendData(BotName,"The oldest version allowed is "..Client.." [ "..Version.." ], you may download the latest "..Client.." at "..DownloadClient)
curUser:Disconnect()
end
end
end
-------------------------------------------------------------------------------------------------------------
function doParseMyInfo( sMyInfo )
local sClient = "u" -- undefined
local sIsDcPlusplus,c,sDTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*<%+%+ ([^$<>]+)>%$" )
local sIsDCGUI,c,sGTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
local sIsNMDC2,c,sNTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
local sIsOther,c,sSpeed,sShare = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*%$ $([^$]+)[^$]%$[^$]*%$%s*(%d+)%$" )
local sTagInfo
local iShare = tonumber( sShare )
if sIsNMDC2 then
sTagInfo = sNTagInfo
sClient = "n" -- NMDC v2
elseif sIsDCGUI then
sTagInfo = sGTagInfo
sClient = "g" -- dcgui
elseif sIsDcPlusplus then
sTagInfo = sDTagInfo
local sIsOdc,c,sOdcTag = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*")
local sFakeInfo = strfind( sMyInfo,"<%+%+ V:.*><%+%+ V:.*>")
if sFakeInfo then
sClient = "f" --Faking dc++ tag
elseif sIsOdc then
sClient = "o" -- oDC
else
sClient = "d" -- DC++
end
elseif sIsOther then
local sIsMLDC = strfind( sMyInfo, "mld" )
if sIsMLDC then
sClient = "m"
end
if sSpeed and iShare then
return sClient, iShare, sSpeed, nil
else
return sClient, nil, nil, nil
end
else
sClient = "f"-- fake
return sClient, nil, nil, nil
end
local tFlags = {}
sTagInfo = sTagInfo..","
gsub( sTagInfo, "(.):([^,]+),", function( letter, value ) %tFlags[letter] = value ; end )
if not tFlags["H"] or not tFlags["S"] or not tFlags["V"] or not tFlags["M"]then
sClient = "f" -- fake
return sClient, nil, nil, nil
end
if sClient == "n" then
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
elseif sClient == "d" then
tFlags["V"] = tonumber(tFlags["V"])
if tFlags["V"] and tFlags["V"] < 0.24 then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
else
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
end
if tFlags["H"] < 0 then
sClient = "f"
end
elseif sClient == "g" then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
elseif sClient == "o" then
iVersion = tonumber(tFlags["V"])
if iVersion < 0.24 then
tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
else
tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
end
local sIsOdc,c,sOdcTag = strfind(sMyInfo , "^%$MyINFO %$ALL [^ ]+ [^$]*")
tFlags["V"]=sOdcTag
if tFlags["H"] < 0 then
sClient = "f"
end
end
return sClient, iShare, sSpeed, tFlags
end
-------------------------------------------------------------------------------------------------------------
function doGetHubNumber(sHubTag, iHubCheckMethod)
local tHubs = {0}
local _,c = gsub( sHubTag, "(%d+)", function( x ) %tHubs[1] = %tHubs[1] + tonumber( x ) end, 3 )
if not (c == iHubCheckMethod) then tHubs[1] = 0 - tHubs[1] end
return tHubs[1]
end

Have made some quick mods so I hope it works otherwise
tell me...

/NL
Title:
Post by: NightLitch on 18 December, 2003, 15:59:14
Hope you don't mind I posted this script Phatty... :-)

Have a good one / NL
Title:
Post by: MrZ on 18 December, 2003, 18:08:06
hehe:))

Tnx guys..lova ya
Title:
Post by: turkiye on 18 December, 2003, 19:00:42
QuoteOriginally posted by MrZ
hehe:))

Tnx guys..lova ya

HEHHEHEHEHEHE :D
Title:
Post by: c h i l l a on 19 December, 2003, 12:17:57
dc and its derivates send  $Version 1,0091|
neomodus
nothing new,

whitch clients actually support the $MultiConnectToMe ??
Title:
Post by: NightLitch on 28 December, 2003, 00:57:56
How is the project going Phatty ??? Am Wating... :-p

There is so many clients out there now...

problem to block or check many of them...

How do I see the different on the REAL client and a
emulated one ?? can I see it ???

and want to know if DCTC is the same as DcGui ??? cause
both run in Linux ??

But the Main issue is between the Real & emulated can
it be checked in some way ??? Or do we have to live with it ???
Title:
Post by: plop on 28 December, 2003, 02:00:51
QuoteOriginally posted by NightLitch
and want to know if DCTC is the same as DcGui ??? cause
both run in Linux ??
DCTC = direct connect text client.
DCGUI = direct connect Graphical users interface.

dcgui is a frontend for dctc, when you install it you can see it installs the dctc library's.

plop
Title:
Post by: [ANCIENT]Klismo on 28 December, 2003, 04:05:45
Question:

is there a way to find Dc++ Stealth by script? Couse not even other "Client Finder" DC mods do find a well configured Dc++ Stealth to my knowledge. But then again i might be VERY wrong.

I tested even the good old DC++!k and 10-12 other modded clients.
Title:
Post by: Event_Horizon on 28 December, 2003, 11:07:20
The newest DC++k client can detect these damn stealth clients...

U can find the link @ this forum in LINKS
Title:
Post by: NightLitch on 28 December, 2003, 11:41:30
QuoteHow do I see the different on the REAL client and a emulated one ?

Must I use DC++k or could it be done with scripting ???

And one other strange thing I have noticed is that in my
above script, I have put in checks for DC:PRO but I can
not check slots or version cause they are nilled it says in
hubsoft... Plop or anyone have a different view/knowledge
about it ??? (my expressions could be wrong here)
Title:
Post by: plop on 28 December, 2003, 17:36:31
QuoteOriginally posted by NightLitch
QuoteHow do I see the different on the REAL client and a emulated one ?

Must I use DC++k or could it be done with scripting ???

And one other strange thing I have noticed is that in my
above script, I have put in checks for DC:PRO but I can
not check slots or version cause they are nilled it says in
hubsoft... Plop or anyone have a different view/knowledge
about it ??? (my expressions could be wrong here)
have 2 check dc:Pro some more, currently they can only enter hub's with my script in dc++ mode, and then it's just the same 2 get there slots/hubs.
ptokax does the key/lock checking himself, and as far as i know there is no way 2 pass that stuff 2 the scripts.
if it would be posible i still wouldn't suggest doing so, clients can do that without lagging the hub.
if a client has a tag and you can't get slots or anything else from it you gotta check why and in most cases it's the best 2 get rig of those users.
because many of those times they cause a error in the script witch lets them stay, the more errors you filter away the cleaner your hub is.
2 name an example, the old faking dc++k had an k behind the version number, if you grab the full version from the tag and convert that 2 a number you get nil, on that nil you kick/ban them.
if you check the allin1 script you can find another trick witch automaticly bans some bad setup stealth versions.

plop
Title:
Post by: NightLitch on 28 December, 2003, 17:57:58
ThX Plop for the explanation...

So I can without problem accept Emulated DC++ without
feeling that its gonna be errors becouse of it ???

Ex. DC:PRO

I have Locked/Denyed welcome, But I have Discovered that DCPRO can lock slots/hub...

How Can I fix that ??

My above script should only let DC++,oDC,NMDC2 & DCGUI in...

but my dilema is that even DC++ stealth can come in...

but I haven't find any DC stealth version above 0.52... but
Am sure it is...

Is the only way to block those clients with DC++k ???
I have downloaded the new one but I can log in without no
problem with DC stealth...

Advises plz...
Title:
Post by: plop on 28 December, 2003, 19:12:46
the lock slots/hub from dcpro isn't like stealth.
for example you are in 1 hub and have 1 slot, in the settings the slot/hub lock are on 1/1.
if you now enter 1 more hub the client automaticly opens 1 more slot.
the amount of slots are locked 2 the amount of hub's.
for stealth it's simply because you know how 2 set it up correct unlike 75% of the ppl who use it.
i'm trying 2 use every error they can make in the setup 2 ban there ass.
if you want i can give you the address of my testhub and make you op there, so you can play a little bit with it and unban yourself.
like i sayd before, a good fake client is imposible 2 find but we can make it really hard for them 2 enter.

plop
Title:
Post by: NightLitch on 28 December, 2003, 23:52:41
Sounds great... I PM you in a Day or Two, gotta go to bed...

Work sucks this time a year...
 :P
Title:
Post by: plop on 29 December, 2003, 00:07:06
QuoteOriginally posted by NightLitch
Sounds great... I PM you in a Day or Two, gotta go to bed...

Work sucks this time a year...
 :P
oki

plop
Title:
Post by: xokas on 29 December, 2003, 01:25:54
plop what is that stuff that ya working on?
Title:
Post by: plop on 29 December, 2003, 02:03:30
QuoteOriginally posted by xokas
plop what is that stuff that ya working on?
artificial insanety, the most ass kicking bot around.
like they say, bot's are mady by lazy op's, and i'm really lazy when it comes 2 that.
everything witch can be scripted out for bad users is in it.
if you don't fake 100% perfect your ass is banned.
about 75+ bans per day on odin's hub (that includes ppl who are in more then 101 hubs or have 101 slots opend).
now i write this bure is on 2376 bans, check here (http://board.univ-angers.fr/thread.php?threadid=824&boardid=17&styleid=1#7) to see how much on the 25 this month.
you gotta be a good op 2 beat that. lol
all the op's have left 2 search for is bad files and limiters, dc++k finds the fake shares.

plop
Title:
Post by: [ES]latinmusic on 02 January, 2004, 00:17:36
QuoteOriginally posted by NightLitch Ex. DC:PRO

I have Locked/Denyed hmmm.... nigthlitch, this time you don't know what are you talking about!!!, anyway not time for explanations now but download the client and play a little with it i most say. That comment is a little dangerous. I have been helping in that client several month and now people are trying to stop it, insteresting point and without no good reason :(
Title:
Post by: plop on 02 January, 2004, 00:51:45
the new odc 5.3 has a new style of tag they could have added that info 2 the changelog 2 be nice.

plop
Title:
Post by: pHaTTy on 02 January, 2004, 11:15:48
QuoteOriginally posted by plop
the new odc 5.3 has a new style of tag they could have added that info 2 the changelog 2 be nice.

plop

heheh means i still dont change nothink in my project, i dont use < for odc :)

but glad you helping keep me updated with tags he he he, im falling behind atm anyways haha :))
Title:
Post by: plop on 02 January, 2004, 15:28:41
QuoteOriginally posted by (uk-kingdom)pH?tt?
heheh means i still dont change nothink in my project, i dont use < for odc :)

but glad you helping keep me updated with tags he he he, im falling behind atm anyways haha :))
i gotta change a couple things in my bot, it's way 2 locked for those tags 2 enter. lol
userinfo.
client identyfier.
fake version banner.
thats just a couple places, hope that that is all. lol

btw there is a modded version on the TGA site witch has the old odc style tag.

plop
Title:
Post by: c h i l l a on 06 January, 2004, 22:13:09
dc pro is quite cool client, still unstable but okey, and it has aunique func.

a send file func.

I thaught it was a advanced function where, you can allow ones ip to connect to you client, straight away, and also to PM him , so the hub isn't used, but its simpler, the file transfer protocoll in dc pro.

client -> client1

client (clientIP) > $To: client1 From: client $ #sendfile "Filename",Filesize|

= send a request

client1 -> client

client1 (client1IP) > $To: client From: client1 $ #getfile "Filename"|

= accepts a request

ergo, client1 will then send either a ConnectToMe or a RevConnectToMe to client, cause he wants the file.
Title:
Post by: psf8500 on 27 January, 2004, 14:45:24
Interesting thread here.

As you may or may not known im the author of DC++k CDM (http://www.ukdnb.dsl.pipex.com/dcpluspluskcdm/) . So i thought i'd try and help with some client detection that can be done on a hub level rather than client side.

Heres what i got:

$MyINFO

The character after the connection speed represents the icon to be displayed in the user list for NMDC clients (fileserver, away, etc)
DC++ and oDC does not make use of this and always sends strchar( 1 ) (normal icon) for this.

Any client with a DC++ tag that sends anything other than strchar( 1 ) is modded. Clients that i know of that do this are:

iDC++ (also has "zDC++ (has "zDC++[" in description but can be turned off. Its always sent if in more than 3 hubs)
MS++V (has "" in description also can be turned off but always sent if in more than 3 hubs)
DC++k (0.177xxx and 0.251 and maybe other versions)
CZDC++ (the author quickly add stealth mode to 0.306b after i added this detection to my client)

CZDC++, zDC++ and MS++V also allow you to select "Modem" and "Wireless" as connection speed

Search

DC++ stealth has an option not to respond to searches, possibly detectable as script could send a search request directly to the client. But maybe receiving the results might cause problems with passive mode as DC++ clients will not respond to passive searches.

If i think of anything else i'll let you know  :)

btw. you can detect my client by looking for "
Title:
Post by: pHaTTy on 27 January, 2004, 14:46:58
thx this helps loads :))))
Title:
Post by: piglja on 27 January, 2004, 14:47:50
wow...

Thanks:)
Title:
Post by: pHaTTy on 27 January, 2004, 14:49:29
QuoteOriginally posted by piglja
wow...

Thanks:)

lol spammer :P
Title:
Post by: piglja on 27 January, 2004, 14:50:49
hmm, I am not, I am just thanking for a great info... I think it is usefull to use within allin1 maybe:P
Title:
Post by: pHaTTy on 27 January, 2004, 14:51:18
QuoteOriginally posted by piglja
hmm, I am not, I am just thanking for a great info... I think it is usefull to use within allin1 maybe:P

ghehehe okay :))
Title:
Post by: plop on 27 January, 2004, 16:50:27
cool stuff 2 know, and handy indeed.
thx psf8500

plop
Title:
Post by: pHaTTy on 30 January, 2004, 13:03:55
QuoteOriginally posted by psf8500
Interesting thread here.

As you may or may not known im the author of DC++k CDM (http://www.ukdnb.dsl.pipex.com/dcpluspluskcdm/) . So i thought i'd try and help with some client detection that can be done on a hub level rather than client side.

Heres what i got:

$MyINFO

The character after the connection speed represents the icon to be displayed in the user list for NMDC clients (fileserver, away, etc)
DC++ and oDC does not make use of this and always sends strchar( 1 ) (normal icon) for this.

Any client with a DC++ tag that sends anything other than strchar( 1 ) is modded. Clients that i know of that do this are:

iDC++ (also has "zDC++ (has "zDC++[" in description but can be turned off. Its always sent if in more than 3 hubs)
MS++V (has "" in description also can be turned off but always sent if in more than 3 hubs)
DC++k (0.177xxx and 0.251 and maybe other versions)
CZDC++ (the author quickly add stealth mode to 0.306b after i added this detection to my client)

CZDC++, zDC++ and MS++V also allow you to select "Modem" and "Wireless" as connection speed

Search

DC++ stealth has an option not to respond to searches, possibly detectable as script could send a search request directly to the client. But maybe receiving the results might cause problems with passive mode as DC++ clients will not respond to passive searches.

If i think of anything else i'll let you know  :)

btw. you can detect my client by looking for "

ok been updating my info bot mod, and this has brought lots of help to me thx alot, hope to see if u know anymore :) thx
Title:
Post by: pHaTTy on 30 January, 2004, 13:14:08
can you suplly the names

iDC = Italian DC
zDC???

BCDC = BearClaw DC

etc

i dont knwo them allsorry for being a pain eeheh
Title:
Post by: c h i l l a on 30 January, 2004, 13:26:07
yepp Black Claw ;)
Title:
Post by: pHaTTy on 30 January, 2004, 13:35:15
QuoteOriginally posted by c h i l l a
yepp Black Claw ;)

huh, its not BearClaw???????  ?(
Title:
Post by: psf8500 on 30 January, 2004, 23:14:49
Here's another idea, maybe this already exists, if so.. sorry (and give me a link  ;) )

Any client entering the hub with out a tag gets sent "$GetNetInfo|" from the hub.
Only NMDC2 will reply to this (with "$NetInfo 4$1$A$0|" or something similar). If it does reply then it should be kicked for hiding.

This could also be expanded to check for fake tags by checking the first and second values in the NetInfo against the displayed tag.

I started to make a lua script to do this with limited success (not much of a scripter   ;) ).

Bot = "NMDCBOT"

function NewUserConnected(user)
   local Msg = "$GetNetInfo|"
   user:SendData(Msg)
end

function DataArrival(user,data)
   if (strsub(data,1,8) == "$NetInfo") then
      SendToOps(Bot, "NMDC v2 "..data)
   end
end

The trouble is the NMDC2 client gets disconnected from the hub when it sends the $NetInfo, i guess PtokaX dosn't recognise the command and disconnects (am i missing something??).

I seem to remember reading somewhere that when PtokaX receives an unknown command it gets sent to the script and if the script dosnt handle it the user gets disconnected. Maybe you script guru's know more about this...
Title:
Post by: pHaTTy on 30 January, 2004, 23:21:18
hmm netinfo shud be fine :/
Title:
Post by: psf8500 on 30 January, 2004, 23:34:03
probably me doing something wrong then  :P
Title:
Post by: pHaTTy on 30 January, 2004, 23:36:48
QuoteOriginally posted by psf8500
probably me doing something wrong then  :P

lol, once i fix my modem, ill have a little mess around with netinfo, see what i can find ;)
Title:
Post by: [NL]Pur on 31 January, 2004, 00:22:20
@psf8500

didn't test with it

tho you could try too add this

frmHub:EnableFullData(1)

in your script
Title:
Post by: psf8500 on 31 January, 2004, 00:53:51
Quote@psf8500

didn't test with it

tho you could try too add this

frmHub:EnableFullData(1)

in your script

Yep that helps thanks :)

This allows an NMDC2 user to connect:

Bot = "FakeNMDC"

function Main ()
frmHub:EnableFullData(1)
end

function NewUserConnected(user)
local Msg = "$GetNetInfo|"
user:SendData(Msg)
end

function DataArrival(user,data)
if (strsub(data,1,8) == "$NetInfo") then
SendToOps(Bot, "NMDC v2 "..data)
end
return 1
end


This helps me with testing how NMDC2 users respond to $GetNetInfo... I'll leave up to you scripters to write a nice little script that kicks hiding/fake tag NMDC2 users :)
Title:
Post by: NightLitch on 31 January, 2004, 01:54:17
Guess I need to install NMDC2 to take an even closer look.

But If I remember right RabidWombat created a standalone for it..
Title:
Post by: NightLitch on 31 January, 2004, 01:55:10
ahh... found it in my collection as always... is huge I must say... ;-D

function DataArrival(curUser, sData)
if(strsub(sData, 1, 7) == "$MyINFO") then
if(curUser.iVersion == nil) then
curUser:SendPM("test", "Your client is stupid");
curUser:Disconnect();
return;
end

if(strfind(curUser.iVersion, "^1.0091$") and curUser.bOperator == nil) then
-- the . is a magic char on purpose
curUser:SendData("$GetNetInfo|");
end
end

if(strsub(sData, 1, 8) == "$NetInfo") then
local info = strsub(sData, 9, -1);
local s, e, slots, hubs, mode, cap = strfind(sData, "^%$NetInfo (%d+)%$(%d+)%$(%w)%$*(%d*)%|$");

if(s == nil)
then curUser:Disconnect();-- the search failed, incorrect NetInfo
elseif(cap == "") then
curUser:SendData("Hub-Security", "Please download the latest Neo Modus Client");
curUser:Disconnect();
else
slots = tonumber(slots) or 0;
hubs = tonumber(hubs) or -1; -- second value is for invalid number
cap = tonumber(cap) or -1; -- second value is for invalid number

-- do what you want with the rest of the stuff above
-- slots: duh
-- hubs: all open hubs (even if OP and even if the user isn't connected :-\ )
-- mode: A or P
-- cap: kB/sec upload cap

end

return 1;
end

return 0;
end

here it is.
Title:
Post by: plop on 31 January, 2004, 02:03:55
psf8500 this was posted on the old forum, but still great that you brought it back.
this should do that.
Bot = "FakeNMDC"

function Main ()
frmHub:EnableFullData(1)
end

function NewUserConnected(user)
local Msg = "$GetNetInfo|"
user:SendData(Msg)
end

function DataArrival(user,data)
if (strsub(data,1,8) == "$NetInfo") then
      if not (strfind(user.sMyInfoString, "         user:SendData(Bot, "NMDC v2 has a tag so show it|")
         user:Disconnect()
end
end
return 1
end
i'm personaly using the the version number.
i love 2 see them disapear as soon as posible + it doesn't need full data so it uses less cpu.
forbiddenWordsnmdc = {["2.02"] = 1, ["2.01"] = 1, ["2.00"] =1 }

function NewUserConnected(user)
   if forbiddenWordsnmdc[user.iVersion] then
      user:SendData(Bot, "NMDC 2.x is not allowed. Get a real dc client like dc++ [URL]http://dcplusplus.sourceforge.net[/URL]")
      user:Disconnect()
   end
end

plop

* good that i did a preview, had the feeling some1 found wombats script. lol
Title:
Post by: pHaTTy on 01 February, 2004, 15:01:20
question about the new odc tag

S: is how many slots open and O: means how many slots are free yes?
Title:
Post by: Event_Horizon on 01 February, 2004, 15:16:26
QuoteOriginally posted by (uk-kingdom)pH?tt?
question about the new odc tag

S: is how many slots open and O: means how many slots are free yes?

e.x. O:5 means open extraslot if upload is below 5 Kb/s
Title:
Post by: pHaTTy on 02 February, 2004, 11:03:14
oh ok thx :))
Title:
Post by: [NL]Pur on 02 February, 2004, 20:57:23
Some clients and there tags

Koala DC 0.40
- TAG:
[KDC
V:x.xx, (version)
M:A, (a = active, p = passive)
S:x (amount of slots)
]


PDC 0.20p03
- TAG
<++
V:x.xxpxx,
M:A, (a = active, p = passive)
H:1, (amount of hubs)
S:1, (amount of slots)
>


PTDC++ 1.0 lite
- TAG
PTDC++ lite
<++
V:x.xx,
M:A, (a = active, p = passive)
H:x/x/x,
S:x, (slots)
PT:1.0
>

PtDC 2.0 v1.9095
- TAG
Free slots:1

<++
V:x.xx,
M:A, (a = active, p = passive)
H:x/x/x,
S:x, (x amount slots)
B:x (x upload limit)
>
Title:
Post by: pHaTTy on 02 February, 2004, 21:02:59
cool ty :)
Title:
Post by: plop on 05 February, 2004, 03:08:39
posted on the dc++CDM forum not 2 be forgotten.
QuoteOriginally posted by Stefan
Quotepsf8500
See this for more info: - http://board.univ-angers.fr/thread.php?threadid=768&boardid=17&styleid=1&sid=2e7322435905dc26e969fd45c6870c75

Hey, plop or psf, found some errors in that thread that one of you might want to point out (saves me from creating an account :P).

-------
DCTC = direct connect text client.
DCGUI = direct connect Graphical users interface.

dcgui is a frontend for dctc, when you install it you can see it installs the dctc library's.
-------

DC_GUI is a gtk+ frontend for DCTC
dc-qt is a QT frontend for DCTC http://dc-qt.sourceforge.net/
DCGUI(-qt) is a frontend for dclib (which has nothing to do with DCTC)
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/dcgui/dclib/

Also
---
whitch clients actually support the $MultiConnectToMe ??
---

I know DCGUI-qt has a setting for allowing multiple connects by the same user. If that has anything to do with $MultiConnectToMe I don't know, but it sounds plausable :)

plop