(http://images.nosotros2.com/Articulos/alerta-medidas-contra-el-envenenamiento_1802.JPG)
Hola a todos, esta tarde estaba pensando en programar un zapper en C++ pero cuando me puse a hacerlo cambie de idea y pensé en crear una aplicación que suplantase la IP del atacante y así tocar un poco la moral del Sysadmin.
El código es sencillo se abre el log, se leen las líneas y se guardan en una string. A continuación se busca y reemplaza la ip del atacante por otra dirección IP en la string y luego se guarda dicha string con las modificaciones en el log.
Cualquier duda comentármela obviamente es una chapuzilla pero bueno si ha alguien le sirve, por compartir que no sea ;)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream a_entrada;
ofstream a_salida;
string ruta_log, linea, cuerpo, ip1, ip2;
cout << "Ruta del log: ";
cin >> ruta_log;
a_entrada.open(ruta_log.c_str());
if (a_entrada.fail())
{
cout << "El log no se puede abrir" << endl;
}
while(getline(a_entrada, linea))
{
cuerpo += linea +"\n";
}
a_entrada.close();
cout << "IP 1: ";
cin >> ip1;
cout << "IP 2: ";
cin >> ip2;
string::size_type p = 0;
while((p = cuerpo.find(ip1, p)) < string::npos)
{
cuerpo.replace(p, ip1.length(), ip2);
p+=ip1.size();
}
a_salida.open(ruta_log.c_str());
if (a_salida.fail())
{
cout << "No se pudo guardar el log" << endl;
}
a_salida << cuerpo;
a_salida.close();
cout << "Archivo log envenenado correctamente!";
system("pause");
return 0;
}
Fuera de todo comentario, me parecio interesante lo que hiciste, gracias por aportar..
"Manejar el silencio es más difícil que manejar la palabra."
Reflexionemos...