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

 

 


Tema destacado: Top 20 herramientas Hacking más populares de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / [Shell Script] Elimina hardlinks en: 7 Abril 2012, 16:56 pm
Hola, me gustaría poder hacer un shell script en ubuntu como el que ahora explico: 


Cómo se ejecutaría:

$ ./elimina fichero directorio_inicial


“fichero” es un nombre de un archivo y “directorio_inicial” un directorio.
El script tiene que eliminar todos los hardlinks que hagan referencia al “fichero” en el “directorio_inicial” y en sus subdirectorios.
Cuando haya recorrido todo el árbol de subdirectorios también tiene que eliminar el archivo “fichero”.


Lo que he hecho hasta el momento es esto:

Código
  1. #!/bin/sh
  2.  
  3. # Comprueba la existencia de argumentos
  4. if [ $# -ne 2 ];
  5. then
  6. echo "faltan parametros"
  7. exit
  8. else
  9.  
  10. if ! cd $2 2>/dev/null
  11. then
  12. echo "directorio $2 no valido"
  13. exit
  14. fi
  15.  
  16. if  ! test -f $1
  17. then
  18. echo "fichero $1 no valido"
  19. exit
  20. fi
  21.  
  22. INODO=`ls -i | grep $1 -w | cut -d ' ' -f 1`
  23. echo $INODO
  24.  
  25. # AHORA FALTA EMPEZAR LA RECURSIVIDAD
  26.  
  27.  
  28. fi

Gracias  ;D
2  Programación / Java / [Ideas] Grafos y Caminos en: 25 Febrero 2012, 21:02 pm
Hola a todos  ;D

Hace poco que programo en Java, pero ya había programado en otros lenguajes.
Querría que me orientaran un poco sobre cómo resolver un ejercicio cómo el siguiente:

Citar
El usuario entra los siguientes datos (guardados en un fixero):
(ciudad ciudad distancia)

CiudadA CiudadC 30
CiudadC CiudadD 20
CiudadB CiudadD 10



Le pregunta al usuario que diga los nombres de la ciudad origen y ciudad destino.
Y muestra una ruta para ir de Origen a Destino (Puede ser óptima o no da igual)

ORIGEN: CiudadB
DESTINO: CiudadA

CiudadB
CiudadD 10Km
CiudadC 20Km
CiudadA 30Km

KM TOTALES: 60Km

Había pensado en un grafo no dirigido y etiquetado.
Pero no sé cómo guardar los datos de ciudades y distancias.
Podría utilizar una estructura donde las columnas fuesen nodos (ciudades) y las filas destinos y guardar el número de kilómetros.

Pero después de guardar los datos no sabría como conseguir un recorrido de una ciudad origen a una destino (evitando bucles es decir de ciudadA a ciudadB a ciudadA a CiudadB cuando quiero ir de CiudadA a ciudadC).

Existe el backtracking pero quiero algo más simple. También hay el algoritmo de Dijkstra que me daría el camino óptimo entre dos ciudades, pero preferiría hacer algo más simple aunque no obtuviese el camino óptimo, sólo un camino por muy largo que fuese. Usando recursividad por ejemplo.

  • Citar
    PD: Sólo quiero ideas, gracias  ;D
3  Programación / Programación C/C++ / Declarar constante privada POO en: 22 Abril 2011, 19:00 pm
Hola a tod@s!

Hace poco que he empezado la programación orientada a objetos (POO) y quisiera saber como se crean constantes privadas en los archivos .h

Dentro de la class, hay la parte public y la private (en la private declaro los atributos).

He intentado declarar una constante en la parte privada como:

const double PI = 3.14159;

Pero el compilador se queja, alguien sabe com se hace para declara una constante privada?  Gracias :)
4  Programación / Programación C/C++ / Mantener ordenados strings en: 21 Febrero 2011, 14:36 pm
Hola a tod@s!

Quiero hacer un programa que lea una serie de strings(palabras) con una marca al final de todo, en este caso la marca es '#'.

Cada vez que aparezca un nombre repetido se incrementa en 1 el nombre de apariciones.

I si la palabra es nueva, se añade ordenadamente.
Es decir, sin añadirla al final y después ordenar antes de mostrar por pantalla.

En definitiva, tengo problemas en el momento de añadir ordenadamente.

Una muestra de lo que quería que hiciese es esta imagen:



I el codigo que he hecho hasta el momento es el siguiente:
Código:
#include <iostream>
#include <string>

using namespace std;

    // Constantes
    const int N=2000;
    const string FIN="#";

    //Estructura de nombres
    struct Nombre {
        string texto;
        int veces;
    };

    // Declaración de nuevo tipo
    typedef Nombre TablaNombres[N];

void insertarOrdenado(TablaNombres nombres, int& n, string p) {
    //Declaración variables
    int posicion, compara,compara2,i;
    bool encontrada;

    posicion=1;
    encontrada=false;//indica si ha encontrado la posicion de inserción

    while ((posicion<=n) and (not encontrada)) {
          compara=p.compare((nombres[posicion].texto));
          if (compara>=0) {
             encontrada=true;
          }
          else {
                posicion=posicion+1;
          }
    }
    //posicion es la posición de inserción

    compara2=p.compare((nombres[posicion].texto));
    if (compara2==0) {
        nombres[posicion].veces=nombres[posicion].veces+1;

    }
    else {
    //Añadir nuevo

    for (i=n;i>=posicion;i--){
        nombres[i+1]=nombres[i];
    }
    nombres[posicion].texto=p;
    nombres[posicion].veces=1;

    n=n+1;
    }
}


void lecturaNombres(TablaNombres nombres, int& n) {
    //Declaración variables
    string p;
    int c;

    cin >> p;
    c=p.compare(FIN); //c=0 si son iguales

    while (c!=0) {

    insertarOrdenado(nombres,n,p);

    cin >> p;

    }
}


void mostrar(TablaNombres nombres, int n) {
    //Declaración variables
    int i;

    for (i=0; i<n; i++) {
         cout << nombres[i].texto << " - " << nombres[i].veces << endl;
    }
}


int main()
{
    // Declaración de variables
    int n;
    TablaNombres nombres;

    n=0;

    cout << "ESCRIBA LOS NOMBRES A PROCESAR" << endl;

    lecturaNombres(nombres,n);

    cout << "NOMBRES ORDENADOS ALFABETICAMENTE" << endl;

    mostrar(nombres,n);

    return 0;
}


Al compilar no me sale ningún error ni advertencia, pero al ejecutar, después de introducir los nombres separados por un espacio en blanco y con la marca final '#'.
No muestra nada más.

El problema deduzco que es en el InsertarOrdenado, está mal planteado o tiene algún bucle infinito.

Si alguien me puede ayudar muchas gracias  ;D


PD: Se acceptan propuestas de cambios en la manera de estructurar el problema o sugerencias de como solucionarlo.

Revisando días después he visto los errores  ::)
5  Foros Generales / Sugerencias y dudas sobre el Foro / [Solucionado] Duda sobre los Mensajes en el foro en: 18 Febrero 2011, 19:35 pm
Hola a tod@s!

Hace un tiempo que tengo una duda y al fin me he decidido a crear un post.

¿El contador de mensajes de cada usuario (el que está debajo del nombre), que cuenta exactamente?

Lo digo básicamente porque he visto usuarios registrados que hacen 2 o 3 comentarios y tienen el contador a 0.  :huh:


Gracias  :D
6  Programación / Programación C/C++ / [Solucionado] Suma divisores de un número en: 11 Noviembre 2010, 21:55 pm
Hola a tod@s!

Como dice el tema quiero hacer un programa en C++ que calcule la suma  de los divisores de un número.

Tengo el siguiente código:
Código:
#include <iostream>

using namespace std;

int main()
{
    //Declaración variables
    int n; //Entrada
    int s; // Salida
    int i; //Auxiliar

    cout << "INTRODUZCA UN NUMERO:" << endl;
    cin >> n;

    s=1; // 1 es divisor siempre

    for (i=2;i<=(n/2);i++) {
        if (n%i==0) {
            s=s+i;
        }
    }
    s=s+n; //Sumamos el numero inicial que es divisor de él mismo

    cout << "LA SUMA DE LOS DIVISORES DE " << n << " ES: " << s << endl;

    return 0;
}

El problema que tengo es que por números como el 6, 20 y otros funciona.
Pero por ejemplo por el 220 no.
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284

En mi programa la suma de divisores de 220 sale que es 504.

Alguien tiene idea de que puede fallar y cómo solucionarlo?

Gracias  :D
7  Seguridad Informática / Nivel Web / Ayuda con posible inyección SQL en una base de datos.... en: 6 Enero 2010, 19:29 pm
Hola a todos!
En una web me piden el nombre de usuario y contraseña (lo típico  ;D)
I bueno.... en vez de escribir un user como por ejemplo "ron" puse una comilla '.

Total que la página web me respondió lo siguiente:

Código:
select `con` from basdat2 where `user`=''';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1

He estado mirando en el codigo fuente.... y la parte que me interesa es esta:

Código:
<table cellpadding=0 cellspacing=0 border=0 style="width: 100%"><tbody>
<tr>
<td colspan="1" style="text-align: left;">

<form ACTION ="./" METHOD=POST>

<table cellpadding=0 cellspacing=0 border=0 style="width: 100%"><tbody>

<tr>
<td colspan="1" style="text-align: left;">
user </td>
<td colspan="1" style="text-align: left;">
<input type=text name=user value="" size=30 MAXLENGTH=255>
</td>
</tr>
<tr>
<td colspan="1" style="text-align: left;">
contrasenya </td>

<td colspan="1" style="text-align: left;">
<input type="password" name="contra" value="" size=30
MAXLENGTH=255 >
</td>
</tr>
<tr>
<td colspan="1" style="text-align: left; width: 2%;">

<input name="Entrar!" value="Entrar!" type="submit">
</td>
</tr>
</tbody></table>
</form>
He hecho pruebas.... i algunos resultados han sido:

Con 'hola:

Código:
select `con` from basdat2 where `user`=''hola';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hola'' at line 1

Con '<<<>>> el resultado es:

Código:
select `con` from basdat2 where `user`=''<<<>>>';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<>>>'' at line 1

En este último resultado he comprovado que algun simbolo ">" no aparece en la respuesta... Al igual que si tengo una peticion con comillas múltiples de dos.... me valida, en canvio si escribo por ejemplo 1, 3 o 5 comillas me sale el error...

Alguien tiene tiene alguna idea para intentar acceder a la base de datos???  

Gracias  :P

EDITO: Formulario completo ^^
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines