Jump to content

Scientia

Members
  • Posts

    26
  • Joined

  • Last visited

Posts posted by Scientia

  1. Video

     

    A great production from BBC. I had not seen this before so I figured I would post it for others that had not seen it. After I watched this, I downloaded the entire show and was very pleased with the quality, both in content and production value. It was refreshing to see quality graphic work put into an evolution video.

     

    **I posted this here so as to make it visible to everybody rather than sticking it in biology as it's more light-weight than I would expect for that forum. Feel free (as I know you would) to move it if deemed necessary.

  2. Thank you for your response. I'll be looking into Sturm's theorem, although it's probably way over my head at this point.

     

    I've pretty much just been doing what you mentioned. I just look at a specific term and estimate about what I need to change my divisor to in order to make it positive or negative. I was just wondering if there was something that I missed. I suppose that i'll just have to get used to the idea that not everything is perfectly clear, especially as I progress into more advanced mathematics.

  3. I have a quick question regarding the identification of the lowest upper bound and the greatest lower bound for the zeros of a polynomial function. The method that my book shows is to use to upper and lower bound theorem involving synthetic division. This involves performing division with 1, 2, 3, etc. and -1, -2, -3 etc. until the bounds are found, but what if the lowest upper bound is something like 57 or 89? I'm I supposed to perform division for every number or is there a way to identify a smaller group of possible bounds.

     

    I've just been using the results of division to estimate about where it would be and eliminated possibilities from there, it just does not seem very...I don't know.. math-like to have to do that.

  4. I seem to be having an inordinate amount of difficult with understanding the concept of horizontal stretching and compressing graphs. Vertical stretching and compressing makes sense.

    [math]y=2f(x^2)[/math]

    If I understand it, this is simply multiplying the output of the function by two. All that happens is that the [math]y[/math] value is double whatever it would be as a result of [math]y=f(x^2)[/math]. This means that an input of 1 gives a [math]y[/math] value of 2, an input of 2 gives 8. This would stretch the graph away from the x-axis due to the y value increasing faster than it otherwise would.

     

    The part that confuses me is when you multiply the [math]x[/math] value while it's inside of the function. I was unable to figure out how to graph Horizontal stretching on a calculator so I just manipulated the functions to show the graph that I wanted for this post.

     

    Below is the graph of [math]y=f(x^2)[/math].

    screen01kl1.jpg

     

    This is simple enough, what confuses me is what happens when I give [math]x[/math] a coefficient greater than 1.

     

    [math]y=f(2x^2)[/math]

    screen02jm9.jpg

     

    Now I realize that to graph this, all that I have to do is multiply the [math]x[/math] coordinate by [math]1/2[/math] and keep the [math]y[/math] coordinate the same. [math](1,1)[/math] becomes [math](.5,1)[/math] and [math](2,4)[/math] becomes [math](1,4)[/math] etc. The problem is, I don't understand why this happens? Why am I not doubling the [math]x^2[/math] like I intuitively would?

     

    EDIT: I think I may have discovered what part of my problem is, [math]y=f(x^2)[/math] does not result in the graph that I have posted above as the function referenced by [math]f(x^2)[/math] is not given. I think what the book is asking is, what value of [math]x[/math], when multiplied by 2, gives the same output as the function would have if not multiplied by two. Is this correct? If so, it would explain what is happening as a function [math]f(x) = x^2[/math] (the actual function for the first graph) would indeed result in the value of [math]x[/math] needing to be .5 as [math]y=f(2x)[/math] when [math]f(2x)[/math] would be referring to [math]f(x) = x^2[/math]. .5 would be multiplied by 2 and then passed to the function which would square it to give the value of 1. Making the coordinates [math](.5,1)[/math].

  5. I'm not a physicist (yet) but I would say that being open minded in any scientific field would mean that you do not dismiss theories that you do not agree with without objectively examining the evidence.

  6. Go to a local community college for a remedial math course. This will start from a very basic level and move up to pre-algebra. Don't be afraid to ask questions in class. Aside from that, without having an instructor, you will find any type of auto-didactic methods frustrating.

  7. WHY is Religion such a target all the time??????

    why NOT Pizza or leather jackets or icecream flavors?

    Religion is attacked because of it's demand to be believed as correct. (Varies with different religions.)

     

    A preference of pepperoni over sausage does not mean that the sausage eaters are wrong, it's accepted as an opinion. Many religions on the other hand declare themselves to be true and all others to be false. They may even go as far as to damn those who chose another belief to spend eternity in hell, or reincarnate as a lesser being or object. Now, depending on how far the religion takes this, it can become a burden on others which is evident through war and crime done in the name of any particular religion.

     

    There are many other reasons why religion is such a strong focus of dialectic such as it's claims on the origin of life and the universe. These are questions which we hope to one day answer through science. Many religions attempt to answer these but can not provide the evidence which a scientific approach requires. I recognize this as a difference between science and religion/faith however in a society where scientific amelioration has played a large role, it seems that more people are becoming dissatisfied with the reports given by some religions.

     

    I could digress further and take up more of your time however I will attempt to end this post quickly. Science and religion do not easily get along, it comes down to science's role in society and religion's. As science begins to replace religion's accounts with it's own, the debates will only grow in number and ferocity. While I feel that religion could be eradicated or at least demoted to mythology and we would be better off, my lack of experiment/studies do not lend me the authority to make that claim officially with any real credence.

     

    ^--$0.02

  8. From the video it looks like he jumped or at least began to jump as the car hit the crates. This would make his movement completely separate from the crates, the only risk would be the possibility of him falling off early and being run over or having a crate hit the windshield and come back up at him. If he had stood on the crates the whole time he would have likely been just fine anyway. I'm not a physicist (yet) but if I had to guess I would say that his inertia (or resistance to a change in his state of motion) would keep him from moving anywhere but down due to gravity. The car would likely be well out of the way by then.

  9. NOTE: This is an early program, the code is messy, uncommented, and could probably

    be shortened considerably with a skilled eye. I however have lost most of my interest in

    updating the program, if I was going to do it again it would be a complete re-write. I'm far

    too busy to do that now. This was written as a way to reinforce programming techniques that

    I was learning and to waste a boring day. It works as far as I know, if anybody wants to

    add/remove/edit the program, have fun. Save your criticisms for somebody who cares.

     

    Pyspoof 2.0

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

    A pseudo-anonymous email spoofer with address collecting.

     

     

     

     

    What is it?

    =+=+=+=

     

    Pysp00f started off as a very simple email spoofer written in Python,

    essentially that's what it still is. It's written in Python so you'll

    need to have Python installed on your system to run it. You must be

    warned though,if you don't use an anonymous smtp server you can be

    traced. Most people wont even get into that unless you try something

    really stupid such as bomb threats or any other similar bad idea.

     

     

    Features

    =+=+=+

     

    A) Can send a single spoofed email.

    B) Can read in addresses from a text file and send the same email to all of them.

    C) Can take a URL from the user and pull just about every email address off of the page.

    D) Can take a text file from the user and find and pull out just about every email address.

    E) Can check old and new lists for duplicate entries.

     

     

    A) Single Email

    =+=+=+=+=+

     

    If you select this from the menu, you'll be prompted for a 'From'

    address, this is the address that will show up to the receiver of this

    email as the sender. That's the 'spoofing' part of this program. It

    will ask for the address of the receiver, then a subject, then it will

    prompt for the body. Enter the body, press enter twice when you finish.

    Once you do, it will ask you for an SMTP server, if you don't know

    one use Google, or contact your ISP and ask for theirs. Next, just press

    enter and it will send the email to the specified address.

     

     

    B) Mass Email

    =+=+=+=+=+

     

    If you select this from the menu, you'll be prompted for a list of

    email addresses, this list should be formatted as one address per line

    and needs to be in the same directory as this program. Give it the file

    name including the extension (.txt) and it will load the addresses. It

    will let you know how many it's loaded and ask you for the receiver,

    the sender address, subject, body, and server just like the single

    email function.

     

    Fill these out and it will send the email to all of the address in the

    file, it will notify you every time it attempts to send a message, and

    every time it successfully sends a message. It has a 10 email limit,

    once it reaches this, it will disconnect from the server, pause for 12

    seconds, then reconnect and keep going. Some servers will limit the

    amount of emails you can send per session. Usually 10 is low enough to

    keep from having any troubles, if not then change it in the source.

     

    C) Web page scan

    =+=+=+=+=+=+

     

    By selecting this option in the menu, you'll be prompted

    with another two options, to scan a web page or a file. In this case

    we'll discuss a web page. Select the option 'a' and it will prompt you

    for a URL. Enter the full URL of the page you want it to scan, once you

    do this it will connect to the server and grab the page. It will then

    ask you for a domain to scan for, this would be @hotmail.com, or

    @yahoo.com. If you want it to scan for everything that looks like an

    email address, simply enter an asterisk * instead of a domain.

    It will scan through the page for email addresses and let you know

    when it's finished how many its found.

     

    It will then prompt you for a filename including the extension that

    it will save these to, good thing about this is that it saves them in

    the proper format for the mass mailer. If the file you specify already

    exists, it will append the addresses to it. In the latest update, it

    now checks the file for duplicate entries, removes them and updates

    the file with only unique addresses. It's a good idea to look over the

    email address list before you use it. This is handy when you want to

    grab a bunch of emails from a site and send them all a message and be

    pseudo-anonymous in under a minute. Usually something that can take quite a

    long time.

     

     

    D) File Address Scan

    =+=+=+=+=+=+=+

     

    This is very similar to the URL scan except in this case it scans a

    file. This is useful for when you've either got a bunch of email

    addresses in a file and want them to be formatted for the mass email

    function, or you've got something like an html file with addresses

    hidden away in the source. As with the URL scan, it will scan for

    addresses either with a specified domain or if you use the * option, it

    will scan for anything that looks like an address. As I said before,

    it's a good idea to look over the list before you use it for false

    addresses. It will notify you of how many addresses it found just after

    the scan so you can be sure early on of how many addresses you'll have.

    Just like in the URL scan, it will perform a duplicate scan over the

    file and let you know how many duplicates it found and removed leaving

    you with a file full of unique addresses.

     

    E) Duplicate Scan

    =+=+=+=+=+=+

     

    This will allow you to enter a file name for it to scan for

    duplicates, it will scan the file line by line to see if it contains

    the same address twice, if it does, it will remove it. After it finds

    all of the duplicates it will tell you how many it's found and then

    overwrite the old file with a new list containing only unique

    addresses. Make sure you've got it formatted as one address per line, if

    you don't feel like doing it yourself, just run a file address scan (see D)

    and it'll format it for you. If you don't set it up this way, it wont work.

     

     

    F) Command Line Arguments

    =+=+=+=+=+=+=+=+=+=+

     

    In the latest update, I have added support for command line

    options. This is useful if you want to run it while you're not home

    or away from the computer, every option can now be set automatically

    in a script and fully automated. When using a script to send emails,

    mass or single, you must have the body in a text file in the same

    directory. When specifying the subject, use underscores for spaces.

     

    Command Line Usage For Single Line Automation

    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

     

    0pti0ns
    =+=+=+=
    pyspoof.py -[mode] [mode_parameters]
    Code:
    
       Modes
       =====
       -menu   -->   use menu interface
       -grab   -->   search file or webpage for addresses
       -mail   -->   send email single or mass
           -single -->   send single spoofed email
           -mass   -->   read emails from list and message all of them, opt spoof
       -dupe   -->   search email list for duplicates
    
       Mode_parameters
       ===============
       -grab
           -w 'URL'               --> search webpage
           -f 'Filename'          --> search file
           -d 'domain or 'all''   --> domain to search for ex: @yahoo.com or all
                                      all is a wildcard, type 'all' without quotes
           -o 'outputfile.txt'    --> the output file for the addresses
       -mail
           -single
               -to 'to@domain.com'      --> address to send to
               -from 'from@domain.com'  --> address to spoof
               -sub 'subject'           --> subject, use underscores for spaces
               -server 'smtp.server.com'--> smtp server to use
               -bod_file 'body_file.txt'--> text file containing body of email
           -mass
               *see -single
               -a_list 'a_list.txt'     --> list containing email addresses
       -dupe
           file_to_scan.txt             --> list containing email addresses
    
    Example: to send an spoofed email to me at fake-email@gmail.com
       with the smtp server smtp.comcast.net, the subject "example"
       the body in a text file called email_body.txt, and the spoofed
       address spoofed@sp00fer.com, you would use the line...
    
    pyspoof -mail -single -to fake-email@gmail.com -from spoofed@sp00fer.com
    -sub example -server smtp.comcast.net -bod_file email_body.txt
    
    

     

    Source Code

    =+=+=+=+

     

     

    
    
    ################
    # Pysp00f_CLI  #
    #              #
    # V 2.0        #
    ################
    
    import time, sys, smtplib, string, urllib2, re
    
    run = 0
    def splash():
       print """
    ############################################################################
    # __________                      _______  _______   _____                 #
    # \______   \___.__. ____________ \   _  \ \   _  \_/ ____\                      #
    #  |     ___<   |  |/  ___/\____ \/  /_\  \/  /_\  \   __\                 #
    #  |    |    \___  |\___ \ |  |_> >  \_/   \  \_/   \  |                   #
    #  |____|    / ____/____  >|   __/ \_____  /\_____  /__|                   #
    #            \/         \/ |__|Command   \/Line   \/Interface              #
    #                                                              Version 2.0 #
    ############################################################################
    
    Disclaimer: If you screw up it's not my fault...
    
    
    ===============================================================================
    """
       time.sleep(2)
    
    def send_mail(toaddy, spoofaddy, sub, server, bod):
       try:
           HOST = server
           FROM = spoofaddy
           TO = toaddy
           SUBJECT = sub
           BODY = bod
           body = string.join((
               "From: %s" % FROM,
               "To: %s" % TO,
                "Subject: %s" % SUBJECT,
                "",
               BODY), "\r\n")
           server = smtplib.SMTP(HOST)
           print "[*] Connecting to server..."
           time.sleep(2)
           server.sendmail(FROM, [TO], body)
           print "[*] Sending email..."
           time.sleep(3)
           server.quit()
           print "[*] Closing connection with server..."
           time.sleep(2)
           print "[*]Message Successfully Sent."
           time.sleep(3)
       except:
           print "Error: Email could not be sent, try a different server."
           menu()
    
    def send_mail_var():
       toaddy = raw_input("TO: ")
       spoofaddy = raw_input("From: ")
       sub = raw_input("Subject: ")
       bl = 0
       bod=""
       while bl < 1:
           rff = raw_input("Read body from file(y/n): ").lower()
           if rff == "y":
               bfn = raw_input("File: ")
               try:
                   bf = open(bfn, "r")
                   bod = bf.read()
                   bl+=1
               except:
                   print "Unable to locate %s" % bfn
                   time.sleep(1)
                   rff = 'n'
           elif rff == "n":
               print "Enter message, end with ^D (Unix) or ^Z (Windows) if that doesn't work, press enter twice: "
               while 1:
                   try:
                       line = raw_input()
                   except EOFError:
                       break
                   if not line:
                       break
                   bod = bod +'\n'+line
               print "Message length is " + repr(len(bod))
               bl+=1
           else:
               print "Not an option"
       server = raw_input("Mail Server: ")
       send_mail(toaddy, spoofaddy, sub, server, bod)
    
    def list_mail_var():
       e_list = raw_input("Text file with email addresses: ")
       spoofaddy = raw_input("From address: ")
       server = raw_input("SMTP server: ")
       sub = raw_input("Subject: ")
       bl = 0
       bod=""
       while bl < 1:
           rff = raw_input("Read body from file(y/n): ").lower()
           if rff == "y":
               bfn = raw_input("File: ")
               try:
                   bf = open(bfn, "r")
                   bod = bf.read()
                   bl+=1
               except:
                   print "Unable to locate %s" % bfn
                   time.sleep(1)
                   rff = 'n'
           elif rff == "n":
               print "Enter message, end with ^D (Unix) or ^Z (Windows): (Press enter twice)"
               while 1:
                   try:
                       line = raw_input()
                   except EOFError:
                       break
                   if not line:
                       break
                   bod = bod +'\n'+line
               print "Message length is " + repr(len(bod))
               bl+=1
           else:
               print "Not an option"
       list_bomb(e_list, spoofaddy, server, sub, bod)
    
    
    def list_bomb(e_list, spoofaddy, server, sub, bod):
       email_list = open(e_list, "r").readlines()
       e_count = 1
       es_count = len(email_list)
       num = len(email_list)
       print "Successfully loaded %s addresses" % num
       try:
           HOST = server
           FROM = spoofaddy
           SUBJECT = sub
           BODY = bod
    
           print "[*] Connecting to server..."
           server = smtplib.SMTP(HOST)
           print "[*] Connected to server..."
           time.sleep(2)
           loops = 0
           count = 0
           for address in email_list:
               if loops < 1:
                   print "[*] Formatting email text..."
               else:
                   pass
               body = string.join((
               "From: %s" % FROM,
               "To: %s" % address,
               "Subject: %s" % SUBJECT,
               "",
               BODY), "\r\n")
               if loops < 1:
                   print "[*] Text Formatted..."
               else:
                   pass
               time.sleep(0.3)
               print "[*] (%s/%s) Sending email to %s" % (e_count, es_count, address)
               e_count += 1
               server.sendmail(FROM, [address], body)
               time.sleep(1)
               print "[*] Sent!"
               time.sleep(3)
               loops+=1
               count+=1
               if count == 10:
                   server.quit()
                   print "\n[*] Connection closed for 10 message loop limit"
                   print "\n[*] Reconnection will occur momentarily..."
                   time.sleep(11)
                   print "\n[*] Reconnecting to server..."
                   server = smtplib.SMTP(HOST)
                   time.sleep(2)
                   print "\n[*] Reconnection successful..."
                   count = 0
               else:
                   pass
           print "[*] All %s emails successfully sent!" % es_count
           time.sleep(1)
           print "[*] Closing connection with server..."
           server.quit()
           time.sleep(0.7)
           print "[*] Connection successfully closed"
           time.sleep(2)
           exit()
    
       except:
           print "Error: Email could not be sent, try a different server, if some of the addresses were successful, you may have to edit them out of the list and try again in a few minutes."
           exit()
    
    
    
    def load_addr_loc_var():
       clin = 0
       exp = ""
       print "Search for address in w) webpage or f) text file\n"
       selection = raw_input("w or f: ").lower()
       if selection == 'w' or 'webpage' 'web page':
           page_url = raw_input("Page URL to scan: ")
           nof = raw_input("Output file: ")
           load_addr_loc(selection, page_url, nof, clin, exp)
       elif selection == 'f' or 'file' or 'textfile' or 'text file':
           txt_file = raw_input("Name of file (must be in same directory as this program): ")
           nof = raw_input("Output file: ")
           load_addr_loc(selection, txt_file, nof, clin, exp)
       else:
           print "Not an option"
           menu()
    
    def load_addr_loc(selection, e_loc, nof, clin, exp):
       if clin < 1:
           time.sleep(1)
           dm = raw_input("\nDomain to search for ex: @hotmail.com, enter * to search search for all: ")
           if dm == '*':
               time.sleep(1)
               print "[*] Compiling regular expression..."
               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*@\w*[-]?\w*[\.]?\w{2,3}?[\.]?\w{2,3}[\.]?\w*'
           else:
               time.sleep(1)
               print "[*] Compiling regular expression..."
               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*%s' % dm
       else:
           pass
       if selection == 'w':
           page_url = e_loc
           try:
               print "[*] Connecting to %s" % page_url
               page = urllib2.urlopen(page_url)
               time.sleep(1)
               print "[*] Reading page source into scannable format..."
               source = page.readlines()
               reg_grab(source, nof, clin, exp)
    
           except:
               print "[*] Unable to connect to %s" % page_url
               if clin < 1:
                   raw_input("\n\nPress enter to continue")
                   menu()
               else:
                   raw_input("\nPress enter to exit")
    
       elif selection == 'f':
           txt_file = e_loc
           try:
               print "[*] Loading %s" % txt_file
               page = open(txt_file, 'r')
               time.sleep(2)
               print "[*] Reading file into scannable format..."
               source = page.readlines()
               reg_grab(source, nof, clin, exp)
    
           except:
               print "[*] Unable to find/open %s" % txt_file
               if clin < 1:
                   raw_input("\n\nPress enter to continue")
                   menu()
               else:
                   raw_input("\nPress enter to exit")
    
       else:
           print "Not an option"
           menu()
    
    def reg_grab(source, nof, clin, exp):   
    
       pa = re.compile(exp)
       time.sleep(1)
       count = 0
       print "[*] Attempting to extract addresses from source, be patient..."
       e_address = []
       for line in source:
           find = pa.search(line)
           if find:
               address = find.group()
               e_address += address+'\n'
               count+=1
           else:
               pass
       time.sleep(2)
       if count > 0:
           print "[*] Successfully extracted %s address(es) from source." % count
           time.sleep(1.4)
           print "[*] Preparing to write address(es) to a text file"
           time.sleep(0.7)
           print "If the file already exists, the address(es) will be appended to it."
           time.sleep(3)
           print "[*] Opening %s" % nof
           ftw = open(nof, 'a+')
           time.sleep(1)
           print "[*] Writing address(es) to %s" % nof
           for e_add in e_address:
               addr = e_add
               ftw.write(addr)
           time.sleep(1.2)
           print "[*] Successfully wrote %s address(es) to %s" % (count, nof)
           time.sleep(1)
           ftw.close()
           find_dupes(nof)
           print "It is recommended that you review the file before using it."   
           if clin < 1:
               raw_input("\n\nPress enter to return to the menu.")
               menu()
           else:
               print "Message Successfully Sent."
               raw_input("\nPress enter to exit")
       else:
           print "[*] No valid addresses found."
           if clin < 1:
               raw_input("\n\nPress enter to return to the menu")
               menu()
           else:
               print "Message Successfully Sent."
               raw_input('\nPress enter to exit')
    
    def exit():
       print "Message Successfully Sent."
    
    def find_dupes(fto):
       print "[*] Preparing to scan %s for duplicate entries..." % fto
       time.sleep(1)
       f_dupes = 0
       try:
           d_source_f = open(fto, "r")
           d_source = d_source_f.readlines()
           final_list = []
           print "[*] Searching %s for duplicate entries..." % fto
           time.sleep(2)
           for e_a in d_source:
               if e_a in final_list:
                   f_dupes+=1
                   pass
               else:
                   final_list.append(e_a)
           d_source_f.close()
           if f_dupes < 1:
               print "[*] 0 duplicates found."
               time.sleep(1)
           else:
               print "[*] Successfully found and removed %s duplicate(s)" % f_dupes
               u_add = len(final_list)
               time.sleep(0.3)
               print "[*] %s unique address(es) remain" % u_add
               f_add = open(fto, "w+")
               time.sleep(1)
               print "[*] Overwriting %s with unique addresses only..." % fto
               for e_add in final_list:
                   f_add.write(e_add)
               f_add.close()
               time.sleep(2)
               print "[*] Duplicates removed and list updated successfully"
               time.sleep(2)
       except:
           print "!Unable to open %s" % fto
           time.sleep(2)
    
    def help():
       print """              0pti0ns
                 =+=+=+=
       pyspoof.py -[mode] [mode_parameters]
    
       Modes
       =====
       -menu   -->   use menu interface
       -grab   -->   search file or webpage for addresses
       -mail   -->   send email single or mass
           -single -->   send single spoofed email
           -mass   -->   read emails from list and message all of them, opt spoof
       -dupe   -->   search email list for duplicates
    
       Mode_parameters
       ===============
       -grab
           -w 'URL'               --> search webpage
           -f 'Filename'          --> search file
           -d 'domain or 'all''   --> domain to search for ex: @yahoo.com or all
                                      all is a wildcard, type 'all' without quotes
           -o 'outputfile.txt'    --> the output file for the addresses
       -mail
           -single
               -to 'to@domain.com'      --> address to send to
               -from 'from@domain.com'  --> address to spoof
               -sub 'subject'           --> subject, use underscores for spaces
               -server 'smtp.server.com'--> smtp server to use
               -bod_file 'body_file.txt'--> text file containing body of email
           -mass
               *see -single
               -a_list 'a_list.txt'     --> list containing email addresses
       -dupe
           file_to_scan.txt             --> list containing email addresses
       Example: pyspoof -mail -single -to o0family.guy0o@gmail.com -from spoofed@sp00fer.com
                -sub example -server smtp.comcast.net -bod_file email_body.txt       
    """
    
    def cli():
       arg = sys.argv
       if len(arg) > 1:
           clin = 0
           clin += 1
           if arg[1] == '-grab':
               if '-w' and '-o' and '-d' in arg:
                   selection = 'w'
                   if arg[arg.index('-w')+1]:
                       if 'http://' or 'www' in arg[arg.index('-w')+1]:
                           e_loc = arg[arg.index('-w')+1]
                           if arg[arg.index('-o')+1]:
                               if '.txt' in arg[arg.index('-o')+1]:
                                   nof = arg[arg.index('-o')+1]
                                   if arg[arg.index('-d')+1]:
                                       if '@' or 'all' in arg[arg.index('-d')+1]:
                                           if '@' in arg[arg.index('-d')+1]:
                                               dm = arg[arg.index('-d')+1]
                                               splash()
                                               print "\n[*] Compiling regular expression..."
                                               time.sleep(1)
                                               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*%s' % dm
                                               load_addr_loc(selection, e_loc, nof, clin, exp)
                                           elif 'all' in arg[arg.index('-d')+1]:
                                               splash()
                                               print "\n[*] Compiling regular expression..."
                                               time.sleep(1)
                                               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*@\w*[-]?\w*[\.]?\w{2,3}?[\.]?\w{2,3}[\.]?\w*'
                                               load_addr_loc(selection, e_loc, nof, clin, exp)
                                           else:
                                               print "Specify a domain: EX: -d @yahoo  or use the wildcard all"
                                       else:
                                           print "Specify a domain: EX: -d @yahoo  or use the wildcard all"
                                   else:
                                       print "Specify a domain: EX: -d @yahoo or use the wildcard all"
                               else:
                                   print "Use: pyspoof.py -grab -w  -o  -d "
                                   raw_input("\nPress enter to exit")
                           else:
                               print "Need an output file... -o "
                       else:
                           print "Need a URL... -w "
                   else:
                       print "Need a URL... -w "
               elif '-f' and '-o' in arg:
                   selection = 'f'
                   if arg[arg.index('-f')+1]:
                       if '.' in arg[arg.index('-f')+1]:
                           e_loc = arg[arg.index('-o')+1]
                           if arg[arg.index('-o')+1]:
                               if '.txt' in arg[arg.index('-o')+1]:
                                   nof = arg[arg.index('-o')+1]
                                   if arg[arg.index('-d')+1]:
                                       if '@' or 'all' in arg[arg.index('-d')+1]:
                                           if '@' in arg[arg.index('-d')+1]:
                                               dm = arg[arg.index('-d')+1]
                                               splash()
                                               print "\n[*] Compiling regular expression..."
                                               time.sleep(1)
                                               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*%s' % dm
                                               load_addr_loc(selection, e_loc, nof, clin, exp)
                                           elif 'all' in arg[arg.index('-d')+1]:
                                               splash()
                                               print "\n[*] Compiling regular expression..."
                                               time.sleep(1)
                                               exp = '\w*[\.]*\w*[\.]*\w*[\.]*\w*[\.]*\w*@\w*[-]?\w*[\.]?\w{2,3}?[\.]?\w{2,3}[\.]?\w*'
                                               load_addr_loc(selection, e_loc, nof, clin, exp)
                                           else:
                                               print "Specify a domain: EX: -d @yahoo  or use the wildcard all"
                                       else:
                                           print "Specify a domain: EX: -d @yahoo  or use the wildcard all"
                                   else:
                                       print "Specify a domain: EX: -d @yahoo or use the wildcard all"
                               else:
                                   print "Need an output text file...EX: -o "
                           else:
                               print "Specify an output file...EX: -o "
                       else:
                           print "Use full filename to search...EX: -f "
                   else:
                       print "Specify a file to search...EX: -f "
               else:
                   print "Use: -grab {-f/-w} (filename/webpage) -o "
           elif arg[1] == '-mail':
               if '-from' and '-sub' and '-server' and '-bod_file' in arg:
                   if '-single' or '-mass' in arg:
                       if '-single' in arg and '-mass' not in arg:
                           type = 'single'
                       elif '-mass' in arg and '-single' not in arg:
                           type = 'mass'
                       else:
                           print "Specify either '-single' or '-mass' but not both"
    
                       if arg[arg.index('-from')+1]:
                           if '@' in arg[arg.index('-from')+1]:
                               from_add = arg[arg.index('-from')+1]
                               if arg[arg.index('-sub')+1]:
                                   subj = arg[arg.index('-sub')+1]
                                   if arg[arg.index('-server')+1]:
                                       serv = arg[arg.index('-server')+1]
                                       if arg[arg.index('-bod_file')+1]:
                                           f_name = arg[arg.index('-bod_file')+1]
                                           try:
                                               f_open = open(f_name, 'r')
                                               t_bod = f_open.read()
                                               f_open.close()
                                           except:
                                               print "Unable to find %s" % f_name
                                               exit()
                                           if type == 'single':
                                               if arg[arg.index('-to')+1]:
                                                   if '@' in arg[arg.index('-to')+1]:
                                                       to_add = arg[arg.index('-to')+1]
                                                       send_mail(to_add, from_add, subj, serv, t_bod)
                                                   else:
                                                       print "Usage: -to 'to@domain.com'"
                                                       exit()
                                               else:
                                                   print "Usage: -to 'to@domain.com'"
                                                   exit()
    
                                           elif type == 'mass':
                                               if '-a_list' in arg:
                                                   if arg[arg.index('-a_list')+1]:
                                                       e_list = arg[arg.index('-a_list')+1]
                                                       list_bomb(e_list, from_add, serv, subj, t_bod)
                                                   else:
                                                       print "Usage: -a_list 'youraddresslist.txt'"
                                               else:
                                                   print "Type '-mass' requires an email address list. (-a_list 'yourlist.txt')"
                                           else:
                                               print "Specify a type, -single or -mass"
                                       else:
                                           print "Usage: -file 'body_file.txt'"
                                           exit()
                                   else:
                                       print "Usage: -server 'smtp.server.com'"
                                       exit()
                               else:   
                                   print "Usage: -sub 'subject'"
                                   exit()
                           else:
                               print "Usage: -from 'from@domain.com'"
                               exit()
                       else:
                           print "Usage: -from 'from@domain.com'"
                           exit()
    
                   else:
                       print "Specify either -mass or -single"
                       exit()
               else:
                   print """Must contain: -to -from -sub -server and -bod_file
                                         arguments, -mass requires -a_list too"""
                   exit()
           elif arg[1] == '-dupe':
               if arg[arg.index('-dupe')+1]:
                   try:
                       dupe_test = open(arg[arg.index('-dupe')+1], 'r')
                       dupe_test.close()
                       find_dupes(arg[arg.index('-dupe')+1])
                   except:
                       print "Unable to locate %s" % dupe_test
                       exit()
               else:
                   print "Usage: -dupe 'file_to_scan.txt'"
                   exit()
           elif arg[1] == '-menu':
               menu()
           elif arg[1] == '-help' or arg[1] == '-h':
               help()
    
    
       else:
           help()
    
    def menu(): 
       splash()
       print """
               Menu
               =++=
           1) Send one email
           2) Send mass email
           3) Grab email addresses from a webpage or file
           4) Search list for duplicate addresses
           5) Quit
           \n"""
       method = int(raw_input("Choice (number): "))
       if method == 1:
           send_mail_var()
       elif method == 2:
           list_mail_var()
       elif method == 3:
           load_addr_loc_var()
       elif method == 4:
           f = raw_input("File to search (include file extension): ")
           find_dupes(f)
       elif method == 5:
           exit()
       else:
           print "\n%s is not an option!" % method
    cli() 
    
    

  10. Not that I can contribute this, but I thought that it would be interesting to see the home/work labs that some of the people here use. It would help to see what other people in your field use and give you and idea of what you could use.

  11. @Innit: You say that you're currently a student at school. Would this be high school or college. If it's college, what is your major? What are your current classes focusing on? What is your mathematical knowledge?

  12. @bignose: I really enjoy Numb3rs, i've got every episode to date on an external hard drive. I've also just watched the first 4 episodes of Big Bang Theory. I agree with your statement, it's simply okay. Strange thing, in the first episode, the first bit of dialogue between the two main characters is a discussion about the double slit experiment. The tall one (names escape me) is explaining the main result to the shorter one as though he has never heard about it. I do find it hard to believe that one can achieve a doctorate in physics without knowing of the experiment.

     

    @uncool: Part of the show's appeal to the general public is the over use of such jargon by complicating the scenario. It makes the mathematics seem more abstruse thereby inducing awe towards Charlie's intelligence. This is seen in many shows.

     

    A good example of total negligence towards realism is Live free or Die Hard. The computer 'hacking' was absolutely ridiculous and even a bit insulting towards the lack of knowledge on the subject of computers held by most.

     

    Did anybody notice that they used three of the actors from the show Rosanne? Strange to see them working together again.

     

    Edit: Futurama is a fantastic show, the quantum finish was quite funny. Here is a link to some interesting mathematical and scientific occurrences from the show's series so far. Number 15 is the quantum finish...

     

    http://usuarios.lycos.es/bbrp/mathematics.html

  13. That's something that I just don't understand. For shows that focus on the medical field such as House, they don't think twice about using real medical jargon in the right context. It seems that whenever anybody gets near a computer on a television show, they quickly execute some unrealistic task with a few keystrokes, barely ever do they use a mouse, and everything is animated with annoying sound effects. More shows need to embrace science and technology and have experts in the fields working with the writers to respectfully include the material into the script.

  14. This was read on The Screen Savers a while back. It's a joke, as has been stated multiple times in the thread. It's also been passed around the internet for many years now. The real worry here is that some parents really feel like this.

  15. That is precisely what I would like to be doing. I would love to end up doing research, the resources available for certain universities are far more then I could find elsewhere. Is that the Usual job for astrophysicists? I had the idea that it was research for a university or working for the government. I'm sure that I just don't know nearly enough on the subject.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.