elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1] 2 3
1  Foros Generales / Dudas Generales / Dudas sobre certificaciones de Seguridad (CEH, etc.) en: 2 Septiembre 2015, 12:59 pm
Buenas,

actualmente estoy en mi último año de Ingeniería Informática, y tengo varias cosas en mente para el futuro inmediato, que serían varios másters (no necesariamente de seguridad); y certificaciones, estas sí de Seguridad, puesto que he leído que es lo que más se valora.

He visto esta, la de Certified Ethical Hacker (CEH) y me ha interesado, pero por lo que he leído, la certificación expira a los 3 años de conseguirla... Mi idea no es, necesariamente, sacarme la certificación y ya meterme en el mundo laboral en ese ámbito; contemplo muchas ramas. Así que eso de que expire "tan" pronto me echa para atrás.

¿Podríais recomendar certificaciones? Agradecería si además tenéis en cuenta lo dicho arriba sobre que expiren.

Muchas gracias y saludos.
2  Seguridad Informática / Seguridad / Libro sobre XSS en: 24 Julio 2015, 21:15 pm
Buenas,

estoy buscando un libro sobre XSS, y el único que he encontrado es este: Xss Attacks: Cross Site Scripting Exploits and Defense, que parece estar bien, pero es de 2007 (8 años ya...), y no sé si iba a estar desactualizado y obsoleto. Y el libro tiene un precio que tampoco es para comprarlo a la ligera.

¿Os merece alguna opinión? ¿Creéis que merece la pena?

Gracias y saludos
3  Programación / Java / ¿Está mal este programa? Concurrencia y semáforos en: 26 Septiembre 2014, 19:40 pm
Buenas,

estoy con programación concurrente, y la verdad es que me cuesta bastante. En este caso, el ejercicio propuesto es un programa cuya salida sea:
A
BB
CCC
A
BB
CCC
etc.

Donde cada hilo imprime su letra. Esto es lo que he hecho, cuya salida es correcta:

Código
  1. public class HiloLetra implements Runnable{
  2.  
  3. char letra;
  4. int numVeces;
  5. Buffer buffer; //Recurso compartido
  6. static int turno;
  7.  
  8.  
  9. public HiloLetra(char letra, int numVeces, Buffer buffer) {
  10. this.letra = letra;
  11. this.numVeces = numVeces;
  12. this.buffer = buffer;
  13. }
  14.  
  15.  
  16. @Override
  17. public void run() {
  18. while(true) {
  19. try {
  20. buffer.imprimirLetra(letra, numVeces);
  21. } catch (InterruptedException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. }
  26. }
  27.  

Código
  1. import java.util.concurrent.Semaphore;
  2.  
  3.  
  4. public class Buffer {
  5.  
  6. int numeroLetras;
  7. Semaphore arrayCandados[];
  8. int posicionArray;
  9.  
  10.  
  11. public Buffer(int numeroLetras) {
  12. this.numeroLetras = numeroLetras;
  13. arrayCandados = new Semaphore[this.numeroLetras];
  14. posicionArray = 0;
  15. crearCandados();
  16. }
  17.  
  18. private void crearCandados() {
  19. arrayCandados[0] = new Semaphore(1);
  20. for(int i = 1; i < numeroLetras; i++) {
  21. arrayCandados[i] = new Semaphore(0);
  22. }
  23. }
  24.  
  25. public void imprimirLetra(char letra, int numeroLetra) throws InterruptedException {
  26.  
  27. while(numeroLetra-1 == posicionArray) {
  28. arrayCandados[posicionArray].acquire(numeroLetra);
  29.  
  30. for(int i = 0; i < numeroLetra; i++) {
  31. System.out.print(letra/*+", posicion array: "+posicionArray*/);
  32. }
  33. System.out.println();
  34.  
  35. posicionArray++;
  36. if(posicionArray == numeroLetras) {
  37. posicionArray = 0;
  38. }
  39.  
  40. arrayCandados[posicionArray].release(posicionArray+1);
  41. }
  42. }
  43. }
  44.  

Código
  1. public class Principal {
  2.  
  3. final int NUMERO_LETRAS = 3;
  4.  
  5.  
  6. HiloLetra runnables[];
  7. Thread hilosLetras[];
  8. Buffer buffer;
  9.  
  10.  
  11. public Principal() {
  12. runnables = new HiloLetra[NUMERO_LETRAS];
  13. hilosLetras = new Thread[NUMERO_LETRAS];
  14. buffer = new Buffer(NUMERO_LETRAS);
  15. crearHilos();
  16. }
  17.  
  18. private void crearHilos() {
  19. for(int i = 0; i < NUMERO_LETRAS; i++) {
  20. runnables[i] = new HiloLetra((char)(i+'A'), i+1, buffer);
  21. //System.out.println("creado hilo "+(char)(i+'A')+", num veces: "+(i+1));
  22. hilosLetras[i] = new Thread(runnables[i]);
  23. }
  24. }
  25.  
  26. private void iniciarHilos() {
  27. for(int i = 0; i < NUMERO_LETRAS; i++) {
  28. hilosLetras[i].start();
  29. }
  30. }
  31.  
  32.  
  33. public static void main(String[] args) {
  34. Principal principal = new Principal();
  35. principal.iniciarHilos();
  36. }
  37.  
  38.  
  39.  
  40. }

Buffer es la clase donde se guarda el array de semáforos, y cuya instancia es un recurso compartido por todos los hilos.

Como he dicho, la salida del programa es correcta. Pero mi duda radica en si la concurrencia de veras está bien gestionada. Porque, mientras se ejecuta el programa, el administrador de tareas indica que la CPU está al 100%, lo cual me hace pensar que no se estén gestionando bien los hilos.

Gracias de antemano y saludos.
4  Programación / Desarrollo Web / ¿Cómo alinear elementos de formulario por bloques como en la imagen? HTML/CSS en: 22 Septiembre 2014, 20:52 pm
Buenas, llevo bastante tiempo dándole vueltas a cómo hacer lo de la siguiente imagen, y la verdad es que no tengo ni idea.



No pongo el código porque básicamente es inútil, mi problema es el concepto.

Estaría muy agradecido si me ayudarais aunque fuera a plantearlo.
5  Programación / Java / No se reproduce archivo .wav: javax.sound.sampled.UnsupportedAudioFileException en: 23 Noviembre 2013, 17:03 pm
Buenas, estoy tratando de reproducir un archivo de audio (.wav en este caso, que por lo que he visto es el más extendido en estos casos) para luego implementarlo en otro programa.

Antes de ponerme a ello, he usado AudioSystem.getAudioFileTypes() para ver qué audios están soportados. La salida es la siguiente:
Código:
wav
au
aif

Pues bien, al intentar reproducir un .wav, me salta la excepción que he puesto en el título:

Código
  1. javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file

He probado cambiando el nombre del archivo por uno inexistente por si el problema era que no encontraba el archivo, pero no es así; sí lo encuentra, pero no es capaz de reproducirlo.

Os dejo el código fuente:

Código
  1. import java.io.File;
  2.  
  3. import javax.sound.sampled.AudioSystem;
  4. import javax.sound.sampled.Clip;
  5.  
  6. public class Reproductor {
  7.  
  8. public static void main(String[] args) {
  9. try {
  10.  
  11. Clip sonido = AudioSystem.getClip();
  12.  
  13. sonido.open(AudioSystem.getAudioInputStream(new File("another.wav")));
  14.  
  15. sonido.start();
  16.  
  17. while (sonido.isRunning())
  18. Thread.sleep(1000);
  19.  
  20. sonido.close();
  21.  
  22. } catch (Exception e) {
  23. System.out.println(e.getMessage());
  24. }
  25. }
  26.  
  27. }

Gracias de antemano y un saludo.
6  Programación / Java / Aplicación con sockets no funciona en LAN (sólo con localhost) en: 18 Noviembre 2013, 10:26 am
Estoy creando una aplicación cliente-servidor lo más sencilla posible (para luego implementar más cosas), pero estoy teniendo problemas para ejecutarlo en la LAN de mi casa (ya entonces de WAN ni de hablamos, el cual es mi propósito...). Sólo funciona cuando tanto el servidor como el cliente son el mismo localhost, si no, me salta la siguiente excepción:
Código:
java.net.ConnectException: Connection refused: connect

Os dejo los fuentes. Cliente:
Código
  1. import java.io.DataInputStream;
  2. import java.io.InputStream;
  3. import java.net.InetAddress;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6.  
  7.  
  8. public class Cliente {
  9. //Constantes
  10. final int PUERTO = 7000;
  11. //final String HOST = "192.168.1.36";
  12.  
  13. /************/
  14.  
  15. //Métodos - constructor
  16. public Cliente(){
  17.  
  18. try{
  19. InetAddress address = InetAddress.getLocalHost();
  20. Socket skCliente;
  21.  
  22. skCliente = new Socket(address, PUERTO);
  23. InputStream aux = skCliente.getInputStream();
  24. DataInputStream flujo = new DataInputStream(aux);
  25. System.out.println(flujo.readUTF());
  26. skCliente.close();
  27.  
  28. System.out.println( e );
  29.    System.out.println("Error en la conexión." );
  30.  
  31. } catch (Exception e) {
  32. System.out.println(e);
  33.  
  34. }
  35. }
  36.  
  37. //Cuerpo del programa
  38. public static void main(String[] args){
  39. new Cliente();
  40.  
  41.  
  42. }
  43.  
  44. }
  45.  

Servidor:
Código
  1. import java.io.DataOutputStream;
  2. import java.io.OutputStream;
  3. import java.net.ServerSocket;
  4. import java.net.Socket;
  5. import java.net.UnknownHostException;
  6.  
  7.  
  8. public class Servidor {
  9. //Constantes
  10. final int MAX_CLIENTES = 5;
  11. final int PUERTO = 7000;
  12. /************/
  13.  
  14. //Métodos - constructor
  15. public Servidor(){
  16. ServerSocket skServidor;
  17. try {
  18. skServidor = new ServerSocket(PUERTO);
  19. System.out.println("Escucho el puerto: "+PUERTO);
  20. for(int numCli = 0; numCli < MAX_CLIENTES; numCli++){
  21. Socket skCliente = skServidor.accept();
  22. System.out.println("\tSirvo al cliente: "+skCliente.getRemoteSocketAddress());
  23. OutputStream aux = skCliente.getOutputStream();
  24. flujo.writeUTF("\nHola cliente "+ skCliente.getRemoteSocketAddress());
  25. skCliente.close();
  26. }
  27.  
  28. System.out.println( e );
  29.    System.out.println("Error en la conexión." );
  30.  
  31. }
  32.    catch (Exception e) {
  33. // TODO Auto-generated catch block
  34. System.out.println(e);
  35. }
  36. }
  37.  
  38. public static void main(String[] args){
  39. new Servidor();
  40. }
  41. }
  42.  

Gracias de antemano y saludos.
7  Programación / Java / Dibujar con Graphics encima de un panel con una imagen de fondo en: 12 Noviembre 2013, 19:57 pm
Buenas, estoy con algo que me lleva trayendo de cabeza desde hace bastante. Mi pregunta es ésa, ¿cómo puedo poner una imagen de fondo, y luego superponer figuras con Graphics? Lo he intentado de mil maneras, a veces no me hace caso, y otras da error en tiempo de ejecución, y no sabría ni qué código poner aquí. He conseguido poner otros componentes como JLabels o JButtons, pero con Graphics no puedo.

Gracias de antemano y saludos.
8  Programación / Java / [Duda]Conectarse a "base de datos" en ordenador remoto en: 9 Noviembre 2013, 23:45 pm
Hola buenas, os expongo mi problema.

Estoy haciendo un clon del Arkanoid y me gustaría añadirle un sistema de puntuaciones, para hacerlo más atractivo y rejugable. Mi idea es la siguiente: cada partida tendrá asociada un nombre (el que usuario escoja), y éste se guardará, junto con los puntos conseguidos, en un fichero que se guardará en un "servidor". Cuando en el menú del juego se seleccionara la opción de mostrar las puntuaciones, pues se mostraría la información almacenada en el fichero.

Y claro, se supone cualquier ordenador desde el cual se estuviera ejecutando el juego puede ver las puntuaciones del fichero. Antes que nada aclarar que mis conocimientos sobre sockets (en cualquier lenguaje de programación) son nulos. Dicho ésto, mi pregunta es, ¿puede ser viable? No os estoy pidiendo cuál sería el código ni nada por el estilo, evidentemente, sino cuáles serían las directrices a seguir para mi propósito.

Creo que no me dejo nada en el tintero. Muchas gracias de antemano (sobretodo por vuestra paciencia).
9  Programación / Programación C/C++ / Problema con matriz dinámica en: 22 Mayo 2013, 18:09 pm
Buenas, resulta que tengo que coger la información de un fichero .dat con la información de una matriz dinámica. Se supone que la estructura empleada es la siguiente:

Código
  1. typedef struct Matriz{
  2. int f;
  3. int c;
  4. double **m;
  5. }tMatriz;

He probado mil formas, pero no consigo coger correctamente la información del fichero. Ésta es la última forma que he probado:

Código
  1. int main()
  2. {      
  3. //Variables
  4. FILE *fichero;
  5. tMatriz *matriz;
  6. char nombre[15];
  7. int cantidad;
  8. int i;
  9. /****************************/
  10.  
  11. printf("Nombre del fichero: ");
  12. gets(nombre);
  13.  
  14. if( (fichero= fopen(nombre, "rb") ) == NULL )
  15. {
  16. printf("\nEl fichero no existe. El programa se cerrará...");
  17. Sleep(2500);
  18. exit(1);
  19. }
  20.  
  21. matriz = (tMatriz*) malloc( 20 * sizeof(tMatriz) );
  22.  
  23. matriz->m = (double**) malloc( 20* sizeof(double*) );
  24.  
  25. for(i=0; i < 20; i++)
  26. matriz->m[i] = (double*) malloc( 20* sizeof(double) );
  27.  
  28.  
  29. cantidad= fread(matriz, sizeof(tMatriz), 20, fichero);
  30. printf("%d\n", cantidad);    //9
  31. printf("%d\t%d", matriz->c, matriz->f);   //Basura
  32.  
  33. fflush(stdin);
  34.  
  35. return 0;
  36. }

El valor de 20 para las filas y columnas es uno elegido al azar.

Cuando imprimo los valores de 'c' y 'f', salen números que no tienen nada que ver con lo que corresponde. Y cuando intento imprimir los valores de la matriz, el programa peta y se cierra.

A ver si me podéis ayudar. Saludos.
10  Programación / Programación C/C++ / Insertar un elemento ordenadamente en una lista enlazada simple en: 26 Abril 2013, 17:11 pm
Hola, tengo que hacer una lista enlazada simple en la que los elementos que se insertan, sea de una forma ordenada (de menor a mayor). He hecho la función y no consigo que funcione como debe, no sé cuál es el fallo y cómo debo corregirlo...

Os dejo la función (creo que no hace falta poner todo el programa, pero si así fuera decídmelo y lo pongo (igual me he líado con el nombre de alguna variable en la traducción jeje):

Código
  1. LISTA *meterElementoOrdenado(int num, LISTA *lista)
  2. {
  3. LISTA *nodo_aux, *inicio;
  4. int cont = 1;
  5.  
  6. inicio = lista;
  7. nodo_aux = (LISTA*) malloc( sizeof(LISTA) );
  8.  
  9. if(nodo_aux == NULL)
  10. printf("\nNo hay sitio para mas elementos...\n");
  11.  
  12. if(lista == NULL)
  13. {
  14. nodo_aux->numero = num;
  15. nodo_aux->siguiente = NULL;
  16. return nodo_aux;
  17. }
  18.  
  19. else
  20. {
  21. do
  22. {
  23.          if(num < lista->numero)
  24.          {
  25.                                   nodo_aux->numero = num;
  26.                                   nodo_aux->siguiente = lista->siguiente;
  27.                                  lista->siguiente = nodo_aux;
  28.                                  cont = 0;
  29.           }
  30.           lista = lista->siguiente;
  31.  
  32. }while( (lista != NULL) && (cont != 0) );
  33.  
  34. nodo_aux = inicio;
  35. return nodo_aux;
  36. }
  37.  
  38. }

Gracias de antemano y saludos.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines