Inicio > .NET > C# Spam Bot [ Tutorial Parte 02 ]

C# Spam Bot [ Tutorial Parte 02 ]

Teniendo la Idea del post Anterior ahora vamos a crear nuestro Bot Spamer.

Lo haremos en una aplicacion de Consola, Lo Podemos hacer de varias formas, usando Sockets, WebClient, HttpWebRequest, etc. Para este Tutorial usaremos HttpWebRequest y HttpWebResponse que se encuentran en System.Net.

Aca el Codigo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/*

Autor: Por Esteban Fuentealba
Url: http://estebanfuentealba.net/

*/


/*
Importamos NET para poder usar HttpWebRequest y HttpWebResponse
*/
using System.Net;
/*
tambien Importamos IO para poder leer de forma mas facil la respuesta del servidor
*/
using System.IO;

namespace EstebanFuentealbaSpamBot
{
    class Program
{
/*
Declaramos las Variables que Ocuparemos
HttpWebRequest se encargara de hacer la peticion al servidor
*/
static HttpWebRequest peticion;
/*
HttpWebResponse se encarga de devolvernos la respuesta del servidor
*/
static HttpWebResponse respuesta;
/*
Stream va a leer esa respuesta
*/
static Stream stream;
/*
Stream reader va a hacer mucho mas facil la lectura de Stream
*/
static StreamReader read;

static void Main(string[] args)
{
    IPHostEntry host;
            string localIP = "";
            host = Dns.GetHostEntry(Dns.GetHostName());
            foreach (IPAddress ip in host.AddressList)
            {
                if (ip.AddressFamily.ToString() == "InterNetwork")
                {
                    localIP += "[IP: "+ip.ToString()+"] ";
                }
            }
/*
cadena_post es la cadena de todos los valores  de los names del form, seran los datos       que Postearemos
*/
            String cadena_post = "comment_parent=0&comment_post_ID=97&author=Esteban Fuentealba&redirect_to=/2008/10/09/primera-aplicacion-grails/&email=contacto@estebanfuentealba.net&url=https://estebanfuentealba.wordpress.com/&comment=Bot Spammer By Esteban Fuentealba >:D " + DateTime.Now + " " + localIP + " &submit=Enviar comentario&genseq=" + DateTime.Now.Millisecond;
/*
creamos la peticion con el link del action
*/
peticion = (HttpWebRequest)HttpWebRequest.Create(new Uri("https://estebanfuentealba.wordpress.com/wp-comments-post.php"));
/*
le decimos al programa que el metodo de nuestra peticion va a ser un post
*/
peticion.Method = "POST";
/*
seteamos un useragent , es como un navegador, en este caso firefox 3.0 para pasar piola
*/
peticion.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3";
/*
le decimos al programa que nuestra peticion es de tipo form osea formulario
*/
peticion.ContentType = "application/x-www-form-urlencoded";
/*
Aqui vamos a calcular el total de caracteres que va a tener nuestro posteo
*/
byte[] ByteQuery = System.Text.Encoding.ASCII.GetBytes(cadena_post);
peticion.ContentLength = ByteQuery.Length;
Stream QueryStream = peticion.GetRequestStream();
QueryStream.Write(ByteQuery, 0, ByteQuery.Length);
QueryStream.Close();
/*
pedimos al servidor la respuesta a nuestro posteo de datos y se lo entregamos al atributo respuesta
*/
respuesta = (HttpWebResponse)peticion.GetResponse();
/*
Vamos a leer la respuesta con un stream
*/
stream = respuesta.GetResponseStream();
/*
para hacer mas facil la lectura le pasamos el stream al streamReader
*/
read = new StreamReader(stream);
/*
seteamos una variable String que tendrá toda la respuesta del servidor
*/
String respuesta_string="";
/*
hacemos un while hasta que obtengamos toda la informacion
*/
while (!read.EndOfStream)
{
/*
Leemos solo una linea de la respuesta y la guardamos en una variable string
*/
String lee =read.ReadLine();
/*
yo solo quiero tener la cabecera de la respuesta del servidor asi que vere cuando tenga una linea vacia y si es asi parare el programa y mostrare los datos de lo que tengo leido hasta el momento
*/
if (lee != "\r\n")
{
    Console.WriteLine(lee);
return;
}
respuesta_string += lee;
}
/*
pongo un readLine para que el programa no se cierre
*/
Console.ReadLine();
}
}
}

Este Programa solo Postea a una entrada que tiene la id 97 =P, es tarea de ustedes hacer que postee a todas las entradas del blog, pero les dare una ayuda:
solo tienen que
1º entrar al blog con HttpWebRequest
2º sacar las id de todos las entradas que estan en portada
3º postear cada uno de esas ids que estan en portada

Saludos, espero que les sirva

Categorías:.NET Etiquetas: , , , ,
  1. octubre 11, 2008 a las 1:27 pm

    GigaZiko was Here xD … post hecho por el spammer del Esteban 11-10-2008 13:27:31

  2. kokalasonico
    marzo 31, 2011 a las 7:16 pm

    omnom

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: