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 - /d3v/nu11

#1


La verdad es que hasta hace poco andaba algo perdido en cuanto a distribuciones de linux, he probado debian, fedora, ubuntu, lubuntu, kubuntu, linux mint, etc. Pero ninguna me convencía completamente, hasta que probé elementary OS y me encantó al tener ésta una interfaz muy amigable y estar basada en ubuntu. Para el tema wireless suelo usar Wifislax, y para Pentesting y demás Bugtraq2.

Se que mucha gente verá una tontería usar tres distros distintas en vez de tener todas las herramientas en una pero a mi me gusta así, lo veo todo como más ordenado jejeje.
#2
Java / [Java] Maquina Tragaperras
Abril 08, 2015, 08:39:12 PM
Ejercicio de Maquina tragaperras que he hecho para la universidad.

1. Main
Código: java

import java.util.Scanner;
import java.util.Arrays;

public class Programa {
public static void main(String[] args) {

// 1. Declara dos variables locales de tipo Premio
Fruta[] combinacion1 = {Fruta.FRESA, Fruta.FRESA, Fruta.FRESA};
Premio premio1 = new Premio(combinacion1, 20);
Fruta[] combinacion2 = {Fruta.SANDIA, Fruta.FRESA,Fruta.SANDIA};
Premio premio2 = new Premio(combinacion2, 10);

/* 2. Crea una máquina con un tamaño de combinación de 3 frutas,
* un precio por partida de 0,5 euros
* y los dos premios declarados previamente
*/
Maquina maquina = new Maquina(3, 0.5, premio1, premio2);

/* 3. Solicita al usuario que introduzca por teclado la cantidad
* de crédito para jugar.
*/
System.out.println("Introduzca el crédito: ");
Scanner teclado = new Scanner(System.in);
double credito = teclado.nextDouble();
teclado.nextLine();
maquina.incrementarCredito(credito);
System.out.println(credito);


// 4. Jugamos mientras haya crédito disponible
Fruta[] combinacion;
maquina.setCredDisp(credito);
while (maquina.getCredito() > 0){

//4.1 Realiza la jugada
combinacion = maquina.jugar();

//4.2 Muestra la combinación obtenida y el crédito
System.out.println(Arrays.toString(combinacion)+" --- "+maquina.getCredito());

//4.3 Pide al usuario que pulse intro para continuar
System.out.println("Pulse intro para volver a jugar");
teclado.nextLine();
}
System.out.println("Fin del juego: no dispone de credito suficiente");
}
}


2. Maquina
Código: java

import java.util.Random;
import java.util.Arrays;

public class Maquina {
private int casillas;
private double precJug;
private double credDisp;
private Premio[] coleccion;

public Maquina(int nCasillas, double precio, Premio... premio) {
precJug=precio;
casillas=nCasillas;
coleccion=premio;
}

public double getPrecJug() {
return precJug;
}
public void setPrecJug(double precio) {
precJug = precio;
}
public double getCredito() {
return credDisp;
}
public void setCredDisp(double credito) {
credDisp = credito;
}
public int getnCasillas() {
return casillas;
}
public Premio[] getColeccion() {
return coleccion;
}

public double incrementarCredito(double incremento) {
return credDisp + incremento;
}

public double cobrar() {
System.out.println("Retirando "+credDisp+" euros de la maquina");
credDisp = 0;
return credDisp;
}

public Fruta[] jugar() {
setPrecJug(precJug);
if (getCredito() >= precJug) {
credDisp = credDisp - precJug;

Random generador = new Random();
Fruta[] frutas;
frutas = new Fruta[casillas];
Fruta[] frutas_aleatorias=Fruta.values();

for (int i = 0;i<casillas; i++){
int index = generador.nextInt(5);
frutas[i]=frutas_aleatorias[index];
}

int n = 1; // n = numero de premios
for (int i = 0; i <= n; i++) {
//comprueba si combinación esta en premios registrados
if (Arrays.equals(frutas, coleccion[i].getCombGanad()) == true){
credDisp = credDisp + coleccion[i].getPremio();
}
}
return frutas;
}
return null;
}
}


3.Premio
Código: java

public class Premio {
private Fruta[] CombGanad;
private int premio;

public Fruta[] getCombGanad() {
return CombGanad;
}

public int getPremio() {
return premio;
}

// CONSTRUCTORES
public Premio(Fruta[] combinacion, int p) {
CombGanad=combinacion;
premio=p;
}
}


4.Frutas
Código: java

public enum Fruta {
FRESA, SANDIA, PLATANO, MELOCOTON, PERA
}
#3
Java / [Java] Uso de la clase Regex
Abril 08, 2015, 08:23:38 PM
Les dejo este programa que hice para la uni. Lo que hace es comprobar mediante expresiones regulares si los datos introducidos son válidos, en caso de ser todos los campos válidos los añade a un fichero .csv y pregunta si sigue añadiendo o termina.

Código: java

import java.io.IOException;
import java.util.Scanner;
import java.util.regex.*;

public class ValidacionBOE {

static Scanner leer = new Scanner(System.in);
static Matcher validador;
static Pattern patron;
static boolean ok;

static String pedirNombre(){
boolean terminado = false;
String nombrepaciente = null;
while (terminado == false){
System.out.print("Nombre completo del paciente: ");
nombrepaciente = leer.nextLine();

// Validación de la expresión regular
// Nombre Apellido1 Apellido2(opcional)
patron = Pattern.compile("(\\p{Lu}\\p{Ll}+) +(\\p{Lu}\\p{Ll}+)( +\\p{Lu}\\p{Ll}+)?");
validador = patron.matcher(nombrepaciente);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return nombrepaciente;
}

static String pedirDNI(){
boolean terminado = false;
String DNI = null;
while (terminado == false){
System.out.print("DNI/NIE: ");
DNI = leer.nextLine();

// Validación de la expresión regular
// 8 numeros 1 letraMayus
// 1 letraMayus 7 numeros 1 letraMayus
patron = Pattern.compile("\\d{8}\\p{Lu}|\\p{Lu}\\d{7}\\p{Lu}");
validador.usePattern(patron);
validador.reset(DNI);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return DNI;
}

static String pedirSS(){
boolean terminado = false;
String SS = null;
while (terminado == false){
System.out.print("Número de la seguridad social: ");
SS = leer.nextLine();

// Validación de la expresión regular
// Diferentes posibles números de seguridad social
patron = Pattern.compile("(66|53|50|[0-4][0-9])-?\\d{8}-?\\d{2}");
validador.usePattern(patron);
validador.reset(SS);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return SS;
}

static String pedirFechaCaducidadTS(){
boolean terminado = false;
String fecha = null;
while (terminado == false){
System.out.print("Fecha de caducidad de la tarjeta sanitaria individual: ");
fecha = leer.nextLine();

// Validación de la expresión regular
// mes/año
patron = Pattern.compile("((0?[0-9])|([01][012]))/\\d\\d");
validador.usePattern(patron);
validador.reset(fecha);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return fecha;
}

static String pedirTLF(){
boolean terminado = false;
String TLF = null;
while (terminado == false){
System.out.print("Número de teléfono: ");
TLF = leer.nextLine();

// Validación de la expresión regular
// 695 934 429
// 654 23 24 24
// +34 654234525
patron = Pattern.compile("(\\(\\+\\d{1,3}\\)|(\\+\\d{1,3} ))?((\\d{3} \\d{3} \\d{3})|(\\d{9})|(\\d{3} \\d{2} \\d{2} \\d{2}))");
validador.usePattern(patron);
validador.reset(TLF);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return TLF;
}

static String pedirCIPSNS(){
boolean terminado = false;
String CIPSNS = null;
while (terminado == false){
System.out.print("Código CIPSNS: ");
CIPSNS = leer.nextLine();

// Validación de la expresión regular
//1110123456789111
patron = Pattern.compile("(\\d{3})\\d{10}\\1");
validador.usePattern(patron);
validador.reset(CIPSNS);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return CIPSNS;
}

static String pedirCITE(){
boolean terminado = false;
String CITE = null;
while (terminado == false){
System.out.print("Código CITE: ");
CITE = leer.nextLine();

// Validación de la expresión regular
patron = Pattern.compile("80(AFG|ALA|ALB|DEU|AND|AGO|AIA|ATA|ATG|SAU|DZA|ARG|ARM|ABW|AUS|AUT|AZE|BHS|BGD|BRB|BHR|BEL|BLZ|BEN|BMU|BLR|MMR|BOL|BIH|BWA|BRA|BRN|BGR|BFA|BDI|BTN|CPV|KHM|ZMR|CAN|UAT|BES|TCD|CHL|CHN|CIP|COL|COM|PRK|KOR|CIV|CRI|HRV|CUB|CUW|DNK|DMA|ECU|EGY|SLV|ARE|ERI|SVK|SVN|ESP|USA|EST|ETH|PHL|FIN|FJI|FRA|GAB|GMB|GEO|GHA|GIB|GRD|GRC|GRL|GLP|GUM|GTM|GUF|GGY|GIN|GNB|GNQ|GUI|HTI|HND|HKG|IND|IDN|IRQ|IRN|IRL|BVT|IMN|CXR|NFK|ISL|CYM|COK|FRO|SGS|HMD|FLK|MNP|MHL|PCN|SLB|TCA|UMI|VGB|VIR|ISR|ITA|JAM|JPN|JEY|JOR|KAZ|KEN|KGZ|KIR|KWT|LAO|LSO|LVA|LBN|LDR|LBY|LIE|LTU|LUX|MAC|MDG|MYS|MWI|MDV|MLI|MLT|MAR|MTQ|MUS|MRT|MYT|MEX|FSM|MDA|MCO|MNG|MNE|MSR|MOZ|NAM|NRU|NPL|NIC|NER|NGA|NIU|NOR|NCL|NZL|OMN|NLD|PAK|PLW|PSE|PAN|PNG|PRY|PER|PIF|POL|PRT|PRI|GBR|CAF|CZE|MKD|COG|COD|DOM|REU|RWA|ROU|RUS|ESH|WSM|ASM|BLM|KNA|SMR|MAF|SPM|VCT|SHN|LCA|STP|SEN|SRB|SYC|SLE|SGP|SXM|SYM|SOM|LKA|SWZ|ZAF|SDN|SSD|SWE|CHE|SUR|SJM|THA|TWN|TZA|TJK|IOT|ATF|TLS|TGO|TKL|TON|TTO|TUN|TKM|TUR|TUV|UKR|UGA|URY|UZB|VUT|VAT|VEN|VNM|WLF|YEM|DJI|ZMB|ZWE)\\d{2}(\\d)\\d{2}\\2");
validador.usePattern(patron);
validador.reset(CITE);
ok = validador.matches();

if (ok)
terminado = true;
else
System.out.println("***Formato incorrecto***");
}
return CITE;
}

public static void main(String[] args) {

boolean terminado = false;
String nombre = null;
String dni = null;
String ss = null;
String fecha = null;
String tlf = null;
String cipsns = null;
String cite = null;
StringBuffer sb = new StringBuffer();

while (!terminado){
nombre = pedirNombre();
dni = pedirDNI();
ss = pedirSS();
fecha = pedirFechaCaducidadTS();
tlf = pedirTLF();
cipsns = pedirCIPSNS();
cite = pedirCITE();

// Escribimos y guardamos el fichero
try {
LEfichero.escribirFichero("NC,DNINIE,NSS,FC,TEL,CIPNS,CITE"+System.getProperty("line.separator")
+sb.append(nombre+","+dni+","+ss+","+fecha+","+tlf+","+cipsns+","+cite
+System.getProperty("line.separator")).toString(),"pacientes.csv");
}
catch (IOException error) {
//captura excepción
System.out.println("***Error de escritura "+error);
}

// Comprobación de la respuesta
boolean respuestaTerminada = false;
while (!respuestaTerminada){
System.out.print("Pulse <S> salir o <A> añadir:");
String respuesta = leer.nextLine();

patron = Pattern.compile("S|A");
validador.usePattern(patron);
validador.reset(respuesta);
ok = validador.matches();
if (ok && respuesta.equals("S")){
respuestaTerminada = true;
terminado = true;
}
else if (ok && respuesta.equals("A"))
respuestaTerminada = true;
else
System.out.println("Respuesta incorrecta");
}
}

leer.close();

System.out.println("SALIDA pacientes.csv:");
System.out.println();
System.out.println("NC,DNINIE,NSS,FC,TEL,CIPNS,CITE");
System.out.println(sb);
}
}
#4
C / C++ / Ejercicios C
Abril 08, 2015, 08:06:46 PM
Aquí les dejo algunos ejercicios que he tenido que hacer para la uni.

1. Simular un sistema de autenticacion de usuarios.
Código: c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

// Registra usuario con contraseña pwd en el fichero de
// lectura/escritura apuntado por f.
// Devuelve 1 si el usuario ya existe, y 0 en caso contrario.
int Registro(FILE* f, char* usuario, char* pwd){
    char u[50];
    char p[50];
    while(!feof(f)){
        fscanf(f,"%s",u);
        fscanf(f,"%s",p);
        if(strcmp(u,usuario) == 0)
            return 1;
    }
    fprintf(f,"%s %s\n", usuario, pwd);
    return 0;
}

// Comprueba si usuario ha sido registrado con contraseña pwd en
// el fichero de lectura apuntado por f.
// Devuelve 1 si el usuario no existe, 2 si la contraseña es
// incorrecta y 0 en caso contrario.
int Autenticacion(FILE* f, char* usuario, char* pwd){
    char u[50];
    char p[50];
    while(!feof(f)){
        fscanf(f,"%s",u);
        fscanf(f,"%s",p);
        if(strcmp(u, usuario) == 0){
            if (strcmp(p, pwd) == 0)
                return 0;
            else
                return 2;
        }
    }
    return 1;
}

void Imprime_Menu(){
    printf("Elige una opcion:\n");
    printf("1) Registro\n");
    printf("2) Autenticacion\n");
    printf("3) Salir\n");
}

// Gestiona el menu, según la opción elegida por el usuario
char Gestion_Menu(char opc){
    Imprime_Menu();
    fflush(stdin);
    opc = getchar();
    switch(opc){
        case '1':{
            FILE* f = fopen("registro.txt","r");
            char user[50];
            char pass[50];
            if (f != NULL)
                f = fopen("registro.txt","r+");
            else
                f = fopen("registro.txt","w+");
            printf("Introduce el usuario a registrar: ");
            scanf("%s",user);
            printf("Introduce la contrasenya: ");
            scanf("%s",pass);
            if (Registro(f, user, pass) == 1)
                printf("Error: usuario ya existente.\n");
            else
                printf("Usuario registrado correctamente.\n");
            if (fclose(f) != 0)
                printf("%s",strerror(errno));
            printf("------------------------------------------------\n");
            break;
        }
        case '2':{
            FILE* f = (fopen("registro.txt","r") == NULL)?NULL:fopen("registro.txt","r");
            char user[50];
            char pass[50];
            if (f != NULL){
                f = fopen("registro.txt","r+");
                printf("User: ");
                scanf("%s",user);
                printf("Password: ");
                scanf("%s",pass);
                switch(Autenticacion(f, user, pass)){
                    case 0:{
                        printf("Login correcto, entrando al sistema.\n");
                        break;
                    }
                    case 1:{
                        printf("El usuario no existe, para registrar nuevo usuario use la opcion 1.\n");
                        break;
                    }
                    case 2:{
                        printf("Contrasenya incorrecta.\n");
                        break;
                    }
                    default:{
                        printf("Error de autenticacion.\n");
                    }
                }
            }
            else
                printf("Error: %s",strerror(errno));
            if (fclose(f) != 0)
                printf("Error: %s",strerror(errno));
            printf("------------------------------------------------\n");
            break;
        }
        default:{
            if (opc != '3') printf("Por favor, introduce un numero del 1 al 3\n");
            printf("------------------------------------------------\n");
        }
    }
    return opc;
}

int main(){
    char opcion = 0;
    do{
        opcion = Gestion_Menu(opcion);
    }while(opcion != '3');
    printf("Saliendo...");
    return 0;
}


2.Torres de Hanoi
Código: c

#include <stdio.h>
#include <time.h>


int cont = 0;
int Hanoi (char origen, char destino, char auxiliar, int n){
    if (n > 0){
        ++cont;
        Hanoi(origen, auxiliar, destino, n-1);
        printf("Mueve disco de %c a %c\n", origen, destino);
        for(int i=1; i<= 1000;i++);
        Hanoi(auxiliar, destino, origen, n-1);
    }
    return cont;
}

int main(){
    FILE * f = fopen("Hanoi.txt", "w");
    int n = 10;
    for(int i=1; i<=n; i++){
        long t1 = clock();
        long Nmov = Hanoi('A','B','C',i);
        long t2 = clock();
        long t = t2-t1;
        fprintf(f,"n: %d\tt: %d\tNºmov.: %d\n",i,t,Nmov);
    }
    fclose(f);
    return 0;
}


3. Generador del triángulo de Pascal
Código: c

#include <stdio.h>
#include <windows.h>

int coeficiente(int n, int k){
    if(n==k || k==0)
        return 1;
    else
        return coeficiente(n-1,k-1)+coeficiente(n-1,k);
}

void triangulo(int N){
for(int n=0; n<=N; n++){
    printf("\t");
        for(int k=0; k<=n; k++){
            printf(" %d",coeficiente(n,k));
        }
        printf("\n");
}
}

int main(){
    int a;
    printf("+--------------------------------------------+\n");
    printf("| Programa generador del triangulo de Pascal |\n");
    printf("+--------------------------------------------+\n");
    printf("  Numero de filas a generar: ");
    scanf("%d",&a);
    printf("-----------------------------------------------\n");
    triangulo(a);
    printf("-----------------------------------------------\n");
    system("PAUSE");
return 0;
}
#5
Debates, Reviews y Opiniones / Que antivirus usas?
Abril 08, 2015, 07:05:01 PM
Yo en windows uso avast premier ya que viene con multitud de herramientas como administracion remota de equipos,    borrado del disco duro,  analisis inteligente tanto del pc como de la red,  etc.  y en linux no uso ninguno ya que no lo considero necesario,  al estar al tanto en todo momento de las conexiones entrantes/salientes.
#6
Presentaciones y cumpleaños / Me presento...
Marzo 30, 2015, 08:52:24 PM
Hola a todos, soy Cristian, estudiante de Ingeniería Informática (segundo año) y me apasiona el mundo de la seguridad informática. Dí con esta gran comunidad por casualidad y aún estoy impresionado con la cantidad de conocimiento y de buen rollo que hay por aqui. Espero aprender mucho junto a ustedes y ayudar en lo que pueda tambien. Un saludo.

PD: Me gustaría compartir mi biblioteca personal, ya se que aqui en undercode hay una inmensa biblioteca con multitud de temas pero a mi me hace ilusión compartir la mía. xD

Hacking:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Programación:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Give a man a truth and he will think for a day.
Teach a man to reason and he will think for a lifetime.
-Phil Plait
#7
Tengo instalado en mi portatil elementary os y windows 8 y acabo de instalar wifislax. El problema es que intentando configurarbel grub he hecho algo mal y ahora lo unico que aparece es "GRUB" en letras blancas y el cursor parpadeante. He probado con boot-repair pero nada. Agradeceria vuestra ayuda.
#8
Dudas y pedidos generales / UEFI windows 8
Enero 31, 2015, 05:20:33 PM
Tengo un problema con la instalacion de la distribucion de linux, bugtraq black widow, resulta que tengo instalado en una particion windows 8 y en otra bugtraq y al iniciar con uefi activado me inicia en windows, y si pongo la bios en modo legacy me aparece el grub para iniciar con windows o bugtraq, pero al iniciar con windows aparece esta imagen y no se que hacer. Ayuda por favor. Me gustaria poder iniciar los dos sistemas sin tener que cambiar la configuracion de la bios.