No Multisource Clients script
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

No Multisource Clients script

Started by qaz, 14 June, 2005, 00:43:40

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

qaz

Request for script what stops multisource client

i wannna stop these:

strongdc, reverse connect

and this ldc++

Thanks, qaz
-:: Northwind a.k.a qaz ::-

qaz

sorry to bother but is there any way to stop those clients...
-:: Northwind a.k.a qaz ::-

blackwings

QuoteOriginally posted by qaz
sorry to bother but is there any way to stop those clients...
if they show their real tag, then yes. then a ordinary client checker can do it.


Dessamator

hmm, PPK could probably write that, each client has a specific supports arrival, and most are unique, it doesnt matter what tag u have :)     (i think)
Ignorance is Bliss.

PPK

StrongDC++, LDC++ and maybe zDC++ is not problem to detect... but Reverse Connect is for hub same as DC++ and i don't know if is posible to detect it with counting connection request (multisource client sending more request than normal client)  :(
"Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris." - Larry Wall

blackwings

QuoteOriginally posted by Dessamator
hmm, PPK could probably write that, each client has a specific supports arrival, and most are unique, it doesnt matter what tag u have :)     (i think)
do you mean this =
MultiConnectToMeArrival(User, Data)      - Incoming multi connection request from user. If script return 1 hub don't process data.


Dessamator

Ignorance is Bliss.

Pothead

If you can implement LUA sockets in your script, you MAY be able to try and pretend that your script is a Kalmadia client.  Reverse connect will respond differently that DC++ to this.  Dunno if it's possible to do though, via LUA.

blackwings

QuoteOriginally posted by Dessamator
indeed !
then shouldn't this be enough to stop the multi-source clients? =
-- Simple anti-multi source clients

MultiConnectToMeArrival(user,data)
	if not user.bOperator then
		return 1
	end
end


PPK

QuoteOriginally posted by blackwings
do you mean this =
MultiConnectToMeArrival(User, Data)
No MultiConnectToMe is from old NMDc client is used (but i never see it working) to connect to user on another linked hub. Multisource client sending more $ConnectToMe and $RevConnectToMe commands ...
"Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris." - Larry Wall

blackwings

#10
QuoteOriginally posted by PPK
QuoteOriginally posted by blackwings
do you mean this =
MultiConnectToMeArrival(User, Data)
No MultiConnectToMe is from old NMDc client is used (but i never see it working) to connect to user on another linked hub. Multisource client sending more $ConnectToMe and $RevConnectToMe commands ...
ok, to bad :( but is it possible to add this future to ptokax? Or cant ptokax see the difference between $ConnectToMe/$RevConnectToMe spam and multi-source client user??


Dessamator

well, i had meant b4 analysing the supportarrivals of each client, but i thought that other method would work, either way, from what ppk said, i guess u can count the number of connection request  in a certain time pr something, compare to them to the norms, and kick them out if need be .
Ignorance is Bliss.

GeceBekcisi

#12
Some clients have special description tags and most of the users use them turned on. They may be detected from these descriptions and tags..

I am using a script that I butchered from Anti-rmDC++ script and its aliases, and most of the time its successful.. People know LUA better than me should feel free to show me if I am wrong or edit the script to help me learn..

----------------------------------------------------------
-- Anti-rmDC++ script by PPK
-- Added some code by GeceBekcisi
----------------------------------------------------------
-- rmDC Part (No need in PtokaX 0.3.3.0 build 17.09 or higher )
----------------------------------------------------------
function SupportsArrival(curUser, sData)
	if string.sub(sData, 10, 11) == "  " then
		curUser:SendData("| You are using a bad client, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
end
----------------------------------------------------------
-- iDC, RevCon, DCStealth, LDC, GDC, StrongDC Block Part 
----------------------------------------------------------
function MyINFOArrival(curUser, sData)
	if curUser.sDescription and string.find(curUser.sDescription, "| You are using iDC++, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
	if curUser.sDescription and string.find(curUser.sDescription, "| You are using DCStealth, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
	if curUser.sDescription and string.find(curUser.sDescription, " LDC") then
		curUser:SendData("| You are using LDC++, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
	if curUser.sDescription and string.find(curUser.sDescription, "| You are using GDC++, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
	if curUser.sDescription and string.find(curUser.sDescription, "<<< www") then
		curUser:SendData("| You are using RevConnect, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
	if curUser.sTag and string.find(curUser.sTag, "StrgDC") then
		curUser:SendData("| You are using StrongDC, so you are not allowed to access this hub. Please get a clean client from [URL]http://dcplusplus.sourceforge.net/[/URL]|")
		curUser:SendData("$ForceMove "..frmHub:GetRedirectAddress())
		curUser:Disconnect()
		return 1
	end
----------------------------------------------------------
-- Added AntiVirus script to code on 01.06.2005
----------------------------------------------------------
	if curUser.sEmail and string.find(curUser.sEmail, "myemail@host.com") then
	-- if string.find(curUser.sEmail, "myemail@host.com") or string.find(curUser.sName, "mynick") or string.find(curUser.sDescription, "none") then
		curUser:SendData("| Your DC++ system is infected by a virus. Please clean it! ||")
		--curUser:Redirect(frmHub:GetRedirectAddress()," Get a AntiVirus software! ")
		curUser:Disconnect()
		return 1
	end
----------------------------------------------------------
-- Added AntiMLDonkey script to code on 01.06.2005
----------------------------------------------------------
	if string.find(curUser.sMyInfoString, "mldonkey", 1, 1) or string.find(curUser.sMyInfoString, "replika", 1, 1) or string.find(curUser.sMyInfoString, "pepek", 1, 1) or string.find(curUser.sMyInfoString, "mldc", 1, 1) then 
		curUser:SendData("| GO AWAY!|")
		curUser:Disconnect()
		return 1
	end
end
----------------------------------------------------------
-- Anti-External Search (aka MoGLO etc)
----------------------------------------------------------
function ValidateNickArrival(curUser, sData)
	nick = string.sub(sData, 14, -2);
	if string.find(string.lower(nick), "search", 1) then
		curUser:SendData(Bot,"*** External Search isn't allowed in this hub. Go somewhere else! ***")
		curUser:Disconnect()
		return 1
	end
end
Do you need an advanced user handling script? Download UserBekcisi today (Latest Edit)
Features: User + ISP + GeoIP database, user info + share checking and many more...

Dessamator

Yep, it might work for users who dont care for changing the description and stuff, but its not "full proof". As a temporary measure it might be suitable until a way to block them completely, is found !
Ignorance is Bliss.

blackwings

#14
QuoteOriginally posted by GeceBekcisi
Some clients have special description tags and most of the users use them turned on. They may be detected from these descriptions and tags..

I am using a script that I butchered from Anti-rmDC++ script and its aliases, and most of the time its successful.. People know LUA better than me should feel free to show me if I am wrong or edit the script to help me learn..
just a few comments on your script ;)

The way you use to detect those clients is just ordinary client checker, which cant see through dc++ emulation.
its better to script what clients you want to use and disconnect all others.

And as you meantion in the script description, anti-RMDC isn't  needed any more.

And I personally think this is a faster and better anti-mldc function =
function MyINFOArrival(user,data) 
	if user.bRegistered==nil then	
		if string.find(user.sDescription,"mld(%S+)") or string.find(user.sDescription,"edonk(%S+)") then
			user:Disconnect()
			return 1
		end
	end
end


Pothead

Maybe wrong, but i think the newer ptokaX block MLDC's anyway. :)
Or it might be that the min share bugs are actually sorted. (they always have 11mb, but seem to get around all older hubsofts minshare settings.)
StrongDC can be blocked via supports as well as rm.  There is some post on this forum by PPK saying how to do it. :)

GeceBekcisi

#16
QuoteOriginally posted by blackwings
QuoteOriginally posted by GeceBekcisi
People know LUA better than me should feel free to show me if I am wrong or edit the script to help me learn..
just a few comments on your script ;)
This is my second script trial on LUA and I need any kind of comments, and thanks for yours :)

I have to see the full login sequence between hub and client like
Hub:	$Lock EXTENDEDPROTOCOLuLUX7n^Bm:3DvTgGcGXUL4=mFVxiv Pk=PtokaX
Client:	$Supports MiniSlots XmlBZList ADCGet TTHL TTHF GetZBlock ZLIG|
Client:	$Key ?????A ????0????????u?w#"3BB????/%DCN005%/???|$ValidateNick TestUSER|$Version 1,0091|
Hub:	$Supports HubINFO
Hub:	$Hello TestUSER
Client:	$GetNickList|
Hub:	$NickList ...........
Hub:	$OpList ..........
(and also must have a large client archieve, but I have newly began to create my archieve so I lack info about them) to make a better detection script but I dont know how to see it (the sequence above is taken from HubList.org logs). Is PtokaX User/Chat screen enough?
QuoteOriginally posted by Pothead
StrongDC can be blocked via supports as well as rm.  There is some post on this forum by PPK saying how to do it. :)
QuoteOriginally posted by PPK
Not bug but is easy to identify it by supports :D
[I]StrongDC++ RC9 fixed 2[/I]
$Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch QuickList GetZBlock|
[I]CZDC++ 0.666[G][/I]
$Supports UserCommand NoGetINFO NoHello UserIP2 QuickList|
[I]DC++ 0.670[/I]
$Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch GetZBlock |
Another thing to detect. DC++ sending $GetNickList before $MyINFO on login, CZDC++ and StrongDC+ after  :]
And if it is, my LUA knowledge is not enough to make a script detect special strings and their placement in supports :( That's why people knowing LUA better than me should feel free to show me if I am wrong or edit the script and add features to help me learn..
Do you need an advanced user handling script? Download UserBekcisi today (Latest Edit)
Features: User + ISP + GeoIP database, user info + share checking and many more...

PPK

QuoteOriginally posted by Pothead
Maybe wrong, but i think the newer ptokaX block MLDC's anyway. :)
Yes PtokaX block 99.9% of mldc clients, they have bug in MyINFO... but here exist few without this bug (and diferent share size than the 99.9% of blocked) and for this is script needed :(
"Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris." - Larry Wall

Pothead

Thanks for the info. I'll add it again.  :)
--Anti rmDC++ script for PtokaX 0.3.3.0 Lua 5.0.2 by PPK

--//Config
AdminNick = "!" 			-- PM Reports Goto This Nick
Bot = frmHub:GetHubBotName()

function SupportsArrival(curUser, sData)
	if string.sub(sData, 10, 11) == "  " then
		curUser:SendData( Bot.."Buggy client, go away!")
		SendPmToNick(AdminNick,Bot, " rmDC++ from IP: "..curUser.sIP.." trying to login... he is wasting time")
		curUser:Disconnect()
		return 1
	elseif string.find(sData, "Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch QuickList GetZBlock")then
		curUser:SendData( Bot.."Multisource client")
		SendPmToNick(AdminNick,Bot, " StrongDC++ from IP: "..curUser.sIP.." trying to login... he is wasting time")
		curUser:Disconnect()
		return 1
	end
end

blackwings

#19
QuoteOriginally posted by Pothead
Thanks for the info. I'll add it again.  :)
but that does only block strongdc right? not all multi source clients?


Pothead

Blackwings: Yes that only blocks strong and rm.  It was to be added to the other script posted, if wanted.

GeceBekcisi: That's because BigMuscle sorted out part of his client emulations problems. :)

blackwings

#21
added CZDC just for fun =
--Anti rmDC++ script for PtokaX 0.3.3.0 Lua 5.0.2 by PPK
--ADDED: Anti strongDC++ by Pothead
--ADDED: Anti CZDC++ by blackwings

--//Config

AdminNick = "!" 			-- PM Reports Goto This Nick

Bot = frmHub:GetHubBotName()

function SupportsArrival(curUser, sData)
	if string.sub(sData, 10, 11) == "  " then
		curUser:SendData( Bot.."Buggy client, go away!")
		SendPmToNick(AdminNick,Bot, " rmDC++ from IP: "..curUser.sIP.." trying to login... he is his wasting time")
		curUser:Disconnect()
		return 1
	elseif string.find(sData, "Supports UserCommand NoGetINFO NoHello UserIP2 TTHSearch QuickList GetZBlock")then
		curUser:SendData( Bot.."Multisource client, go away")
		SendPmToNick(AdminNick,Bot, " StrongDC++ from IP: "..curUser.sIP.." trying to login... he is his wasting time")
		curUser:Disconnect()
		return 1
	elseif string.find(sData, "Supports UserCommand NoGetINFO NoHello UserIP2 QuickList")then
		curUser:SendData( Bot.."CZDC++, go away")
		SendPmToNick(AdminNick,Bot, " CZDC++ from IP: "..curUser.sIP.." trying to login... he is wasting his time")
		curUser:Disconnect()
		return 1
	end
end


GeceBekcisi

Then can you use "DC++ sending $GetNickList before $MyINFO on login, CZDC++ and StrongDC+ after" info to detect emulating clients?
Do you need an advanced user handling script? Download UserBekcisi today (Latest Edit)
Features: User + ISP + GeoIP database, user info + share checking and many more...

GeceBekcisi

#23
Isn't there any way to do this?


Edit:  I see most of MultiSource clients have show speed option resulting addition of [xxxK/xxxK]  or [xxxM/xxxM]  like things to descriptions. If there is no Non-MultiSource client having this as an option; this can be applied too.

Now the question is; is there any Non-MultiSource client having this as an option?

If no, why not giving a try on this?
Do you need an advanced user handling script? Download UserBekcisi today (Latest Edit)
Features: User + ISP + GeoIP database, user info + share checking and many more...

Pothead

R2++ has this connection speeds, and is none-multisource. :)

SMF spam blocked by CleanTalk