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ú

Temas - Fastolfe

#1
Buenas!! necesito algo de ayuda con una práctica de la universidad. Si alguien puede echarme un cable con las clases y la herencia se lo agradecería muchisimo.

No pido que nadie me haga la práctica ni implemente nada, solo orientación a la hora de definir las clases y las relaciones entre ellas.

Este es el enunciado de la práctica:
https://mega.co.nz/#!A5lFHCST!ozkpoVHSf8NRQSzzB5N0IgQ6h3_VVkqKWAv_SwteKO0

Casi no se ni por donde empezar, tan solo se me ha ocurrido definir una clase agencia y otra traductor de la que heredarían las clases empleado y servicio (y dudo mucho de mi propio enfoque). Además de que la clase servicio debería tener un array de empleados.

Sé que debería hacerlo yo porque si no no aprenderé a diseñar correctamente programas con herencia y polimorfismo, pero la práctica es para el domingo y empiezo a verme con el agua al cuello.

Muchas gracias de antemano!! ;)
#2
Bugs y Exploits / Programa anti overflows?
7 Marzo 2012, 00:23 AM
Buenas! hace poco me he bajado el DVL y me he hecho un par de exploimes, lo que me ha hecho pensar: ¿cómo puedo evitar los buffer overflows usando funciones de la libreria standard de C?

Y probando un poco he llegado a este programita:

#include <stdio.h>

char var[10];

void leer(){
int i = 0;
for (i = 0; i < 10; i++){
scanf("%c", &var[i]);
}
}

int clong(char a[]){
int i = 0;
while(a[i] != '\0'){
i++;
}
return i;
}

int compare(char a[], char b[]){
int i = 0;
int ret = 1;
int max;
if (clong(a) >= clong(b)){
max = clong(b);
}else{
max = clong(a);
}
for (i = 0; i < max; i++){
ret = ret&&(a[i] == b[i]);
}
return ret;
}

int main(){
printf("\n Introduce la clave y pulsa intro repetidas veces: ");
char a[10];
char cadena[] = "hola";
leer();
if (compare(var, cadena)){
printf("\n Enhorabuena!\n");
}else{
printf("\n Pringao\n");
return 0;
}
return 0;
}


He probado a meterle casi un millon de 'A's y no he conseguido nada, ni siquiera un segment fault ni el tipico mensaje de linux de "detected stack smash" (o algo parecido), alguien puede decirme como hacer un buffer overflow con este programa?

Muchas gracias!!
#3
Programación C/C++ / Filtro para mensajes?
11 Enero 2012, 13:46 PM
Buenas!! hace un par de semanas se me ocurrió hacer un programa para ver conversaciones de chat de tuenti que habia capturado con un mitm y un sniffer. Se me ocurrió "generalizarlo", y ahora lo que hace es copiar todo lo que se encuentre entre una "cadena de inicio" y una "cadena de fin". Hay que darle un archivo para leer y otro para guardar las conversaciones, o lo que queramos "filtrar".

Aquí teneis el código:

#include <stdio.h>

#define TMENSAJE 1000

// Funciones

int sizeoffile(char Narchivo[]); // DONE
int sizeofstring(char cadena[]); // DONE
void BInicio(char texto[], int size); // DONE
void Cmensaje(char cadenaF[], char texto[], int posicion, char AEscritura[], int sizeoffin); // DONE
int BFin(char texto[], char cadenaF[], int posicion, int sizeoffin); // DONE

int main(){

char ALectura[30];
printf("Archivo de lectura: ");
scanf("%s", &ALectura);

int sizeL = sizeoffile(ALectura);
char texto[sizeL];

FILE *archivo;

archivo = fopen(ALectura, "r");


int i = 0;
for (i = 0; i < sizeL; i++){
texto[i] = fgetc(archivo);
if (texto[i] == EOF){
break;
}
}

fclose(archivo);

BInicio(texto, sizeL);

return 0;
}

int sizeoffile(char Narchivo[]){
FILE *archivo;
archivo = fopen(Narchivo, "r");

int i = 0;

while (fgetc(archivo) != EOF){
i++;
}
fclose(archivo);
return i;
}

int sizeofstring(char cadena[]){

int i = 0;

while (cadena[i] != '\0'){
i++;
}

return i;
}

void BInicio(char texto[], int size){


char CInicio[50];
printf("Cadena de inicio: ");
scanf("%s", &CInicio);

char CFin[50];
printf("Cadena de fin: ");
scanf("%s", &CFin);

char AEscritura[30];
printf("Archivo de escritura: ");
scanf("%s", &AEscritura);

int sizeofinicio = sizeofstring(CInicio);
int sizeoffin = sizeofstring(CFin);

int i = 0;
int j = 0;
int cont = 0;

for (i = 0; i < size; i++){
for (j = 0; j < sizeofinicio; j++){
if (i-j >= 0){
if (texto[i+j] == CInicio[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeofinicio){
Cmensaje(CFin, texto, i+sizeofinicio, AEscritura, sizeoffin);
cont = 0;
}
}
}
}
}

void Cmensaje(char cadenaF[], char texto[], int posicion, char AEscritura[], int sizeoffin){

FILE *archivo;

archivo = fopen(AEscritura, "a");

char mensaje[TMENSAJE];

int i = 0;
int j = 0;
int k = 0;
int cont = 0;
for (i = posicion; i < (posicion+TMENSAJE); i++){
mensaje[k] = texto[i];
k++;
for (j = 0; j < sizeoffin; j++){
if (texto[i+j] == cadenaF[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeoffin){
i = (posicion+TMENSAJE);
mensaje[k-1] = 0;
}
}
}

fprintf(archivo, "\n %s", mensaje);

fclose(archivo);
}

int BFin(char texto[], char cadenaF[], int posicion, int sizeoffin){

int i = 0;
int j = 0;
int cont = 0;

for (i = 0; i < TMENSAJE; i++){
for (j = 0; j < sizeoffin; j++){
if (i-j >= 0){
if (texto[i+j] == cadenaF[j]){
cont++;
}else{
cont = 0;
}
if (cont == sizeoffin){
cont = 0;
return 1;
}
}
}
}

return 0;
}


Tengo también el primero que hice especifico para tuenti, que ademas te pone de quien es el mensaje y para quien (con direcciones de correo de tuenti). Si alguien lo quiere puedo postearlo.

También estoy abierto a sugerencias sobre mejoras en el programa.

Espero que le sirva a alguien!! ;)

PD: siento la falta de comentarios en el código, pero si alguien no lo entiende puedo explicarselo o editarlo con comentarios.

#4
Programación C/C++ / Problema con sockets
5 Enero 2012, 20:52 PM
Buenas!! acabo de empezar con los sockets y mi  programa solo envia y recibe una cadena (lo estoy probando con el netcat), lo que quiero es que sea una especie de "chat", aunque no sabiendo por que falla no sigo programando para no acumular errores.

El código es este:

#include <stdio.h>          
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define MAXR 100

int main(){

int fd, fd2;

struct sockaddr_in server;

struct sockaddr_in client;

int sin_size;

if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ) {  
printf("error en socket()\n");
exit(-1);
}

printf("Introduce el puerto en el que quieres escuchar: ");
int puerto = 0;
scanf("%d", &puerto);

char cadena[100];
char *pcadena = &cadena;
int tcadena = 0;

server.sin_family = AF_INET;
server.sin_port = htons(puerto);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
bzero(&(server.sin_zero),8);

bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr));
listen(fd,1);

char recibido[MAXR];
char *precibido = &recibido;
int i = 0;

while (1){
sin_size=sizeof(struct sockaddr_in);
fd2 = accept(fd, (struct sockaddr *)&client, &sin_size);

scanf("%s", &cadena);

tcadena = 0;

while (cadena[tcadena] != '\0' && tcadena < 100){
tcadena++;
}

send(fd2,pcadena,tcadena,0);

recv(fd2, precibido, MAXR, 0);

printf("\n %s", recibido);
}

return 0;

}


Muchas gracias de antemano!! :)

PD: programo en ubuntu 11.04
#5
Hacking / Hacking, the art of exploitation
5 Enero 2012, 00:05 AM
Buenas!! os traigo un libro bastante interesante que cogi hace unos meses de la biblioteca de la universidad, y aunque es demasiado para mi por el momento espero que le sea de ayuda a alguien.  ;D

http://www.mediafire.com/?o133boq5ct3b87g
#6
Hacking / Problema con filtro en ettercap
25 Diciembre 2011, 19:04 PM
Buenas, el filtro es el siguiente:

if (search(DATA.data,"tuenti")){
log(DATA.data, "/tmp/log.log");
}

Lo compilo con "etterfilter f2 -o filtro", se compila correctamente:

12 protocol tables loaded:
   DECODED DATA udp tcp gre icmp ip arp wifi fddi tr eth

11 constants loaded:
   VRRP OSPF GRE UDP TCP ICMP6 ICMP PPTP PPPoE IP ARP

Parsing source file 'f2'  done.

Unfolding the meta-tree  done.

Converting labels to real offsets  done.

Writing output to 'filtro'  done.

-> Script encoded into 4 instructions.

Pero al poner el ettercap (ettercap -t -f filtro -M arp:remote // -i wlan0) me sale:
TARGET (filtro) contains invalid chars !

Alguien sabe que falla?

Gracias de antemano!! =)
#7
Buenas!! Estoy con un libro bastante interesante llamado "Hacking, the art of exploitation" y tengo un problemita a la hora de seguir los ejemplos, el problema es que mientras que el libro usa la sintaxis de intel, mi ordenador no lo hace, y a parte de que parece mucho más sencilla que lo que me sale a mi en pantalla, me resulta un tanto dificil seguir los ejemplos.

Mi duda es la que sigue:

¿Cómo puedo hacer que el gdb use la sintaxis de intel? Según el libro lo puedo hacer así:
"set dissasembly intel" o "set dis intel", pero me salen los siguientes errores:
Con set dissasembly intel: No symbol table is loaded.  Use the "file" command
Y con set dis intel: Ambiguous set command "dis intel": disable-randomization, disassemble-next-line, disassembly-flavor, disconnected-tracing...

Gracias de antemano por la ayuda!!!
#8
Bugs y Exploits / Desensamblador para linux
22 Octubre 2011, 15:09 PM
Buenas! necesito un desensamblador para linux porque me han dicho que viene bien a la hora de ver bug en programas. Alguien sabe de alguno que funcione en ubuntu?
#9
Seguridad / Usar reglas propias con snort
4 Octubre 2011, 01:44 AM
Buenas! Estoy intentando usar reglas definidas por mi con el snort y me da el siguiente error:

ERROR: /etc/snort/rules/myownrules.rules(1) Missing argument to TRUSTED
Fatal Error, Quitting..

La regla que he definido es la siguiente:

var TRUSTED [192.168.1.1, 192.168.1.16]
alert tcp 192.168.1.13 any -> $TRUSTED any (msg:"Sample alert";sid:100000)

¿Alguien sabe qué es lo que falla?
#10
Buenas! Mi problema es bastante sencillo de exponer: al arrancar el ordenador, debian esta en modo consola y no tengo la menor idea (el help no me ayuda) de como ponerlo en modo gráfico.

Gracias de antemano por la ayuda!
#11
Buenas! Estoy haciendo un programita en C para gestionar una base de datos de libros y necesito saber de alguna función para borrar archivos, así como otra para que el programa haga un listado de todos los libros en la base de datos (cada uno tiene un archivo con su información).

¿Alguien sabe de funciones similares a las que necesito?

Gracias!
#12
Criptografía / Crackear RSA
12 Agosto 2011, 08:47 AM
Buenas!!!

Tengo una captura de mi propia contraseña hecha por el webmitm del dsniff. El cifrado es RSA:

-----BEGIN RSA PRIVATE KEY-----

¿Cómo puedo crackearla? ¿Vale el john the ripper?

Gracias!!!
#13
Scripting / Script de busqueda en bash
20 Julio 2011, 17:42 PM
Buenas!!!

Estoy tratando de hacer un pequeño script de busqueda en bash y practicamente lo he conseguido, pero tiene un pequeño fallo. Lo que quiero que haga es que habra la página web en una nueva pestaña, pero no lo logro, lo que hago es esto:

firefox -new-tab "http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=$palabra"

Gracias de antemano!
#14
Hacking / Descartar peticiones ICMP
14 Julio 2011, 01:26 AM
Buenas!!

Mis consultas son las que siguen:

¿Cómo puedo configurar mi ordenador (con ubuntu 11.04) para que descarte todas las peticiones ICMP que le lleguen/no responda a ninguna?

¿Es posible configurarlo también para que descarte los paquetes con el flag ACK que no tengan por puerto de destino uno con una conexión ya abierta?

Perdón si me he expresado mal y gracias de antemano! :)
#15
Hacking / Problema metasploit
8 Mayo 2011, 20:42 PM
Buenas!! Hace unos días formatee mi netbook y he vuelto a instalar el MSF, mi problema viene con el siguiente mensaje:

msf > db_driver
  •     Active Driver: postgresql
  •         Available: postgresql, mysql

    msf > db_connect base
    [-] Error while running command db_connect: Failed to connect to the database: FATAL:  Ident authentication failed for user "root"

    Call stack:
    /home/r4z0r/Desktop/metasploit/trunk/lib/msf/ui/console/command_dispatcher/db.rb:2028:in `db_connect_postgresql'
    /home/r4z0r/Desktop/metasploit/trunk/lib/msf/ui/console/command_dispatcher/db.rb:1731:in `send'
    /home/r4z0r/Desktop/metasploit/trunk/lib/msf/ui/console/command_dispatcher/db.rb:1731:in `cmd_db_connect'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/dispatcher_shell.rb:331:in `send'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/dispatcher_shell.rb:331:in `run_command'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/dispatcher_shell.rb:293:in `run_single'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/dispatcher_shell.rb:287:in `each'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/dispatcher_shell.rb:287:in `run_single'
    /home/r4z0r/Desktop/metasploit/trunk/lib/rex/ui/text/shell.rb:143:in `run'
    ./msfconsole:130

    Gracias de antemano!!!
#16
Scripting / Ayuda con script en bash
5 Mayo 2011, 16:21 PM
Buenas!!

Hace algún tiempo me hice un pequeño script para hacer diversos tipos de escaneos de forma automática, funcionaba perfectamente. Pero hoy me he propuesto mejorarlo ligeramente. Lo que hacía el primer script es lo siguiente:

Pedia un nombre de archivo, una IP y hacía varios escaneos sobre la ip. Usando la opción -o del nmap guardaba los resultados de los escaneos con el nombre de archivo que se le daba. Eso funcionaba bien.
Ahora lo que intento es que después de efectuar los escaneos te de la opción de verlos directamente, sin tener que abrir la carpeta en la que se guardan ni nada. Lo que he hecho ha sido añadir esto:

Código (bash) [Seleccionar]

read hal

if ["$hal" = "y"]; then
gedit "$name-sT"
fi



Como no tengo mucha idea de bash he copiado el if de un tutorial y he cambiado la expresión a evaluar. Alguien me puede decir donde está el error??

Muchas gracias de antemano!!
#17
GNU/Linux / Barra Ubuntu 11.04
1 Mayo 2011, 13:18 PM
Buenas!! Acabo de actualizar a ubuntu 11.04 y la barrita horizontal me está molestando bastante, alguien puede decirme como quitarla???

Gracias!
#18
Wireless en Linux / Instalando wifiway
28 Abril 2011, 16:24 PM
Buenas!!

Me he decidido a instalar wifiway 2.0.2 en mi netbook y mi unica duda es:

Cuanto espacio necesita la particion en la que lo voy a instalar?
Porque en la pagina de wifiway hay info de la instalacion, pero no de la version 2.0.2...
Sera suficiente con 3 o 4 Gb? hago una particion ext3 o ext4?

Gracias!
#19
Buenas!!!

Utilizo el wifiway y el airoscript para hackear redes con wifi y me he preguntado cuál es el significado (por decirlo de alguna forma) de las siguientes columnas: beacons y #/s, así como la razón por la que unos pocos ARPs hacen que "data" aumente mucho más rápido.

He mirado la traducción de beacons y la verdad es que no me ayuda demasiado...

Gracias!
#20
Hacking / Problema instalando metasploit
13 Abril 2011, 21:26 PM
Buenas!! El mensaje de error que me aparece es este:

There has been an error.
sh: /home/r4z0r/h4ck/framework-3.6.0/postgresql/bin/initdb: Permission denied
The application will exit now.

Uso ubuntu 10.10 y lo estoy instalando con una consola con privilegios...

Gracias de antemano! :D
#21
Hacking / Sesiones metasploit
5 Abril 2011, 16:55 PM
Buenas! en primer lugar no estoy muy seguro de si este es el sitio adecuado para este post, perdón si este no es su lugar!

Estoy montandome una pequeña red en casa para ver si puedo hackear mis propios ordenadores con el objetivo de poner en práctica lo poco que se.

Mi duda es la siguiente:

Tengo un ordenador con windows XP SP3 con un servidor ftp (el filezilla) y recursos compartidos y otros dos con ubuntu 10.10. Me he bajado el metasploit y después de ver los puertos abiertos del ordenador con XP he usado el siguiente comando del metasploit "db_autopwn -t -x -p -r" con los siguientes resultados:

1   meterpreter x86/win32  NT AUTHORITY\SYSTEM @ NOMBREDELORDENADOR  192.168.1.120:12001 -> 192.168.1.145:1077  exploit/windows/smb/ms08_067_netapi
2   meterpreter x86/win32  NT AUTHORITY\SYSTEM @ NOMBREDELORDENADOR  192.168.1.120:10854 -> 192.168.1.145:1080  exploit/windows/smb/ms08_067_netapi

Algo más arriba me aparece este mensaje:

The autopwn command has completed with 2 sessions
  • Enter sessions -i [ID] to interact with a given session ID

    ¿Cómo uso las sesiones obtenidas? Tan solo se me ha ocurrido escribir "-i 1", pero da este error:
    [-] Unknown command: -i.

    Gracias de antemano!
#22
Buenas!! Se me ha ocurrido hacer un programilla de cifrado de texto. El algoritmo no podría ser más simple, pero lo que es la cifrado funciona. Mi problema viene al descifrar, que aparentemente se hace bien, incluso puedo ver el texto original en la carpeta, pero al abrir el archivo me sale el siguiente error:

Gedit has not been able to detect the character encoding.
Please check that you are not trying to open a binary file.
Select a character encoding from the menu and try again.

Este es el código:


#include <stdio.h>

#define MAXT 1000
#define MAXP 20

FILE *crypt;

char texto[MAXT];
char pass[MAXP];
int pass2;

int makepass();

void clear(){
int i = 0;
for (i = 0; i < 100; i++){
printf("\n");
}
}

int main(){

clear();
printf("Pass: ");
fflush(stdin);
gets(pass);

makepass();
int i = 0;

crypt = fopen("Encripted.txt", "r");

for (i = 0; i < MAXT; i++){
texto[i] = fgetc(crypt);
}

fclose(crypt);
crypt = fopen("No-encripted.sh", "w+");

for (i = 0; i < MAXT; i++){
texto[i] = texto[i] - pass2;
}

for (i = 0; i < MAXT; i++){
fprintf(crypt, "%c", texto[i]);
}
fclose(crypt);
return 0;
}

int makepass(){
int i = 0;
for (i = 0; i < MAXP; i++){
pass2 = pass2 + i - pass[i];
}
return 0;
}
#23
Java / Problema programando una agenda
15 Marzo 2011, 21:35 PM
Buenas!
Estoy intentado hacer una agenda no muy complicada, pero en el primer método que he hecho me aparece el siguiente error en el primer FileWriter:

- FileWriter cannot be resolved to a type

Código (java
) [Seleccionar]
import java.io.BufferedWriter;

public class Contactos {
private String nombre;
private String apellidos;
private int telefono;
private String email;

public void agregar(String nombre, String apellidos, int email, int telefono){
FileWriter f = new FileWriter("Agenda.txt");
BufferedWriter files = new BufferedWriter(f);
files.write(nombre + "," + apellidos + "," + telefono + "," + email);
files.close();
}
}


No se cual puede ser la causa del error...
#24
Java / Compilar java
14 Marzo 2011, 16:18 PM
Buenas!! tengo una pequeña duda respecto a la compilación en java:
¿Dónde tiene que estar un fichero .class para que pueda ser usado por un .java?
Porque estando en el mismo directorio no me lo compila. Uso ubuntu 10.10 y el geany.

Este es el mensaje:
Please remove or make sure it appears in the correct subdirectory of the classpath.

Gracias de antemano!
#25
Buenas!! después buscar un largo rato no he encontrado ningún post sobre esto:

Quiero montar un servidor en casa para colgar pags web y compartir archivos. Mi duda es la siguiente:
es posible acceder desde ubuntu a los archivos compartidos de windows server 2003??

Intente instalar apache pero lo vi bastante complicado y probé con windows server, con las paginas no tengo problema alguno, pero no consigo indexar, descargar ni subir archivos desde ubuntu.
#26
Programación C/C++ / Base de datos en C++
19 Enero 2011, 16:59 PM
Buenas!! He empezado con el C++ hace poco y como me aburría me he puesto a hacer una base de datos  :P

Me gustaría que le echaseis un vistazo a ver que os parece.

(Se que lo suyo sería que guardase los datos en algún archivo y permitiese hacer busquedas, pero creo que no llego a tanto por el momento)

Pido perdón por lo lioso que pueda ser el código, creo que debería haber puesto más comentarios, pero creo que en esencia se entiende lo que hace cada cosa.

Este es el código:


/* Base de datos de alumnos V.1 */
/* By F45T0LF3 */

#include <iostream>

using namespace std;

#define N_CLASES 5
#define MAX_AL 20

int last_al = 1;

// Definición del nuevo tipo de variable alumno, que es una estructura
// y contiene diversas variables con los datos de éste

struct{
string nombre;
int curso;
int notas [N_CLASES];
double media;
}alumnos [MAX_AL];
// Definición del subprograma menú

void menu();

// Definición del subprograma de elección de opciones

int opciones();

// Subprograma para añadir alumnos

void add();

// Subprograma para modificar los datos de los alumnos

void mod();

// Subprograma para eliminar alumnos

void del();

// Subprograma para ver los datos existentes

void show();

// Subprograma para elegir el número del alumno

int elegir_al();

// Limpiar pantalla

void clear(){
int i;
for (i = 0; i < 22; i++){
cout << "\n";
}
}

// Programa principal

int main(){

int choice;

while (choice != 0){
cout << "\n\n\n";
menu();
choice = opciones();
}

return 0;
}


void menu(){
clear();
cout << "1. Añadir alumno \n" << "2. Modificar datos de un alumno \n";
cout << "3. Borrar los datos de un alumno \n" << "4. Mostrar datos";
cout << "\n\n Para salir escriba 0 \n\n";
}

int opciones(){
int opcion;
cin >> opcion;

switch (opcion){
case 1:
add();
break;
case 2:
mod();
break;
case 3:
del();
break;
case 4:
show();
break;
}
if (opcion == 0){
return opcion;
}
}

int elegir_al(){
clear();
int n_al;
cout << "\n Elija el número del alumno" << endl;
cin >> n_al;

return n_al;
}

void add(){
clear();
cout << "Nombre:";
cin >> alumnos[last_al].nombre;
cout << "Curso:";
cin >> alumnos[last_al].curso;
cout << "Nota 1:";
cin >> alumnos[last_al].notas[0];
cout << "Nota 2:";
cin >> alumnos[last_al].notas[1];
cout << "Nota 3:";
cin >> alumnos[last_al].notas[2];
cout << "Nota 4:";
cin >> alumnos[last_al].notas[3];
cout << "Nota 5:";
cin >> alumnos[last_al].notas[4];
last_al++;
}

void mod(){
clear();
int elec_al = elegir_al();

cout << "Nombre:";
cin >> alumnos[elec_al].nombre;
cout << "Curso:";
cin >> alumnos[elec_al].curso;
cout << "Nota 1:";
cin >> alumnos[elec_al].notas[0];
cout << "Nota 2:";
cin >> alumnos[elec_al].notas[1];
cout << "Nota 3:";
cin >> alumnos[elec_al].notas[2];
cout << "Nota 4:";
cin >> alumnos[elec_al].notas[3];
cout << "Nota 5:";
cin >> alumnos[elec_al].notas[4];

}

void del(){
clear();
int elec_al = elegir_al();
alumnos[elec_al].nombre = '\0';
alumnos[elec_al].curso = 0;
alumnos[elec_al].notas[0] = 0;
alumnos[elec_al].notas[1] = 0;
alumnos[elec_al].notas[2] = 0;
alumnos[elec_al].notas[3] = 0;
alumnos[elec_al].notas[4] = 0;
}

void show(){
clear();
int elec_al = elegir_al();
clear();
cout << "Nombre: " << alumnos[elec_al].nombre << endl;
cout << "Curso: " << alumnos[elec_al].curso << endl;
cout << "Nota 1: " << alumnos[elec_al].notas[0] << endl;
cout << "Nota 2: " << alumnos[elec_al].notas[1] << endl;
cout << "Nota 3: " << alumnos[elec_al].notas[2] << endl;
cout << "Nota 4: " << alumnos[elec_al].notas[3] << endl;
cout << "Nota 5: " << alumnos[elec_al].notas[4] << endl;
int esperar;
cout << "\n\n Pulse cualquier número para continuar: ";
cin >> esperar;
}



Gracias por gastar vuestro tiempo en mis chapuzas!!