Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - PiernaDeFelipeCamiroaga

#1
La borre porque no funcionaba pero me falto borrar la paste donde se llama a la función de todas formas si sabes como hacer lo que estoy preguntando seria de mucha ayuda
#2
Creo que falto aclarar que todo esta hecho en Linux Ubuntu
#3
La cosa es que programe un servidor con protocolo TPC en linux y funciona para enviar mensajes y cosas muy básicas usando el comando telnet de linux. Pero lo que quiero es poder subir archivos o descargarlos desde ese servidor tengo idea de como hacerlo, en Internet vi que podía usar Firezilla que seria la opción fácil pero la verdad quiero yo programar toda la parte del servidor si alguien me puede ayudar a poder hacer eso estaria muy agradecido. Gracias de antemano

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/sendfile.h>               //Sirve para poder enviar archivos
#include <sys/types.h>                  //Sirve para poder recivir archivos
#include <linux/if_packet.h>
#include <sys/ioctl.h>                  // Estas 2 librerias son para poder saber algunos datos sobre el
#include <net/if.h>                     // Cliente en cuention
   
#define BUFFSIZE 1
#define ERROR -1
#define BUFFERSIZE 512

// Funciones //
   
int login(int socket_cliente);
void direccip(int socket_cliente, struct sockaddr_in addr);
void salir(int socket_servidor, int socket_cliente);
int intentos = 0;
   
int main(){

   int socket_servidor;            //Socket del servidor para escuchar mensajes
   int socket_cliente;             //Socket del cliente para enviar mesajes
   int puerto = 8081;              //Numero de puerto en /etc/service
   char BUFFER[BUFFERSIZE];        //Mensaje para usar los comandos
   FILE * archivo;                 //Archivo sin formato

   socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
   socklen_t longc;

  // Declaracion de las escructuras;
   struct sockaddr_in servidor, cliente;                   //Creamos las estructuras del cliente y servidor al mismo tiempo
   bzero((char *)&servidor, sizeof(servidor));             //Primero llenamos de 0's la struct
   servidor.sin_family = AF_INET;                          //Asiganamos la estructura
   servidor.sin_port = htons(puerto);                      //Indicamos el puerto
   servidor.sin_addr.s_addr = INADDR_ANY;                  //Esta macro especifica nuestra direccion
   
   if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
       printf("Error al asociar el puerto a la conexion\n");
       return 1;
   }
   
           
   listen(socket_servidor,3);                              //Escuchamos por este puero maximo 2 clientes distintos
   while(free){
       intentos = 0;
       printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
       longc = sizeof(cliente);                                //Asignamos el tamano de la estructura a esta variable
       socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
       if(socket_cliente == -1){
           printf("Error en al conexion\n");
        return 1;
       }
       printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));
   
   //Login con el servidor

       int conexion = login(socket_cliente);
       printf("\n");
       if(conexion == 12){
           while(free){
               bzero(BUFFER, BUFFERSIZE);
               recv(socket_cliente,BUFFER,50,0);
               if(strncmp(BUFFER,"IP",2) == 0){
                   direccip(socket_cliente, cliente);
               }
               if(strncmp(BUFFER,"EXIT", 4) == 0){
                   salir(socket_servidor, socket_cliente);
               }
           }
       }
   }
}
int login(int socket_cliente){
         
   char user[8];
   char pass[8];

   if(intentos == 3){
       close(socket_cliente);
       return 0;
   }

   memset(user,0 , 8);
   memset(pass,0 , 8);
   printf("%i",intentos );
   printf("\n");

   
   send(socket_cliente,"Usuario: ",10,0);
   read(socket_cliente,user,9);
   send(socket_cliente, "Contrasena: ", 12, 0);
   read(socket_cliente, pass, 8);
   
   if(strncmp(user, "root",4) == 0){
       if(strncmp(pass, "root",4) == 0){
           send(socket_cliente,"Bienvenido\n",12,0);
       }else{
           send(socket_cliente,"ERROR\n",7,0);
           intentos = intentos + 1;
           login(socket_cliente);
       }
   }else{
       send(socket_cliente,"ERROR\n",7,0);
       intentos = intentos + 1;
       login(socket_cliente);
   }
}
   
void direccip(int socket_cliente, struct sockaddr_in addr){
   write(socket_cliente, "Tu eres: ",9);
   write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
   write(socket_cliente,"\n",2);
}

void salir(int socket_servidor, int socket_cliente){
   write(socket_cliente, "ADIOS ;)\n", 10);
   close(socket_cliente);
}
#4
Cita de: MAFUS en 15 Junio 2018, 14:43 PM
Y la página web esa no tendrá una protección contra eso, tipo deshabilitar la cuenta después de un número de intentos?
no tiene límite de intentos probé poniendo palabras al azar y aun me dejaba seguir ingresando datos
#5
El problema es que te faltaban librerías <windows.h> y <stdlib.h> la primera para poder usar el "cls"y la otra para los números aleatorio y use void gotoxy(int x, int y) para otorgar coordenadas a la parte donde ingresas las letras y asi poder sobre escribir en la misma posición y se viera como si se borrara y use los system("cls") para borrar el monito de palo mostrar el siguiente.

No se si me explique bien pero igual te dejo el código "arreglado"

Código (cpp) [Seleccionar]
#include <windows.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <time.h>

using namespace std;

void inicio();
void primer_error();
void segundo_error();
void tercer_error();
void cuarto_error();
void quinto_error();
void jugar();
void rellenar(string n);
void intentos(int intento);

void gotoxy(int x,int y){
HANDLE hcon;
hcon = GetStdHandle(STD_OUTPUT_HANDLE);

COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hcon,pos);
}

int main(){
int opcion;
srand(time(NULL));
do{
cout << "1. JUGAR" << endl;
cout << "2. SALIR" << endl;
cin >> opcion;
system("cls");
switch(opcion){
case 1: jugar(); break;
case 2: cout << "HASTA LUEGO" << endl; break;
default: cout << "OPCION INCORRECTA, Intente de nuevo" << endl;
}
}while(opcion!=2);
system("pause");
return 0;
}

void inicio()
{
cout << "**********" << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void primer_error()
{
system("cls");
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void segundo_error()
{
system("cls");
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void tercer_error()
{
system("cls");
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*       /|\\" << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void cuarto_error()
{
system("cls");
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*       /|\\" << endl;
cout << "*        A  " << endl;
cout << "*       / \\" << endl;
cout << "*           " << endl;
}

void quinto_error()
{
system("cls");
cout << "**********   " << endl;
cout << "*        |   " << endl;
cout << "*        O   " << endl;
cout << "*       /|\\ " << endl;
cout << "*        A   " << endl;
cout << "*       / \\ " << endl;
cout << "*            " << endl;
cout << "     PERDISTE" << endl;
}

void jugar()
{
int aleatorio;
string a="OSO", b="PAYASO", c="CUADERNO";
  aleatorio=rand()%3+1;
switch(aleatorio){
case 1: rellenar(a); break;
case 2: rellenar(b); break;
case 3: rellenar(c); break;
}
}

void rellenar(string n)
{
int contador=0, aux=0, aux2, MAX=n.length();
char letra, contenedor[MAX];
for(int i=0;i<MAX;i++){
contenedor[i]='_';
}
inicio();
while(contador<5){
aux2=0;
for(int j=0;j<MAX;j++){
cout << contenedor[j] << " ";
}
gotoxy(0,8);
cout << endl;
cout << "Ingrese letra: ";
cin >> letra;
for(int k=0;k<MAX;k++){
if(letra==n[k] && contenedor[k]=='_'){
contenedor[k]=letra;
aux++;
break;
}
else{
aux2++;
}
}
if(aux==MAX){
cout << "GANASTE! La palabra oculta es: " << n << endl;
break;
}
if(aux2==MAX){
contador++;
intentos(contador);
}
}
}

void intentos(int intento)
{
switch(intento){
case 1: primer_error(); break;
case 2: segundo_error(); break;
case 3: tercer_error(); break;
case 4: cuarto_error(); break;
case 5: quinto_error(); break;
}
}
#6
Supongo que cambiando tu ip cada n cantidad de intentos (depende la cantidad de intentos que te de la pagina supongo) y la verdad no tengo idea si se puede cambiar tantas veces en poco tiempo para que sea util
#7
Hola la descubrí que en mi colegio las credenciales para ingresar a la pagina para ver las notas usa la fecha de nacimiento como contraseña y usuario y entonces hice un programa para hacer el diccionario en un txt dejare el codigo(es útil si solo sabes el ano de la otra persona como es mi caso)
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
using namespace std;
int dia = 0;
int mes = 1;
int ano = 1971; //EDITA ESTA VARIABLE SI ES NECESARIO
void file(){
ofstream dic;
string nombrearchivo;
cout<<"nombre del archivo + txt?"<<endl;
getline(cin,nombrearchivo);
dic.open(nombrearchivo.c_str(),ios::out);
if(dic.fail()){
cout<<"No se puedo abrir el archivo";
exit(1);
}
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
dic<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
dic<<dia<<mes<<ano<<endl;
}
}
}
void creacion(){
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
Sleep(20);
cout<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
Sleep(20);
cout<<dia<<mes<<ano<<endl;
}
}
}
int main(){
file();
creacion();
system ("pause");
return 0;
}


Bueno la cosa es que tengo el diccionario pero necesito hacer otro programa para utilizarlo osea que interactue con al pagina web. Si me pueden orientar un poco para poder hacerlo y no tener que poner todas las contraseñas yo mismo gracias de antemano
#8
Osea yo sabia que MSDOS era un sistema operativo y por algún lado leí que la consola de win usa los comandos de MSDOS por eso le dije de esa manera aunque no se si sea correcto. De todas formas gracias
#9
Hace unos meses publique como podia hacer un backdoor y me dijieron que tenia que aprender a programar en c++ y e leido unos cuantos libros visto videos etc... y vi un video de como ejecutar comandos de MSDOS pero no entendí mucho, quería saber si alguien me puede ayudar diciéndome alguna pagina, libro y/o video, me ayudaría bastante
#10
Ya me explicaron como hacer lo que decia y estoy leyendo un libro de programacion en c y ademas descarge otros mas de c++ y otros temas los cuales tengo que saber igual muchas gracias.