Eliza for Spam
Saint Aardvark the Carpeted writes "Check this out for sheer genius...This guy has posted to Perl Monks a script that uses the Perl Eliza module to respond to spam. Check it and contribute your suggestions for improved vocabulary." The downside of course is that spammers never set their reply correctly (which I think is forgery, and should be treated as such) so this is probably more academic then useful, but its definitely funny.
Interesting how, on the one hand, you advocate anonymity, yet, on the other, you think anonymization should be outlawed.
BH
Fools! They laughed at me at the Sorbonne...!
But if it's legal to spoof the FROM field, and probably anything else...
then that makes it theoretically impossible to find a spammer.
This is based on two assumptions:
1) That they get good enough at spoofing stuff
2) That spamming, and spoofing, are legal (which they pretty much are)
If the whole point is to catch spammers, it sounds to me like there has to be some sort of law. Like "Thou shalt not send unsolicited communications advertising a product or service"
Sircam: Hi! How are you?
Eliza: Does that question interest you?
Sircam: I send you this file in order to have your advice
Eliza: Why are you concerned over my advice?
Sircam: See you later. Thanks
Eliza: Oh, I later?
PINE: [ Part 2, Application/MIXED 233KB. ]
[ Unable to print this part. ]
Eliza: Does talking about this bother you?
PINE: [ Part 3: "Attached Text" ]
Eliza: Tell me more about that.
Well, I was making up a fake "spam" about Samba. Tying in a couple of threads. :)
I made up "Siagra" to be like "Viagra". The whole "spam" continues along that metaphor. It was meant to be funny...
That's my explanation. But...
What is "SWAT"?
Here's your level 1 tech support agent:
/dev/null;`)
if (`cat $1 >
{
echo "Thank you for your request.\n";
@answer = array(
"Reboot your machine.\n",
"Make sure it's plugged in.\n",
"Reboot and don't cancel out of the network login screen this time\n",
"You should have saved your work.\n",
"No, the IT staff doesn't maintain the AC.\n",
"That's because the NT server crashed again. Reboot.\n");
$ans_index = int(rand()) * 5;
echo @answer[$ans_index];
}
The code's a little incorrect, but that's not important...
I really hate signatures, but go to my website.
More generally, this looks like a scripting job.
b ulk+email
something like a cronjob of
wget --recursive --level=1 --span-hosts http://www.goto.com/d/search/?type=home&Keywords=
?
You will want to delete the output too
not so much, considering most spams are BCC'ed to 999 other people having the same first initial of their email. All the spammer knows is "one of these 1000 people actually fell for the scam/whatever in this spam."
You're wasting your time. They don't get charged if referrers are from another "bomb goto" page.
Cats: Eliza. All your base are belong to us.
Eliza: Does using that kind of language make you feel better ?
---
Responding to spam just confirms for spammers that there is someone on the receiving end of the spam mail.
'nuff said.
But it still shows that the host is receiving the mails and *someone* is reading them. The solution for link-following is to remove anything from the link which might provide information about who's responding (anything that looks like a unique identifier, in particular a reference to your e-mail address). For responding, perhaps the best approach is to forge your own headers (fighting fire with fire) to give the impression of responding from an account that genuinely *is* invalid.
++ Say to Elrond "Hello.".
Elrond says "No.". Elrond gives you some lunch.
At a company I worked at a few years ago, there was one particular customer who liked to bug tech support just to have someone to talk to. He'd ask the most inane questions, then when he got the answer, he'd generally say "Why would I want to do that?" in reference to what he was asking us how to do in the first place!
It got old and so we set up a psuedo tech support person and had that person handle all his tech support. We would send his email through Eliza (the one in emacs) and then take Eliza's responses and send it back to him. This seemed to keep him satisfied, and kept our tech support from getting aggravated by him.
My favorite Eliza program of all time has to be Dr. Sbaitso that came with the original Creative Labs SoundBlaster card. I'd love to hear the ol' doctor saying, "Make.Money.Fast!"
The problem with clicking links or repsonding, you just verified your a valid email address...
What we NEED instead of more stupid laws (we have enough idiotic ideas about computer "crime" in law enforcement already, Taco) is legal recourse for the recipient
Giving a legal recourse for the recipient would require a law you know.
Care to explain how you do that? I didn't think you could.
Tell me about your mother...
But seriously. If your Samba isn't working right, then you do have a problem... how are you supposed to attract the opposite sex without the proper tools?
UUCP and FTP may be attractive, but lets face it. The girls want Samba, and lots of it. And what can you do about that?
Introducing Siagra, the one and only fix for all of your Samba problems.
Can't get your Samba up to do its thing? Siagra can help. 40% of men over 50 can't get their Samba to work. But Siagra is a new revolutionary herbal extract. It's not a drug. It will work wonders. It can do what you never thought possible!
Heh, did you ever watch Blade Runner? :)
I just downloaded an AliceBot to run on my laptop yesterday, first to see if I can get it to talk XML RPC or SOAP to my home automation server running Misterhouse, and second to see if I could turn it into a level 1 tech support agent for the TOTALLY inane questions that cripple the daily operations of my client's help desk.
First thing I have to do is whittle down AliceBot's knowledge base from over 27,000 categories to just a few. First, how to get the weather report. Next, how to read Slashdot, and finally, the rest of home automation.
Intelligent Life on Earth
Has anyone been able it impliment this with pine?
Still not true. Spammers get paid per email sent, not by how many are recieved.
no, sorry, you are wrong.
bye now!
(parent post author thinks forging email is not possible!)
I don't promote spamming, and find it just as annoying as the next man. But if i was a spammer, i'd set the Reply as the e-mail address of the makers of Eliza.. make their dumb perl script backfire on them. (:
> Click here, go down the list and open each link in a new window (rightclick, openinnewwindow then tally up the $ damage yourself.
Does it work if you open them in a new tab in Galeon? That way you don't even have to see them.
More generally, this looks like a scripting job. Even if they track IPs that have visited, people with dial-up connections could run the script every time they dialed up, with a low probability of duplicates. What would happen if one of the advertisers suddenly ran up a $3,000 bill? Or $30,000? Or $300,000?
Sheesh, evil *and* a jerk. -- Jade
Why not respond to spam with something artsy?
Spam is meat
Can is so ethereal
Content no good
Now, if only there were a Perl script to randomly generate some decent haiku.
The problem with clicking links or repsonding, you just verified your a valid email address...
Not neccesarily. You could configure your domain's "default" entry in virtusertab to forward every non-valid email address to your spam parser. The parser could determine whether it has links or other spam indicators and send it to the spam responder or postmaster as appropriate.
This would have the interesting effect of making the invalid email addresses appear to be get a better response than the actual addresses...
A dingo ate my sig...
...follow the links automatically? That could be set on a cron job to hit it every day.
Instead of treating it as forgery why not merge the functions of POP and SMTP into a unified service that incorporates address validation as part of the protocol? If we treat fake From field as forgery do we also make criminals out of the many people who've entered fake info into HotMail's servers? I hope not.
"In prison you just have to shut your eyes and take it. Here you have to shut your eyes and give it."
Speaking of brilliant uses of eliza this one guy used some applescript to create AOLiza, a program which replies to anyone spamming this AIM account using Eliza.
I recommend number 36 for a quick giggle.
I have a bunch of random e-mail addresses linked-to off a period on my home page. If any bot finds it, it gains 2,500 fake addresses. I update it every so often. It was generated by SpamBait. Everyone should do one. I don't have the link to the orignal program, but here's another.
Yeah, but its pretty easy to find the server from which the email originated from the full email header, heck, even a perl script could do this... (although i guess there are ways of even spoofing this????).
Then you just get the script to respond to postmoster or root@offenfing.machine, stating that spam was originating from it. If you include the message ID in the email, the admin can determine the spammer and hopefully will suspend their account. The again, it might be the admin doing the spamming....or even link to C:\CON\CON ?
I have two points to make in response to this.
A) Would it really matter if the spammers addresses' were set correctly? I can't find a reason for it to mean anything, either for them or for us. Sure, it would be easier for us to complain to various organizations about certian users, but that is really incidental to the problem.
B)About the forgery thing... I have an email account under an alias name, for various reasons (such as having registration emails sent to it), and I don't want my name to be eligible for spam. Is that a forgery? I don't think it is. There is no direct damage done by having an alias set for either the name or reply address. Sounds like you need to back up a bit more of what you say, Mr. Taco. Not having the reply address set correctly is, in my opinion, tantamount to using pseudonyms - like CmdrTaco. There is nothing illegal about that.
Man is born free; and everywhere he is in chains.
A little bit of natural language processing of a basic nature (look for "reply to this address" type phrases) could also be done if you wanted. But probably any email address in the email would be fair game. Set Eliza up with it's own email address, and see how much traffic you can generate...
Never trust a man in a blue trench coat, Never drive a car when you're dead
SirCam: Hi! How are you? Eliza: Why are you interested in whether or not I am ? SirCam: I send you this file in order to have your advice. Eliza: You're not really talking about me, are you? SirCam: See you later. Thanks Eliza: Oh... later. Thanks?
Most smart spammers (I know that may be an conflict in terms) will either use a phone number, a physical address, or a web form. The only thing you can attack there is the web form. Spammers will usually set a maximum length per field. You may only use 30 characters for your name, 10 numbers for your phone number, and 50 characters for a comment. The way around this is to save a local copy of the form and strip out the max length variables. Then set eliza on it, or just pipe the chargen port to it.
No replies made to AC posts. Please log in.
How does that make you feel that you have a problem with Samba 2.02?
This is funny. Just like SpamMimic.com , a program that hides secret messages as spam.
You could hook up two bots to talk to each other secretly.
But, the sad reality is that truth doesn't sell and bullshit does. Stupid sheeple.
What we NEED instead of more stupid laws... I mean a law that explicitly states this...
ROFL - Is this true cognitive dissonance, or just the normal rantings of the average young Ritalin-drenched brain?
"The future's good and the present is nothing to sneeze at." - Roblimo's last
Don't you think someone writing an email harvester can figure out to put s/NOSPAM//g in their code?
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
220-initialized.org ESMTP Microsoft ESMTP MAIL Service, Version: 5.0.2195.2532 220- 220-By attempting to use our server for unauthorized relaying (spamming), you ag ree to allow us unrestricted access to all of the computers you own indefinitely . If you do not agree to these terms of use, do not attempt to spam using our se rver. 220- 220 Now that I've said this, welcome to Microsoft ESMTP MAIL Service.
(Note: Hold the flames. With a little research, you'll find that little Microsoft MAIL service header is a joke.)
Do you like German cars?
umm it isn't called Siagra. It is called SWAT ;)
Freudian Psychology, in case you missed the reference... but I have no idea what your post is about. :)
For those of you who are thinking about automatically going to the spammer's web site, you need to keep in mind that URLs can be very personal--even a different URL for each recipient. This is really bad when you combine it with spam messages that ask you to click on a link to confirm you (that's specifically you) agree to their offer and terms.
I found this out in a difficult--but not as bad as it could have been--way, as I had a spammer send me a message with a link to automatically remove my address. Following that link, caused their system to send me a message saying "Ok, but if you want to come back follow this link". Following that link resulted in a message saying "welcome! if you need to leave, use this link". Since my spam script caught both kinds of their messages, even though it only does a pre-trace and does not respond automatically, just by tracing their url I had a mail loop. I'd hate to think about if there was a mail loop and a product order... Eek.
Very disappointing, as I was initially thinking URL tracing was perfect, because the spammer couldn't do anything a browser wouldn't follow, which means it's actually easy to trace past redirectors and such. I have that part disabled now, as I have yet to resolve this issue. Any ideas would be most welcome (and you can have my script too :)
First (logged in) Post. AC dont count.
Where the fuck do you get your karma!??
I've seen your posts. Most of them are trolls and flamebait. You post first, read later.
This makes me wonder how you managed to rack up enough karma points to get a +1 bonus, because according to the moderation done to your comment, you were posting at +2.
karma whore .... lets see, Karma for an AC - NONE! My karma: 49. Some moderator thought my post was redundant and caused me to lose the perfect 50 I had goin.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
I'm at 48 - so enough Karma to burn. Just like to leave something here before this topic gets archived and I cannot have my say.
Personally I think the idiots who rated this post as "Overrated" and "Offtopic" are idiots.
Offtopic - my arse - you lame moderator shit. You just cannot seee deep enough to understand humor.
Overrated - hah! let yourself be known, and let's see your posts.
Perhaps it will all come out in M2. I've moderated and I know that anybody who moderates a post as "Overrated" is a self-centered pig. It's a lame moderators tool used where a moderator doesn't share the same sense of humor as others. Beware, next time I moderate - If I see any posts moderated as both "Funny" and "Overrated" then I will rate it as "Underated"
Fucking Wankers!!!
Click here, go down the list and open each link in a new window (rightclick, openinnewwindow then tally up the $ damage yourself.
Hit 'em where it hurtz -
Well, I disagree... the /. spammers are not as bad as the real thing. Or maybe worse. Depends on your perspective.
:)
Spam: "Get thin! Make money! Hot girls!!"
/.: "First post! Natalie Portman! Hot Grits!!"
One is trying to screw you over and get your credit card number, while the other is just amused by annoying people... you decide which is worse.
Also spammers don't use their own email addresses. They will use a random address at some innocent domain, or they will use the address of some one who complained. When you use this, you are harassing some innocent person.
No replies made to AC posts. Please log in.
Had to try it out. Heres the results from a typical spam...
.BIZ .INFO Domains activation dates
:)>Dear Domain Registrant,
.BIZ domains has been announced - Sept 17, 2001 is
.BIZ domains.
.INFO domains, Sept 12, 2001 is scheduled to be the start-up date,
.BIZ, .INFO, .PRO, and .NAME. It is expected that over 3 million
. cgi ?email=[snip]
[headers snipped]
Subject: Re:
Thank you for your mail! I am new to here, and
+do not have good english -- forgive
Hi, how are you?
>The dateline for
>the last date for early-birds to pre-register their
>For
>where all pre-registrations made earlier will be processed.
What answer would please you most?
>We are now accepting pre-registrations for the new top level domains with
>extensions
>of
>these new domain names will be registered in the first few minutes when
>registration opens later this year. This will be the largest virtual real
>estate land grab in the history of the Internet.
I've told you before, I don't care about names -- please c
>According to the ZDNet July 2nd news article, industry experts have
>"estimated that 15 million dot-biz names will be registered by 2005".
I'm not sure I understand you fully.
>If you are looking for a great name like Cars.biz or Stocks.info, be
>prepared to face some stiff competition unless you pre-register early.
>http://www.NewExtensionsNow.com has built the premier pre-registration
>engine
>that can help you to secure the domain you want. Over 500,000 names have
>already been queued into our list and good names are going fast. If your
>domain name is important to you, do not wait until the last minute. Go to
>http://www.NewExtensionsNow.com to pre-register now.
I am not interested in names.
>If you have received this mailing in error, or do not wish
>to receive any further mailings from us, simply click here:
I would like to visit your site, but my mouse is broken
>http://www.newextensionsnow.com/cgi-bin/remove
That is interesting. Please continue.
Hmm, isn't replying to spam bad because it will
mark your address as 'in use' with spammers?
This looks like a fun thingy, but I wouldn't
use it to acutally reply to spammers for sure...
--
GCP
? just gave me an idea.
The downside of course is that spammers never set their reply correctly (which I think is forgery, and should be treated as such)
hy not have mail systems check back with the return address to verify it as sent / approved to be sent from that address. Then label the mail accordingly - approved by labelled sender or not. Then receivers can choose whether they want unverified mail or not, in advance of receiving it. Hmm. Of course this could be detrimental to anonymous communications hich have they own set of (very) useful qualities. (Specially against corrupt governments.)
The fact that people spend their time doing this, means the spammers have justified their existence. Every iota of effort you put into dealing with their crap is a win for them.
This guy has a lot of interesting ideas. I would think it would be fairly simple to write a program that did the following things:
1: If a SPAM message contains a form, you forward it to the program (which would create a local SMTP server to receive messages only from you). It would fill the form with random data, but somewhat intelligently, by parsing the HTML and figuring out what is valid for the form.
2: If a SPAM message goes to a web site with a form, go to that form in your browser. Run the anti-spam program and click a button to auto-fill the form. You could configure it to fill out the form multiple times, in the background, without user intervention.
3: If the SPAM message contains a link to geocities, or other free web hosting services, forward the e-mail to your anti-spam program's local SMTP server. It will grab the link and then forward the e-mail, header, and link to the appropriate abuse@ address.
There are probably other things like this that could be done. If someone wrote this program, I'd use it religiously, and I'd imagine a lot of other people would too. If it was easy enough to use and as unobtrusive as possible, people would be using it like crazy. The spammers would get wiped out.
Believe me, if I had the spare time, I'd start writing this program today.
The NOSPAM trick isn't designed to fool anyone; a forged reply-to header is.
I don't know half of you half as well as I should like, and I like less than half of you half as well as you deserve. BB
Sure, it's easy to add that to their code, BUT... How many spammers write their own tools? My guess would be less than 1%. Also, not everybody does the same NOSPAM thing, so adding band-aid code to capture those email addys would seem like a long, cumbersome process that would cost them more to implement than they would benefit.
can you give me your advice on the following
(which I think is forgery, and should be treated as such)
/. crowd erupts in a furor of activity, denouncing it as tyrannical. Yet, when spammers spoof their email addresses to avoid backlash of outraged netters too dumb to view the real headers and do a whois, (ab)using the very same online anonymity, it's suddenly "forgery".
Strange. When slashdotters insert "NOSPAM" in their email addresses, making them incorrect and misleading, it's fine. And when the government proposes systems to track everyone online, the
Pfft, yeah, whatever. Let's start making some sense now Rob, hmmm?
-Kasreyn
Kasreyn: Cheerfully playing the part of Devil's Advocate to hairtrigger
Haha. Well, I have been using a bunch of robot responders for email. You can reach alice@blibs.com, eliza@blibs.com and even mrt@blibs.com .. Alice and Mr. T will remember stuff about you and you can almost carry on a conversation with them. have fun.
-- these are only opinions and they might not be mine.
And how does it make you feel that eliza responds to spam?
If the spammers was forging a non-existant email address at a non-existant domain, there might not be much of a problem. (Cause, no one is geting 'hurt') But, spammers often times forge addresses in innocent third party domains, or will forge addresses of inocent third parties. In these cases the postmaster at the domain, or the person getting the thousands of bounces, gets hurt. That is where the problem arises.
No replies made to AC posts. Please log in.
The hardest thing to fight is people's assumption that because they do things one at a time, by hand (but on a computer), that there's no way someone could script all the "thinking" they're doing and take care of the exceptions. Well.. they're mostly wrong!
But sometimes scripts fail for funny reasons, like running out of disk space, which means their temp files don't work... but whatever. Other scripts are looking into the disk space problem...
we had long talked about wiring Eliza into spamgourmet - which is perl already. Won't take long, now...
who's moderating the meta-moderators?
Anybody recognize the fifth guy from the left?
t node_id=9953
http://www.perlmonks.org/index.pl?node_id=966&las
Yes yes, but I mean no more STUPID laws like making it illegal to spoof the FROM: field.
jX [ Make everything as simple as possible, but no simpler. - Einstein ]
I see that you like dancing ...
ALTERNATIVELY: Attached is my credit card information. Click to open. ccinfo.doc
"perfect 50" is POST-cap ... some of US have karma's over 100... still.
Where the fuck do you get your karma!??
Simple. Look at his user page and you'll see a bell curve of inane drivel modded as such, unmodded posts, and highly modded (mostly) on-topic posts. If even I can get a bonus, it's not that hard (this post doesn't have it for the reason you can disable it: this post isn't worth +2). Posting early helps, even if it is a half-cocked opinion. Getting stories posted helps too. Each one is +5. Of course, the only thing karma is good for is making my co-workers jealous.
The truth about Scientology, Xenu, and you: Operation Clambake
Just add --spider to your list of options and it will merely access the specified URLs and not download them (I use it in a script to help me move around my slashboxes when I feel like redecorating without reloading the full front page 20 times).
Real nice.
I think it can also be used to answer the kind of email you receave from people that does not want to said they don't write email. So they write interresting thinks like :
Hello
How are you ?
answer :
How do you do? What brings you to see me?
definitly , it might be a good answering machine
Hi, How are you?
I send you this file in order to have your advice
See you later. Thanks
No, I guess that's why I missed the reference. :)
more academic then useful
I mean, I know this guy just did the "only CS courses" route at college, but I swear... is it so fucking hard? THAN!
you can find out how you can help give spammers a hard time here http://www.lenny.com/spam please help fight spam
http://Lenny.com
4 great justice!
It's the standard Republican/Libertarian doublethink. "Big governement is bad! More regulation is bad! More laws are bad! Anyone who supports these is bad, and not as smart as I am (because anyone who disagrees with me is obviously stupid), and eeeeeeevil!!! Oh, except in these areas where I, personally, think the government should get involved. Those are OK."
There is no sin except stupidity -- Oscar Wilde
fuck off you ridiculously lame and innefective karma whore. i shit in your general direction.
Oh, I can make $10,000/week? How do you really feel about me making $10,000/week... wouldn't this just contribute to your feelings of inadequacy, stemming from your overly controlling mother? Perhaps if you tell me more about your relationship with your mother we can delve more deeply into the issues underlying your antisocial need to waste people's time with stupid email offers that no one gives a damn about.
Then again, I don't have the time to re-code ELIZA to do this, and besides, it's easier to bounce the email back after convirting it to an M$ Office document and attaching it, with a simple explanation:This seems easier than the forms approach...
--Got Lists? | Top 95 Star Wars Line
Is it only me who's noticed the irony that on an article about punishing spammers, the /. equivalent of them is out in force?
I'm an Angry Clam. You would be angry too if you were a ball of snot in a shell.
Oh cool. Maybe Eliza can answer the tons of Linux Questions my LUG E-Mail List delivers to me daily:
...
Question: "Hey Eliza! I have aproblem with Samba 2.0.2"
Eliza: "Tell me about your problem!"
Question: "The Win 9x clients can't get acces to my Samba File-Server."
Eliza: "That's a pitty. Your Win 9x clients can't get acces to your Samba File-Server..."
X
Boycot? Blackout? Subscriptions?
I don't care!
My friend and I have been kicking around an idea to use Eliza to reply to all e-mail. You could give it an AI that looks at a real response to a similar question, keep a database of those replies and then only forward messages to you that require a reply because the algorithm doesn't have a context to reply from. I already have a script that ssh's into machines that I maintain and do sudos and greps and such. My boss thinks that you have to constantly futz with things and be logged in all the time. He is the last log \ /var/log/messages king. He'd probably can me if he knew that I wasn't at the switch constantly, but then again it took me a week to explain how to even check logs.
Comparing it to Windows will be a moot point, since El Dorado is going to have a 40% larger code base than XP.
I replied earlier to jcapell , and since yours was the post that sent me to Lenny's, I thought I'd direct you to my reply . I think you'll like it -- I took the script that was there and improved it quite a bit.
Enjoy,
I feel fantastic, and I'm still alive.
How is it fraud to fill out a form that:
1: You didn't request
2: You don't want to read
3: It's SPAM
4: It's public. That means: It's like a message board. You can write whatever you want. If the "moderators" of the board don't like it, they can remove it, but 1 and 2 of my post fall under free speech, in the States, and I doubt you'll find anyone who disagrees with it.
Remember, 98% of these guys are forging their e-mail addresses, which makes them guilty in some dozen states, or so, of the U.S. So they're going to come after me for posting garbage to their forms? I doubt it.
That is excellent! Thank you. I will get my hands on it from jcapell. Hopefully Lenny can post it on his site. thanks again.
There is no
at least 100 new /. spammers. Great job...
I believe 1 out of 1000 users will actually start using these tools....
http://www.millnet.se/ GO/U d- s+:+ a C++ UL++++ P- L+++ E W+++ N+ w++ M-- PE+ t+ X++
I do believe that's the biggest post, outside of John Katz's, that I have ever seen.
I've noticed that many spammers are using the addresses their mailing to as the return address. So basically you'd be spamming yourself by trying to combat spam with this method.
There seems to be a better way of detering spam. The way spammers avoid being stopped now is by obscurity. If there is a way of setting up checks and balances on email, it needs to be done. If creating a new protocal to replace smtp and pop3 is the only way, please someone do it.
~LoudMusic
No sig for you. YOU GET NO SIG!
Now all it has to do is click on the link in the spam and fill out forms with data to clog their databases. More information can be found here:
http://lenny.com/spam/index.html
There is no
Geez I can barely read the code! For anyone else who's hard of seeing and in case of slashdotting:
/\n\n/, $file,2;
/\n{2,}/, $mail;
:)";
.= "$_\n\n$reply\n\n";
#!perl.exe
use Chatbot::Eliza;
use strict;
#
# get mail as a whole
#
$|++;
$/=undef;
my $file = <>;
$/="\n";
my ($headers,$mail)= split
my @headers = split "\n", $headers;
foreach (@headers ){
s/^To\s*\:/From\:/i && next;
s/^From\s*\:/To\:/i && next;
s/^Subject\s*: (.*?)/Subject: Re: $1/i;
s/CC\s*:.*/CC:/i;
}
$headers=join "\n", @headers;
#
# paragraphs
#
my @paras = split
my $chatbot= new Chatbot::Eliza "your name here", "chatrex.txt";
my $resp=$headers."\n\nThank you for your mail! I am new to here, and
+do not have good english -- forgive
my $reply;
foreach (@paras) {
$reply = $chatbot->transform( "$_");
$_= ">" . $_;
$_= join "\n>",split ("\n", $_);
$resp
}
print $resp;
Here is the modified vocabulary, chatrex.txt.
initial: How do you do. Please tell me your problem.
initial: Hello, I am a computer program.
initial: Please tell me what's been bothering you.
initial: Is something troubling you?
final: Goodbye. It was nice talking to you.
final: Goodbye. I hope you found this session helpful.
final: I think you should talk to a REAL analyst. Ciao!
final: Life is tough. Hang in there!
quit: bye
quit: goodbye
quit: done
quit: exit
quit: quit
pre: dont don't
pre: cant can't
pre: wont won't
pre: recollect remember
pre: recall remember
pre: dreamt dreamed
pre: dreams dream
pre: maybe perhaps
pre: certainly yes
pre: machine computer
pre: machines computer
pre: computers computer
post: am are
post: your my
post: yours mine
pre: were was
post: me you
pre: you're you are
pre: i'm i am
post: myself yourself
post: yourself myself
post: i you
post: you me
post: my your
post: me you
post: i'm you are
pre: same alike
pre: identical alike
pre: equivalent alike
synon: belief feel think believe wish
synon: family mother mom father dad sister brother wife children child
+
synon: desire want need
synon: sad unhappy depressed sick
synon: happy elated glad better
synon: cannot can't
synon: everyone everybody nobody noone
synon: be am is are was
key: xnone -1
decomp: *
reasmb: I'm not sure I understand you fully.
reasmb: Please go on.
reasmb: That is interesting. Please continue.
reasmb: Tell me more about that.
reasmb: Does talking about this bother you ?
key: sorry 0
decomp: *
reasmb: Please don't apologise.
reasmb: Apologies are not necessary.
reasmb: I've told you that apologies are not required.
reasmb: It did not bother me. Please continue.
key: apologise 0
decomp: *
reasmb: goto sorry
key: remember 5
decomp: * i remember *
reasmb: Do you often think of (2) ?
reasmb: Does thinking of (2) bring anything else to mind ?
reasmb: What else do you recollect ?
reasmb: Why do you remember (2) just now ?
reasmb: What in the present situation reminds you of (2) ?
reasmb: What is the connection between me and (2) ?
reasmb: What else does (2) remind you of ?
decomp: * do you remember *
reasmb: Did you think I would forget (2) ?
reasmb: Why do you think I should recall (2) now ?
reasmb: What about (2) ?
reasmb: goto what
reasmb: You mentioned (2) ?
decomp: * you remember *
reasmb: How could I forget (2) ?
reasmb: What about (2) should I remember ?
reasmb: goto you
key: forget 5
decomp: * i forget *
reasmb: Can you think of why you might forget (2) ?
reasmb: Why can't you remember (2) ?
reasmb: How often do you think of (2) ?
reasmb: Does it bother you to forget that ?
reasmb: Could it be a mental block ?
reasmb: Are you generally forgetful ?
reasmb: Do you think you are suppressing (2) ?
decomp: * did you forget *
reasmb: Why do you ask ?
reasmb: Are you sure you told me ?
reasmb: Would it bother you if I forgot (2) ?
reasmb: Why should I recall (2) just now ?
reasmb: goto what
reasmb: Tell me more about (2).
key: if 3
decomp: * if *
reasmb: Do you think its likely that (2) ?
reasmb: Do you wish that (2) ?
reasmb: What do you know about (2) ?
reasmb: Really, if (2) ?
reasmb: What would you do if (2) ?
reasmb: But what are the chances that (2) ?
reasmb: What does this speculation lead to ?
key: dreamed 4
decomp: * i dreamed *
reasmb: Really, (2) ?
reasmb: Have you ever fantasized (2) while you were awake ?
reasmb: Have you ever dreamed (2) before ?
reasmb: goto dream
key: dream 3
decomp: *
reasmb: What does that dream suggest to you ?
reasmb: Do you dream often ?
reasmb: What persons appear in your dreams ?
reasmb: Do you believe that dreams have something to do with your
+problem ?
key: perhaps 0
decomp: *
reasmb: You don't seem quite certain.
reasmb: Why the uncertain tone ?
reasmb: Can't you be more positive ?
reasmb: You aren't sure ?
reasmb: Don't you know ?
reasmb: How likely, would you estimate ?
key: name 15
decomp: *
reasmb: I am not interested in names.
reasmb: I've told you before, I don't care about names -- please c
+ontinue.
key: deutsch 0
decomp: *
reasmb: goto xfremd
reasmb: I told you before, I don't understand German.
key: francais 0
decomp: *
reasmb: goto xfremd
reasmb: I told you before, I don't understand French.
key: italiano 0
decomp: *
reasmb: goto xfremd
reasmb: I told you before, I don't understand Italian.
key: espanol 0
decomp: *
reasmb: goto xfremd
reasmb: I told you before, I don't understand Spanish.
key: xfremd 0
decomp: *
reasmb: I speak only English.
key: hello 0
decomp: *
reasmb: How do you do. Please state your problem.
reasmb: Hi. What seems to be your problem ?
key: computer 50
decomp: *
reasmb: Do computers worry you ?
reasmb: Why do you mention computers ?
reasmb: What do you think machines have to do with your problem ?
+
reasmb: Don't you think computers can help people ?
reasmb: What about machines worries you ?
reasmb: What do you think about machines ?
key: am 0
decomp: * am i *
reasmb: Do you believe you are (2) ?
reasmb: Would you want to be (2) ?
reasmb: Do you wish I would tell you you are (2) ?
reasmb: What would it mean if you were (2) ?
reasmb: goto what
decomp: * i am *
reasmb: goto i
decomp: *
reasmb: Why do you say 'am' ?
reasmb: I don't understand that.
key: are 0
decomp: * are you *
reasmb: Why are you interested in whether I am (2) or not ?
reasmb: Would you prefer if I weren't (2) ?
reasmb: Perhaps I am (2) in your fantasies.
reasmb: Do you sometimes think I am (2) ?
reasmb: goto what
reasmb: Would it matter to you ?
reasmb: What if I were (2) ?
decomp: * you are *
reasmb: goto you
decomp: * are *
reasmb: Did you think they might not be (2) ?
reasmb: Would you like it if they were not (2) ?
reasmb: What if they were not (2) ?
reasmb: Are they always (2) ?
reasmb: Possibly they are (2).
reasmb: Are you positive they are (2) ?
key: your 0
decomp: * your *
reasmb: Why are you concerned over my (2) ?
reasmb: What about your own (2) ?
reasmb: Are you worried about someone else's (2) ?
reasmb: Really, my (2) ?
reasmb: What makes you think of my (2) ?
reasmb: Do you want my (2) ?
key: was 2
decomp: * was i *
reasmb: What if you were (2) ?
reasmb: Do you think you were (2) ?
reasmb: Were you (2) ?
reasmb: What would it mean if you were (2) ?
reasmb: What does ' (2) ' suggest to you ?
reasmb: goto what
decomp: * i was *
reasmb: Were you really ?
reasmb: Why do you tell me you were (2) now ?
reasmb: Perhaps I already know you were (2).
decomp: * was you *
reasmb: Would you like to believe I was (2) ?
reasmb: What suggests that I was (2) ?
reasmb: What do you think ?
reasmb: Perhaps I was (2).
reasmb: What if I had been (2) ?
key: i 0
decomp: * i @desire *
reasmb: What would it mean to you if you got (3) ?
reasmb: Why do you want (3) ?
reasmb: Suppose you got (3) soon.
reasmb: What if you never got (3) ?
reasmb: What would getting (3) mean to you ?
reasmb: What does wanting (3) have to do with this discussion ?
decomp: * i am* @sad *
reasmb: I am sorry to hear that you are (3).
reasmb: Do you think coming here will help you not to be (3) ?
reasmb: I'm sure it's not pleasant to be (3).
reasmb: Can you explain what made you (3) ?
decomp: * i am* @happy *
reasmb: How have I helped you to be (3) ?
reasmb: Has your treatment made you (3) ?
reasmb: What makes you (3) just now ?
reasmb: Can you explain why you are suddenly (3) ?
decomp: * i was *
reasmb: goto was
decomp: * i @belief i *
reasmb: Do you really think so ?
reasmb: But you are not sure you (3).
reasmb: Do you really doubt you (3) ?
decomp: * i* @belief *you *
reasmb: goto you
decomp: * i am *
reasmb: Is it because you are (2) that you came to me ?
reasmb: How long have you been (2) ?
reasmb: Do you believe it is normal to be (2) ?
reasmb: Do you enjoy being (2) ?
reasmb: Do you know anyone else who is (2) ?
decomp: * i @cannot *
reasmb: How do you know that you can't (3) ?
reasmb: Have you tried ?
reasmb: Perhaps you could (3) now.
reasmb: Do you really want to be able to (3) ?
reasmb: What if you could (3) ?
decomp: * i don't *
reasmb: Don't you really (2) ?
reasmb: Why don't you (2) ?
reasmb: Do you wish to be able to (2) ?
reasmb: Does that trouble you ?
decomp: * i feel *
reasmb: Tell me more about such feelings.
reasmb: Do you often feel (2) ?
reasmb: Do you enjoy feeling (2) ?
reasmb: Of what does feeling (2) remind you ?
decomp: * i * you *
reasmb: Perhaps in your fantasies we (2) each other.
reasmb: Do you wish to (2) me ?
reasmb: You seem to need to (2) me.
reasmb: Do you (2) anyone else ?
decomp: *
reasmb: You say (1) ?
reasmb: Why do you say (1) ?
reasmb: Can you elaborate on that ?
reasmb: Do you say (1) for some special reason ?
reasmb: That's quite interesting.
key: you 0
decomp: * you remind me of *
reasmb: goto alike
decomp: * you are *
reasmb: What makes you think I am (2) ?
reasmb: Does it please you to believe I am (2) ?
reasmb: Do you sometimes wish you were (2) ?
reasmb: Perhaps you would like to be (2).
decomp: * you* me *
reasmb: Why do you think I (2) you ?
reasmb: You like to think I (2) you -- don't you ?
reasmb: What makes you think I (2) you ?
reasmb: Really, I (2) you ?
reasmb: Do you wish to believe I (2) you ?
reasmb: Suppose I did (2) you -- what would that mean ?
reasmb: Does someone else believe I (2) you ?
decomp: * you *
reasmb: I'm glad you've sent me this!
reasmb: Oh, I (2) ?
reasmb: You're not really talking about me -- are you ?
reasmb: How do you think I could (2) ?
key: yes 0
decomp: *
reasmb: Please go on.
reasmb: Please tell me some more about this.
reasmb: Why don't you tell me a little more about this.
reasmb: I see.
reasmb: I understand.
key: no 0
decomp: * no one *
reasmb: Are you sure, no one (2) ?
reasmb: Surely someone (2) .
reasmb: Can you think of anyone at all ?
reasmb: Are you thinking of a very special person ?
reasmb: Who, may I ask ?
reasmb: You have a particular person in mind, don't you ?
reasmb: Who do you think you are talking about ?
decomp: *
reasmb: Are you saying no just to be negative?
reasmb: Does this make you feel unhappy?
reasmb: Why not ?
reasmb: Why 'no' ?
key: my 2
decomp: * my* @family *
reasmb: Tell me more about your family.
reasmb: Who else in your family (4) ?
reasmb: Your (3) ?
reasmb: What else comes to mind when you think of your (3) ?
decomp: * my *
reasmb: Your (2) ?
reasmb: Why do you say your (2) ?
reasmb: Does that suggest anything else which belongs to you ?
reasmb: Is it important to you that your (2) ?
reasm_for_memory: Let's discuss further why your (2).
reasm_for_memory: Earlier you said your (2).
reasm_for_memory: But your (2).
reasm_for_memory: Does that have anything to do with the fact that
+ your (2) ?
key: can 0
decomp: * can you *
reasmb: You believe I can (2) don't you ?
reasmb: goto what
reasmb: You want me to be able to (2).
reasmb: Perhaps you would like to be able to (2) yourself.
decomp: * can i *
reasmb: Whether or not you can (2) depends on you more than on me.
+
reasmb: Do you want to be able to (2) ?
reasmb: Perhaps you don't want to (2).
reasmb: goto what
key: what 0
decomp: *
reasmb: Why do you ask ?
reasmb: Does that question interest you ?
reasmb: What is it you really want to know ?
reasmb: Are such questions much on your mind ?
reasmb: What answer would please you most ?
reasmb: What do you think ?
reasmb: What comes to mind when you ask that ?
reasmb: Have you asked such questions before ?
reasmb: Have you asked anyone else ?
key: who 0
decomp: who *
reasmb: goto what
key: when 0
decomp: when *
reasmb: goto what
key: where 0
decomp: where *
reasmb: goto what
key: how 0
decomp: how *
reasmb: goto what
key: because 0
decomp: *
reasmb: Is that the real reason ?
reasmb: Don't any other reasons come to mind ?
reasmb: Does that reason seem to explain anything else ?
reasmb: What other reasons might there be ?
key: why 0
decomp: * why don't you *
reasmb: Do you believe I don't (2) ?
reasmb: Perhaps I will (2) in good time.
reasmb: Should you (2) yourself ?
reasmb: You want me to (2) ?
reasmb: goto what
decomp: * why can't i *
reasmb: Do you think you should be able to (2) ?
reasmb: Do you want to be able to (2) ?
reasmb: Do you believe this will help you to (2) ?
reasmb: Have you any idea why you can't (2) ?
reasmb: goto what
decomp: *
reasmb: goto what
key: everyone 2
decomp: * @everyone *
reasmb: Really, (2) ?
reasmb: Surely not (2).
reasmb: Can you think of anyone in particular ?
reasmb: Who, for example?
reasmb: Are you thinking of a very special person ?
reasmb: Who, may I ask ?
reasmb: Someone special perhaps ?
reasmb: You have a particular person in mind, don't you ?
reasmb: Who do you think you're talking about ?
key: everybody 2
decomp: *
reasmb: goto everyone
key: nobody 2
decomp: *
reasmb: goto everyone
key: noone 2
decomp: *
reasmb: goto everyone
key: always 1
decomp: *
reasmb: Can you think of a specific example ?
reasmb: When ?
reasmb: What incident are you thinking of ?
reasmb: Really, always ?
key: alike 10
decomp: *
reasmb: In what way ?
reasmb: What resemblence do you see ?
reasmb: What does that similarity suggest to you ?
reasmb: What do you suppose that resemblence means ?
reasmb: What is the connection, do you suppose ?
reasmb: Could there really be some connection ?
reasmb: How ?
key: like 10
decomp: * @be *like *
reasmb: goto alike
key: different 0
decomp: *
reasmb: How is it different ?
reasmb: What differences do you see ?
reasmb: What does that difference suggest to you ?
reasmb: What other distinctions do you see ?
reasmb: What do you suppose that disparity means ?
reasmb: Could there be some connection, do you suppose ?
reasmb: How ?
key: fuck 10
decomp: *
reasmb: goto xswear
key: fucker 10
decomp: *
reasmb: goto xswear
key: shit 10
decomp: *
reasmb: goto xswear
key: damn 10
decomp: *
reasmb: goto xswear
key: shut 10
decomp: * shut up *
reasmb: goto xswear
key: xswear 10
decomp: *
reasmb: Does it make you feel strong to use that kind of language
+?
reasmb: Are you venting your feelings now ?
reasmb: Are you angry ?
reasmb: Does this topic make you feel angry ?
reasmb: Is something making you feel angry ?
reasmb: Does using that kind of language make you feel better ?
key: click 7
decomp: click here to be removed
reasmb: No, please send me more!
decomp: click here
reasmb: I would like to visit your site, but my mouse is broken
key: Dear 5
decomp: *
reasmb: Hi there, (2)
reasmb: Hi, how are you?
reasmb: Good morning!
readmb: To whom it concerns,
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
well... time for a first *real* post =). This is a good idea, if we could engineer a way to verify the "reply-to" addresses. Anyone care to take up the challenge? I'm most definetly not a Perl programmer by any means, but it doesn't seem that the concept of skimming through the e-mail, and "spamming" the addresses listed within (one of them HAS to be the real address), would be too difficult... anyone game?
Read the article about SPAM and Eliza. Now maybe you should make an educated post about what you just read and bring up some questions or comments about it. The SPAM filter seems to be a great thing and the actual program is not big at all. It looks very very promising.
you can tell procmail to exit with whatever exit code you feel like it. there's an exit code for "no such user" if you can detect your spam with procmail and any combination of scripts, you can force it to send a bounce message saying that the user doesn exist. if you want, you can even force that sendmail-generated bounce message, and still receive the mail.
consider the following recipes:this would have you still able to read your spam, if you're so inclined. (deliver it to /dev/null if you're not.) i would tend to think that a "user does not exist" bounce message would be better for preventing future spam than an annoying little eliza-generated email
#define F(x) int main(){printf(#x,10,#x);}
F(#define F(x) int main(){printf(#x,10,#x);}%cF(%s))
I agree it's nasty, but hardly forgery. It's no more forgery than writing "Dr. Nikolai Pantsanundies, 6th planet of the Gastric System, 7th Dimention" in the return address portion of an envelope. What we NEED instead of more stupid laws (we have enough idiotic ideas about computer "crime" in law enforcement already, Taco) is legal recourse for the recipient. I say, if we can track down who sent it, we should have a legal right to send them a bill, and sue if it's not paid. I mean a law that explicitly states this, not just a sig tagline like some guys have tried over the years.
jX [ Make everything as simple as possible, but no simpler. - Einstein ]
>> Spammers use invalid or non-working email addresses <<
Then how do they get customers? I suppose they may use a URL, but then one can Elizacate their e-shoppe. It might be a bit more work, but not entirely out of the question. Sort of a D.O.S. attack using Eliza-like technology.
Table-ized A.I.
I would like to order one copy of your interesting home business opportunity package, 3 tubes of thigh cream, your revolutionary mass-mailing program, my preapproved credit card, and credit repair package. And if there are any left, given that the offer was a last chance offer, 4 of your revolutionary wireless web cameras.
Attached is my credit card information. Click to open. ccinfo.doc
-- Another senseless waste of fine bytes.
You: All your base are belong to us.
Eliza: What about your own base are belong to us?
No replies made to AC posts. Please log in.
It's a cool service. Offered free, but I recomend you pay for it... doesn't cost much and it's such a great service.
Procmail is awesome for filtering spam.
O'Reilly's "Stopping Spam" features a Procmail recipe that institutes an "approved sender" list. In order to get through, a sender will need to send you just one email with your custom keyword on the subject line. Until that email is received, procmail replies to emails with instructions on becoming an "approved sender".
Spammers usually forge a return address, and also forge a different return address for each mass mailing. They never get your instructions, and their mail never gets through.
You can get it here. Also, you should check your full headers ('h' in pine) and see if your mail host is doing blacklist checking. You'll notice an X-Spam-Warning near the end of the headers if the email was delivered to your mail server from a machine known to not protect against spam. A procmail recipe to throw those out would be easy. Any takers?
Intelligent Life on Earth