Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Spambot backlash.. need help

Matthew Devanter
Registered User
Join date: 15 Aug 2006
Posts: 7
11-23-2006 08:12
Okay, maybe I have issues. Carry on. sorry.
Kitty Barnett
Registered User
Join date: 10 May 2006
Posts: 5,586
11-23-2006 09:04
From: Matthew Devanter
ANYONE who tries to make them meld into the background or not ruin thier tacky colour scheme is immediatly discounted from the sympathy list.
I found one yesterday that IM'ed me every 5 seconds with the helpful suggestion of clicking it to make the spam stop.

Using a sensor, it turned out to not only be located on an access restricted parcel but also hidden away in a pooltable. :p
Diesel Tzedek
Registered User
Join date: 11 Sep 2006
Posts: 19
11-23-2006 09:09
From: Rebecca Proudhon
No. Nothing illegal about it. Just as in WOW, people, have to agree to a TOS and Eula agreeing to allow Warden, whenever the people are online with Wow, to look at their system for any running processes, executables or known botting software of any kind. Of course it's a constant battle but that is the way the cookie crumbles. Cheaters get caught. Thieves get caught.


The fact is that copybot is a client program
so sending any kind of "is there a bot running?" request to the client will actually be like asking copybot if it is running, if the checking program was separate from the client then its protocols will get coded into copybot. Unfortunatly the tools to make this a solution that will last less than 24 hours are already out there!

From: Rebecca Proudhon

An employee who has God mode is like a bank employee. They have to be trusted. But since some people insist on being thiefs and cheats then security is installed in the bank, even to watch the employees and although it would be nice if we could all leave our cars and homes unlocked in the real world that is not a real smart thing to do and it is truly a pity that vitually every location in SL have griefers and thieves--and strangely they all have avatars created on that day and they have magically jumped the SL learning curve is a few minutes. In other words they are really just freebie alts.

i agree there are not so many people griefing as people think as its often the same ones coming back with a different account. But until LL come up with a way to verify all accounts without excluding half the world, they are not going to force verification as this will prevent a lot of people from accessing SL that have no way to verify, not just the griefers/thieves.

From: Rebecca Proudhon
All the poor quality anti-copy bot items will be removed anyway when better ones that dont spam are made, so whatever weird motivation there is to make an anti-antibot object as discussed on this thread to detect anti copybots is a total waste of time and just indicative of some hidden agenda at work....wanting store owners to be reported....for spamming..... clearly undermines SL investors and SL itself.

better ones would be ones that actually work????? and dont cause LL to put extra resources into preventing the lag they cause, so that they can concentrate on getting features done to help residents protect IP rights!!!!!!

I am a creator in SL and the copybot issue effects me too. I have been checking up on all the information i can find on copybot to try to find a way to protect my stuff from it, People who havent bothered to find out the facts on copybot and are griefing everyone in the misguided belief that they are protecting them selves and the buisinesses they run are a bigger problem than copybot, because they're stopping people from getting to their store and the stores around them.

I have noticed a bigger drop in buisiness from people avoiding all the spam in the area than i have to having my stuff copied!!!!!!!!
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
11-23-2006 10:29
CODE
[8:19]  Copyright Protection Version 3.010707: !quit
[8:19] Copyright Protection Version 3.001096: !quit
[8:19] Copyright Protection Version 3.026026: !quit
[8:19] Copyright Protection Version 3.010707: CopyBot Protection Mark III
[8:19] Copyright Protection Version 3.001096: CopyBot Protection Mark III
[8:19] Copyright Protection Version 3.026026: CopyBot Protection Mark III
[8:19] Copyright Protection Version 3.010707: Featuring:- Dynamic Protection with Low Spam.
[8:19] Copyright Protection Version 3.001096: Featuring:- Dynamic Protection with Low Spam.
[8:19] Copyright Protection Version 3.026026: Featuring:- Dynamic Protection with Low Spam.


It took me about 25 minutes, but I located the source of these messages. I had to hunt for a while, since they were relatively centered in the sim, their reach was of course, huge.

For those who might be interested, the maker is listed as [[[REDACTED]]] (person who sold copybot defeater., but some of the contents list "[[[REDACTED]]] (person who sold copybot on SLX)" as the originator. Interesting isn't it? The guy who sold Copybot on SLExchange is now selling anti-copybot protection?

(remember that idea we had about having a copybot home in on the "!quit" im rather than quitting because of it? He floods the market with defeatable copybots, then sells the means to defeat them? then he sells new versions that are defeatable in a different manner, then sells the new means to defeat them? Playing one side against the other, and getting rich in the process.)

Anyways. This thing is just a firestorm waiting to happen. I AR'd the device, but as I say, it took 25 minutes of hard-target searching to actually locate it.

Is there any way we can do a "wildcard" scan for any device with a name containing a word? rather than knowing the exact and complete object name? (I saw this done with an object that scanned for anyone with the last name "Linden" and behaved differently under those conditions)

Someone mentioned that we should consider distributing a notecard to the owners of these devices.. I think that's a good idea because it's less likely to be received as a personal attack. Any suggestions for what we should include in this notecard? (I'm a decent writer, but I tend to be wordy. I'd like something more concise than I'm usually capable of crafting).

Once again pointing out the "type of person" who uses these.. check the snapshots below.

----------------------------------

Edit (more than a year later).
Edited to remove names. In retrospect, I now beleive that the creator of the copybot defeaters (pictured below) was *NOT* the same person as the one who sold Copybot on SLX. It seems the defeater creator had simply reused some of the notecards in the copybot package (which she purchased for purposes of developing the defeater). She states that at the time, she didn't know how to make new notecards. Since she was only 2 months old in SL at the time, I'm willing to give her the benefit of the doubt.
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Ordinal Malaprop
really very ordinary
Join date: 9 Sep 2005
Posts: 4,607
11-23-2006 10:36
A wildcard search is not too hard to implement (I'll edit the script once I get home) but could probably be stopped by a more general sort of name randomiser. Clearly some arsehole has been reading threads like this one.

To be quite honest if it gets to a situation where I have to use scripted assistance to block spambots I will *not* be a happy bunny once I have done so.
_____________________
http://ordinalmalaprop.com/forum/ - visit Ordinal's Scripting Colloquium for scripting discussion with actual working BBCode!

http://ordinalmalaprop.com/engine/ - An Engine Fit For My Proceeding, my Aethernet Journal

http://www.flickr.com/groups/slgriefbuild/ - Second Life Griefbuild Digest, pictures of horrible ad griefing and land spam, and the naming of names
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
11-23-2006 10:42
I'm already not a happy bunny. This was NOT how I wanted to wake up on thanksgiving.
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-23-2006 10:58
From: Winter Ventura(I'm a decent writer, but I tend to be wordy.[/QUOTE


OMG this comes as such a surprise. :-O We would have never guessed!!!!!! You mean to tell us you aren't shy and reserved?????
Heehee. :-)

Happy Holidays everyone!!!!!
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
11-23-2006 11:07
I love you too, Jesse :p

(and actually, yes I am shy.. ironically)
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-24-2006 00:44
From: Ordinal Malaprop
A wildcard search is not too hard to implement (I'll edit the script once I get home) but could probably be stopped by a more general sort of name randomiser. Clearly some arsehole has been reading threads like this one.

To be quite honest if it gets to a situation where I have to use scripted assistance to block spambots I will *not* be a happy bunny once I have done so.


Had already considered using wildcards but realised it wouldnt work effectively.
The reason being the llSensor 16 item return limit. Even in relatively low script intense areas the number of returns would swamp the sensor.

As has been previously stated by many, no matter what we suggest we are playing catch up. And if the spammers are reading the thread then they will still be one step ahead. All we can really hope for is that the owners of the bots eventually realise the futility of it.
That or LL finally take some server-side action to auto delete / auto return anything found to be sending !quit
Tater Todd
The Grand Pubah
Join date: 15 Jul 2006
Posts: 15
11-24-2006 14:49
Thanks for the revised script Talon. Like many others, I've been getting a barrage of anti-copybot spam in my own parcel. I found the source -- a small freebie home on a 512 parcel, in a neighboring sim. And its not even a shop -- its just a private residence. People are killing me...
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
11-26-2006 11:43
From: Ordinal Malaprop
A wildcard search is not too hard to implement (I'll edit the script once I get home) but could probably be stopped by a more general sort of name randomiser. Clearly some arsehole has been reading threads like this one.

To be quite honest if it gets to a situation where I have to use scripted assistance to block spambots I will *not* be a happy bunny once I have done so.


Not to beat a dead horse..

But if we can get a wildcard into this thing, it could be pretty useable. (I still laugh at that "death ray" comment.) Luckily these protectors are not being worn as attachments (<diety /> I hope they aren't).
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Vares Solvang
It's all Relative
Join date: 26 Jan 2005
Posts: 2,235
11-26-2006 12:09
From: Winter Ventura
Not to beat a dead horse..

But if we can get a wildcard into this thing, it could be pretty useable. (I still laugh at that "death ray" comment.) Luckily these protectors are not being worn as attachments (<diety /> I hope they aren't).



I've seen numerous people wearing them as attachments. :(
_____________________
Yngwie Krogstad
Registered User
Join date: 7 Jun 2006
Posts: 233
11-26-2006 12:35
I've been thinking about solutions lately, and I've got one idea which may work. I don't know how much of a hit it would be on the asset server, but I hope it wouldn't make much difference, if any. Assuming it can even be programmed. Not only would it work for things which may have been copied by copybot, but also anything that someone may have copied by building the prims themselves, if such occurs.

I don't know if it will even work, but I'm going to throw it out there for comment and see if it is feasible, for one, and practical, for two. Possibly not.

My idea is like this. Have a server-side program running which will poll the asset server, and pull up two items at random. I believe the information is stored as information about the prims themselves, rather than an actual image of what it looks like. For example, if someone has an object that includes a 5 by 5 by 5 cube, it's not a picture of a 5 by 5 by 5 cube, but rather something to the effect of "prim type: cube. X size: 5. Y size: 5. Z size: 5." So you compare the info on the prims in random object 1, with the info on the prims in random object 2. If they're different, ignore it and move on. If they are identical, check the creators. If they are made by two different creators, flag it and send an IM to a Linden to look into these further, such as checking creation dates, creator, etc.

As it stands now, anything which is copied without permission, whether by copybot or a user with too much time on their hands, must be reported by the actual creator. This supposes first that they actually find it. Since I doubt there's a single content creator who has the patience, time, or resources to scour the whole grid looking for unauthorized copies of their work, perhaps this would be a way to get that scouring done and the results dealt with appropriately?

Just an idea anyway.
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-26-2006 12:47
From: Winter Ventura
Not to beat a dead horse..

But if we can get a wildcard into this thing, it could be pretty useable. (I still laugh at that "death ray" comment.) Luckily these protectors are not being worn as attachments (<diety /> I hope they aren't).


I dont think wild cards will work for the reasons I posted earlier. With a 16 object limit you will have to be in a pretty empty area for the scanner to have a chance to pick up a sapm bot from the general background clutter.
The alternate to wild cards is multiple scanners, each looking only for specific instance names.
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-26-2006 13:01
Or what about just cycling through a list? Sensor fires, adds 1 to the integer and the next name in list is searched for in next scan.

Think that should work well. I will make mine like that later when I get a chance.
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
11-26-2006 15:02
From: Jesse Barnett
Or what about just cycling through a list? Sensor fires, adds 1 to the integer and the next name in list is searched for in next scan.

Think that should work well. I will make mine like that later when I get a chance.


Yep would work just as well. Make the time between sensor scans shorter to compensate.
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
11-26-2006 15:40
Newgate, when I say "wildcards" I mean..

to search for "Copybot Defeater 3348383" I can type "Copybot Defeater". The scanner does a search against all objects with "copybot defeater" in the name, and returns the results.

I'm not intending to search for *.* here. but "Copy*" or "*Protect*".. things like that when there's a part of the name that does not change.
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-26-2006 15:50
From: Winter Ventura
Newgate, when I say "wildcards" I mean..

to search for "Copybot Defeater 3348383" I can type "Copybot Defeater". The scanner does a search against all objects with "copybot defeater" in the name, and returns the results.

I'm not intending to search for *.* here. but "Copy*" or "*Protect*".. things like that when there's a part of the name that does not change.

Yes but you still have the same problem. Sensor unless clearly defined would still only return 16 entrees to check against. I will check tonight but think that searching for "Copy" would only return objects named literally "Copy", no wildcards. A search for "Copybot Defeater" should not return "Copybot Defeater 3348343".
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
11-26-2006 17:27
From: Jesse Barnett
Yes but you still have the same problem. Sensor unless clearly defined would still only return 16 entrees to check against. I will check tonight but think that searching for "Copy" would only return objects named literally "Copy", no wildcards. A search for "Copybot Defeater" should not return "Copybot Defeater 3348343".


That's correct.

There's no way to do wildcard searches within the sensor call itself; it simply does not support them. It will either return the closest 16 objects/avatars with the EXACT name you specify, or will return the closest 16 objects/avatars period (if you don't specify a name).

Of course, you can do string searches on the returned names in a "blank name" sensor call to match wildcards, but you still will only be able to do it for the closest 16 objects; there may be thousands of objects between the sensor prim and the copybot defeater prim, and if you have to get that close to it for it to be in the closest 16, you probably won't need the script to find it.

Now, running sensors from sequential exact names in a list is a good idea and should work. The question is how long should the list be?

Personally, I just use a configurable sensor; whenever I get one of those spam messages, I copy/past that name onto a /10 command, and it starts scanning for that name. Plus, I also send a line of particles at the closest one detected, so I know RIGHT where it is, and the owner knows I know, too. :)

If I run across one and the owner doesn't remove it after being politely asked, I will just AR him/her, and move on to the next one.
Jesse Barnett
500,000 scoville units
Join date: 21 May 2006
Posts: 4,160
11-26-2006 18:23
I didn't have much time but tweaked Talon Brown's first script. It has no protection in case you add too many names to list and you have to touch it each time to scan for next name in list. But it does work. Just add a name by typing /123 search "new name". Should be easy enough for someone to make it where it will scan multiple times until the end of the list.

CODE

integer SEND_IM = FALSE;
integer BOT_LIST_LENGTH;
integer BOT_NUM = 0;
string BOT_NAME;
string value;
list BOT_LIST = ["Simple CopyBot Defeater"];
string gLastOwnerName = "";
key gLastOwnerKey = NULL_KEY;
key gOwner = NULL_KEY;



StartSensor()
{
llOwnerSay("test " + BOT_NAME);
llSensor(BOT_NAME, NULL_KEY, SCRIPTED, 96.0, PI);
BOT_NUM += 1;
}

default
{
state_entry()
{
llListen(123,"",llGetOwner(),"");
}

listen(integer number, string name, key id, string message)
{
list ldata = llParseString2List(message, ["="," "], [""]);
string command = llList2String(ldata,0);
ldata = llDeleteSubList(ldata, 0, 0);
value = llDumpList2String(ldata, " ");

if(command == "sendim")
{
SEND_IM = (integer)value;
}
else if(command == "search")
{
BOT_LIST = BOT_LIST + value;
StartSensor();
}
else if (command == "list")
{
llOwnerSay("Current search string: "+(string)BOT_NAME);
}
}

touch_start(integer n)
{
BOT_LIST_LENGTH = llGetListLength(BOT_LIST);
if(BOT_NUM < BOT_LIST_LENGTH)
{
BOT_NAME = llList2String(BOT_LIST, BOT_NUM);
llOwnerSay("Scanning for "+ BOT_NAME + "...");
StartSensor();
}
else
{
llOwnerSay("End of list");
BOT_NUM = 0;
}

}

sensor(integer n)
{
gOwner = llGetOwnerKey(llDetectedKey(0));
string pos = llGetRegionName() + " " + (string)llDetectedPos(0);
string report = "Found object " + BOT_NAME + " at " + pos;
if (gOwner == gLastOwnerKey)
{
report += " owned by " + gLastOwnerName;
}
else {
report += " owned by " + (string)gOwner +
", requesting owner name...";
llRequestAgentData(gOwner, DATA_NAME);
}
llOwnerSay(report);

if (SEND_IM)
{
llInstantMessage(gOwner, "Your object '" + (string)BOT_NAME + "' at " +
pos + " is sending " + llKey2Name(llGetOwner()) +
" unwanted instant messages, please disable it as according"+
" to LL these objects DO NOT WORK and are only lagging sims"+
" and spamming people needlessly. Thank you.");
llOwnerSay("IM sent to owner.");
}

}

no_sensor()
{
llOwnerSay("Unable to locate "+ (string)BOT_NAME+" within 96m.");
}

dataserver(key queryid, string data)
{
llOwnerSay("Name of agent with key " + (string)gOwner + " is " +
data + ", saving this for next time.");
gLastOwnerKey = gOwner;
gLastOwnerName = data;
}

}
_____________________
I (who is a she not a he) reserve the right to exercise selective comprehension of the OP's question at anytime.
From: someone
I am still around, just no longer here. See you across the aisle. Hope LL burns in hell for archiving this forum
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
Funny you should post that Jesse...
11-27-2006 00:47
Heres my version with notecard driven BOT list

Noticed that the original code would only ever IM the owner of first bot detected no matter how many where returned by the sensor.

The current code will repeatedly fire of sensors, hence the use of SensorRepeat rather than just Sensor, to slow it down a bit.

CODE

integer SEND_IM = TRUE;
integer SEND_PARTICLES = TRUE;
integer VERBOSE = 1;
string Alarm;

list BOT_LIST = ["Simple CopyBot Defeater"];
integer BOT_LIST_LENGTH;
integer BOT_NUM = 0;
string BOT_NAME;

string gLastOwnerName = "";
key gLastOwnerKey = NULL_KEY;
key gOwner = NULL_KEY;

string strNotecard = "Config";
integer lineCounter = 0;
key dataRequestID = "";

string OwnerName;
key Owner;

//------------------------------------------------------------------------
Help()
{
llOwnerSay(llGetScriptName());
llOwnerSay("Supported commands are :-");
llOwnerSay("Alarm=name : must be in inventory");
llOwnerSay("SendIM=[0/1] : Send IM to owner of Bot");
llOwnerSay("SendParticles=[0/1] : Send particle stream at BOT");
llOwnerSay("Verbose=[0/1] : Report all operations");
llOwnerSay("Search=name : Add name to list of BOTs to search for");
llOwnerSay("List : List all current BOTS parameters (for rebuilding notecard)");
}
//------------------------------------------------------------------------
List()
{
integer i;
llOwnerSay("Alarm=" + Alarm);
llOwnerSay("SendIM=" + (string)SEND_IM);
llOwnerSay("Sendparticles=" + (string)SEND_PARTICLES);
llOwnerSay("Verbose=" + (string)VERBOSE);
llOwnerSay("//--------------------");
BOT_LIST_LENGTH = llGetListLength(BOT_LIST);
for(i=0;i< BOT_LIST_LENGTH; ++i)
llOwnerSay("Search=" + llList2String(BOT_LIST, i) );

}
//------------------------------------------------------------------------
GetParameters(string str)
{
// Format is
// Parameter=Value
// string str = llGetObjectDesc();
list ldata = llParseString2List(str, ["="], [""]);
string command = llToLower(llList2String(ldata,0));
string value = llList2String(ldata,1);
integer ivalue = llList2Integer(ldata,1);

if("help" == command)
Help();
else if("list" == command)
List();
else if("alarm" == command)
{
// Check it exists
if(llGetInventoryType(value) == INVENTORY_SOUND)
{
Alarm = value;
llPreloadSound(Alarm);
}
else
{
llOwnerSay("ERROR : Sound " + value + " not found!");
}
}
else if("sendim" == command)
{
SEND_IM = ivalue;
}
else if("sendparticles" == command)
{
SEND_PARTICLES = ivalue;
}
else if("verbose" == command)
{
VERBOSE = ivalue;
}
else if("search" == command)
{
BOT_LIST = (BOT_LIST = []) + BOT_LIST + [ value ];
llOwnerSay("Adding "+value);
}
}
//------------------------------------------------------------------------
StartSensor()
{
if(VERBOSE) llOwnerSay("Scanning for "+ BOT_NAME + "...");
// Using Sensor repeat even though we dont need to just to slow down scans
llSensorRepeat(BOT_NAME, NULL_KEY, SCRIPTED, 96.0, PI, 5.0);
}
//------------------------------------------------------------------------
MakeParticles(key id)
{
llParticleSystem([
PSYS_PART_FLAGS, PSYS_PART_TARGET_POS_MASK |
PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_WIND_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE,
PSYS_PART_MAX_AGE, 2.5,
PSYS_SRC_BURST_SPEED_MIN, .1,
PSYS_SRC_BURST_SPEED_MIN, .5,
PSYS_PART_START_COLOR, < 1, 0, 0>,
PSYS_PART_END_COLOR, < 0, 1, 0>,
PSYS_PART_START_SCALE, <.5, .5, .5>,
PSYS_PART_END_SCALE, <.15, .15, .15>,
PSYS_SRC_BURST_RATE, 0.01,
PSYS_SRC_BURST_PART_COUNT, 10,
PSYS_SRC_OMEGA, <0,1,1>,
PSYS_SRC_TARGET_KEY, id]);
}
//------------------------------------------------------------------------
SendIM(string pos)
{
llInstantMessage(gOwner, "Your object '" + (string)BOT_NAME + "' at " +
pos + " is sending " + OwnerName +
" unwanted instant messages, please disable it as according"+
" to LL these objects DO NOT WORK and are only lagging sims"+
" and spamming people needlessly. Thank you.");
if(VERBOSE)llOwnerSay("IM sent to owner.");
}
//------------------------------------------------------------------------
NextBot()
{
BOT_LIST_LENGTH = llGetListLength(BOT_LIST);
if(BOT_NUM < BOT_LIST_LENGTH)
{
++BOT_NUM;
}
else
{
BOT_NUM = 0;
}
BOT_NAME = llList2String(BOT_LIST, BOT_NUM);
StartSensor();
}
//------------------------------------------------------------------------
default
{
state_entry()
{
Owner = llGetOwner();
OwnerName = llKey2Name( Owner );
state readNotecard;
}
}
//------------------------------------------------------------------------
state Running
{
state_entry()
{
llListen(123,"",Owner,"");
llOwnerSay("Spam Bot Detector running on channel 123.");
}

listen(integer number, string name, key id, string message)
{
GetParameters(message);
}


sensor(integer n)
{
integer i = 0;
for(i = 0; i < n; ++i)
{
key id = llDetectedKey(i);
gOwner = llGetOwnerKey(id);

string pos = llGetRegionName() + " " + (string)llDetectedPos(i);
string report = "Found object " + BOT_NAME + " at " + pos;
if (gOwner == gLastOwnerKey)
{
report += " owned by " + gLastOwnerName;
}
else
{
report += " owned by " + (string)gOwner +
", requesting owner name...";
llRequestAgentData(gOwner, DATA_NAME);
}
llOwnerSay(report);

if(SEND_PARTICLES) MakeParticles(id);
if (SEND_IM) SendIM(pos);
if (Alarm != "") llPlaySound(Alarm,0.5);
}
NextBot();

}

no_sensor()
{
if(VERBOSE) llOwnerSay("Unable to locate "+ (string)BOT_NAME+" within 96m.");
NextBot();
}

dataserver(key queryid, string data)
{
llOwnerSay("Name of agent with key " + (string)gOwner + " is " +
data + ", saving this for next time.");
gLastOwnerKey = gOwner;
gLastOwnerName = data;
}

changed(integer change)
{
// Test for a changed inventory (Notecard update or sounds changed etc.)
if (change & CHANGED_INVENTORY)
{
llResetScript();
}
else if (change & CHANGED_OWNER)
{
llResetScript();
}

}
}
//------------------------------------------------------------------------
state readNotecard
{
state_entry()
{
lineCounter = 0;
integer itemtype = llGetInventoryType(strNotecard);
if(INVENTORY_NOTECARD == itemtype)
{
dataRequestID = llGetNotecardLine(strNotecard, lineCounter);
llSetTimerEvent(10);
}
else
{
llOwnerSay("Error - configuration notecard missing. Defaults only");
state Running;
}

}

dataserver(key queryid, string data)
{
//Check to make sure this is the request we are making.
//Remember that when data comes back from the dataserver,
//it goes to *all* scripts in your prim.
//So you have to make sure this is the data you want, and
//not data coming from some other script.

if(dataRequestID == queryid)
{
if(data == EOF)
{
state Running;
}
else
{
GetParameters(data);
lineCounter++;
dataRequestID = llGetNotecardLine(strNotecard, lineCounter);
}
}
}

timer()
{
llOwnerSay("Time out reading notecard.");
llSetTimerEvent(0);
state Running;
}

}
//------------------------------------------------------------------------



The notecard, called config, is of the following format
CODE

SendIM=1
SendParticles=0
Verbose=1
Alarm=my alarm sound
//-------------
// Add bot names here i.e.
search=Advanced Low Spam Copy Bot defeater v1.0000000
Weedy Herbst
Too many parameters
Join date: 5 Aug 2004
Posts: 2,255
12-24-2006 00:42
This script is a piece of crap

While I'm in bed, I get a offline message alarm on MSN, harassing me about having some anti-copy bot spammer running in Tuliptree. Apparently she cut and paste this script and set it out. Instead of finding an anti copy bot spammer, it singled out an unrelated item on my land

[23:47] P*****y N**a: (Saved Sat Dec 23 23:39:26 2006) Um, you do, we aer all driven nuts by it, get rid of it
[23:47] P*****y N**a: (Saved Sat Dec 23 23:39:37 2006) I'm not spamming, I'm telling YOU to stop spamming
[23:47] P*****y N**a: (Saved Sat Dec 23 23:41:53 2006) Anti Copy Bot Spam: Name of agent with key d0414a54-3f7d-49d1-8170-441fbabf2679 is Weedy Herbst, saving this for next time. Anti Copy Bot Spam: Name of agent with key d0414a54-3f7d-49d1-8170-441fbabf2679 is Weedy Herbst, saving this for next time. Anti Copy Bot Spam: IM sent to owner for object '' at Tuliptree <3.85216, 13.05057, 31.76789>

This is the object:

[0:25] Scan-foo: Information about 'Copiable Stage Color Flood Light v1.2':
[0:25] Scan-foo: Object key: 6ca8798e-dc97-4b40-d5d6-939628d54275
[0:25] Scan-foo: Located at: <3.85216, 13.05057, 31.76789>
[0:25] Scan-foo: Angle: <0.17266, -0.67997, -1.30020>
[0:25] Scan-foo: Rotation: <0.26579, -0.21526, -0.59138, 0.73026>
[0:25] Scan-foo: Velocity: <0.00000, 0.00000, 0.00000>
[0:25] Scan-foo: Owner: You own this object.

I am abuse reporting the messenger and the author of this script.
_____________________
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
12-24-2006 01:06
P****y N**a is on a witchhunt. I spent 30 minutes being harrassed by this person via IMs in world tonight, over some post I made over a MONTH AGO! I think he/she is just in a really bad way due to the holidays or something, and has decided to stir up some drama.

I personally didn't need the athsma attack triggered by P****y N**a's verbal assault. Apparrently this person has been banned from the forums altogether (like a month beforer I even joined SL.. so basically it's ancient news), and even the blog. I'm not sure what PN is after by setting this situation up... aside from stabbing into forums that they can no longer reach legitimately

If the person has been harrassing you via IMs, I would definitely report it to Linden Labs. Given the Forum and Blog ban, I can't see this person lasting very long in world. Land owner or not. Sorry he/she picked on you... false positives are always a possibility, the script requires a small amount of human oversight to check the results. This was never intended to be turned into an auto-IMer... it was fun to joke about.. but the real purpose was just to help clean up the mess caused by the copybot panic.

Heck, it's been a month.. I think most of us kinda forgot about this whole thing once the spam abated in world. PN has a bug up their butt to cause trouble. I think it's most likely just going to result in trouble for PN.

Please do report the person if the harrassment is severe or continues.
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Weedy Herbst
Too many parameters
Join date: 5 Aug 2004
Posts: 2,255
12-24-2006 01:26
From: Winter Ventura
P****y N**a is on a witchhunt. I spent 30 minutes being harrassed by this person via IMs in world tonight, over some post I made over a MONTH AGO! I think he/she is just in a really bad way due to the holidays or something, and has decided to stir up some drama.

I personally didn't need the athsma attack triggered by P****y N**a's verbal assault. Apparrently this person has been banned from the forums altogether (like a month beforer I even joined SL.. so basically it's ancient news), and even the blog. I'm not sure what PN is after by setting this situation up... aside from stabbing into forums that they can no longer reach legitimately

If the person has been harrassing you via IMs, I would definitely report it to Linden Labs. Given the Forum and Blog ban, I can't see this person lasting very long in world. Land owner or not. Sorry he/she picked on you... false positives are always a possibility, the script requires a small amount of human oversight to check the results. This was never intended to be turned into an auto-IMer... it was fun to joke about.. but the real purpose was just to help clean up the mess caused by the copybot panic.

Heck, it's been a month.. I think most of us kinda forgot about this whole thing once the spam abated in world. PN has a bug up their butt to cause trouble. I think it's most likely just going to result in trouble for PN.


Object Creator - P****y N**a
Script Creator - P****y N**a

As usual, it's always someone elses fault according to her, even though she is the owner of the object, owner of the script, originator of the IM's and demanding me to do something about which I have nothing to do with in the first place over item that does not exist.

It had the co-ordinate vector on her report, yet she was negligent or too lazy to actually verify the object herself.
_____________________
Newgate Ludd
Out of Chesse Error
Join date: 8 Apr 2005
Posts: 2,103
12-24-2006 01:35
From: Weedy Herbst
This script is a piece of crap

I am abuse reporting the messenger and the author of this script.


First which script are you abuse reporting? Mine, Jesse's, or one of the other posters?
or all of us?

As Winter stated the script does require some configurationn which requires intelligence on the part of the user, which is obviously lacking from what Winter posted.
1 2 3 4 5 6 7