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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6]
51  Programación / Programación C/C++ / Re: nesecito ayuda con recusividad por favor no entiendo. en: 24 Mayo 2021, 00:48 am
@ronbay

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define MAX_N 9
  5.  
  6. typedef struct {
  7.    int max_number;
  8.    int index;
  9. } number;
  10.  
  11. int main(void)
  12. {
  13.    int n = 358267;
  14.    int array[MAX_N], *array_ptr = array;
  15.    int aux, tmp;
  16.    register int i = 0;
  17.  
  18.    /* Extraemos cada digito */
  19.    while (n != 0 && i < MAX_N) {
  20.        *array_ptr++ = n % 10;
  21.  
  22.        n /= 10;
  23.        i++;
  24.    }
  25.  
  26.    /* Usamos el ordenamiento burbuja */
  27.    for (int aux_i = 0; aux_i < i; aux_i++) {
  28.        for (int aux_j = 0; aux_j < i-1; aux_j++) {
  29.            if (array[aux_j] > array[aux_j+1]) {
  30.                aux = array[aux_j];
  31.                array[aux_j] = array[aux_j+1];
  32.                array[aux_j+1] = aux;
  33.            }
  34.        }
  35.    }
  36.  
  37.    number mynumber;
  38.    mynumber.index = 0;
  39.    mynumber.max_number = 0;
  40.  
  41.    /* Extraemos el número mayor */
  42.    int j;
  43.    for (j = 0; j < i; j++)
  44.        if (array[j] > mynumber.max_number) {
  45.            mynumber.max_number = array[j];
  46.            mynumber.index = j;
  47.        }
  48.  
  49.    /* Lo intercambiamos con el último y el número mayor */
  50.    tmp = array[--j];
  51.    array[j] = mynumber.max_number;
  52.    array[mynumber.index] = tmp;
  53.  
  54.    /* Reconstruimos el número */
  55.    int k, r = 0;
  56.    for (k = 0; k < i; k++) {
  57.        r *= 10;
  58.        r += array[k];
  59.    }
  60.  
  61.    printf("%d\n", r);
  62.  
  63.    return EXIT_SUCCESS;
  64. }

No es recursivo, y tampoco sé si es lo que deseas, pero te puede servir para dar un paso más.

~ DtxdF
52  Programación / Programación C/C++ / Re: nesecito ayuda con recusividad por favor no entiendo. en: 23 Mayo 2021, 23:39 pm
Hola @ronbay

Las reglas dictan que no está permitido la realización de tareas, pero estoy seguro que muchos te ayudarán si dejas un adelanto, con un esfuerzo notorio.

Lo que se me ocurre para realizar lo que quieres, es usar Módulo (en C y muchos otros lenguajes es %) primero contra el número, el resultado almacenarlo en un arreglo, luego dividirlo entre 10 y realizar esta operación sucesivamente hasta que la variable donde se haga referencia al número sea 0.

Una vez realizado todas estas operaciones, puedes hacer dos cosas, aunque eso depende de tus necesidades: puedes usar algún algoritmo de ordenamiento si deseas un orden de menor a mayor, aunque no quedará exactamente como la solución que propones; también puedes usar otra variable donde hará referencia al número mayor del arreglo que se está recorriendo, que a su vez éste debe intercambiarse con el último elemento del arreglo.

Por último, pero esto puede ser opcional si desea "reconstruir el número", es, a partir del inicio del inicio del arreglo, obtener ese elemento, multiplicarlo con 10, sumarle el segundo elemento, y así con los mismos números. Debería obtener el número "reconstruido" pero con el número mayor recorrido.

Es opcional, como le dije, ya que si no es importante, puede imprimir la lista tal cual recorriendo el arreglo y después de ello, imprimir una nueva línea.

Espero le sirva.

~ DtxdF
53  Programación / Programación C/C++ / Re: int main (int argc, char* argv[]) en: 23 Mayo 2021, 21:39 pm
Hola @Locura_23

argc: Argument Count, que indica la cantidad de argumentos dados por la entidad que ejecutará este programa.
argv: Argument Vector, ya serían los argumentos proporcionados en sí, siendo una lista de cadenas.

Si, por ejemplo, tenemos el siguiente código:

main.c:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char **argv)
  5. {
  6.    char *arg;
  7.    while ((arg = *argv++))
  8.        puts(arg);
  9.  
  10.    return EXIT_SUCCESS;
  11.  
  12. }

Compilamos:

Código
  1. cc main.c -o main

Al ejecutarlo sin argumentos este programa, se mostrará en la salida del terminal el nombre del programa, que para este caso es main.c.

Código
  1. ./main
  2. # Salida:
  3. # ./main

Pero si ejecutaramos el programa con argumentos:

Código
  1. ./main "Primer argumento" "Segundo argumento" "Tercer argumento"
  2. # Salida:
  3. # ./main
  4. # Primer argumento
  5. # Segundo argumento
  6. # Tercer argumento

También si escribe un tercer argumento para la función main (llamémosle env), se mostrarán las variables de entorno.

~ DtxdF
54  Programación / Scripting / Re: Verificar si paso x tiempo para realizar una accion en: 22 Mayo 2021, 20:06 pm
Hola @SlayerBur

Para ello debe ajustar una variable que indique el tiempo límite que desea esperar después de realizar una acción. Esto es para tener un mejor orden, pero también puede optar por crear un archivo de configuración (ya sea con ConfigParser, TOML, JSON, etc.), aunque esto se sale del tema, es más una recomendación para su proyecto.

Después de ajustar los segundos límites, también debe crear una variable donde hará referencia a el tiempo actual, el cual será usado para calcular los segundos transcurridos. Mucho después tiene que restar el tiempo actual con el tiempo que hace referencia esa variable, el cual le debería dar los segundos que han pasado.

El siguiente código es un pequeño script a modo de ilustración, y si mira la línea 20 puede ver que si es None, ejecutará la acción, hará la acción y ajustará el tiempo actual. Es necesario para cuando la operación que se desea todavía no se ha realizado.

Código
  1. #!/usr/local/bin/python3.7
  2.  
  3. import time
  4.  
  5. # El tiempo a esperar
  6. TIME_LIMIT = 5
  7. CURRENT_TIME = None
  8.  
  9. print("Escriba la tecla P y presione ENTER.")
  10. while (True):
  11.    try:
  12.        cmd = input("> ")
  13.    except (EOFError, KeyboardInterrupt):
  14.        break
  15.  
  16.    if not (cmd):
  17.        continue
  18.  
  19.    if (cmd[:1].lower() == "p"):
  20.        if (CURRENT_TIME is None or time.time()-CURRENT_TIME >= TIME_LIMIT):
  21.            print("Prueba")
  22.  
  23.            # Se reajusta el tiempo para poder realizar las mismas acciones
  24.            CURRENT_TIME = time.time()
  25.        else:
  26.            print("Debes esperar %d segundos..." % (TIME_LIMIT))
  27.    elif (cmd[:1].lower() == "q"):
  28.        break
  29.    else:
  30.        print("Error, comando inexistente")

Ejemplo:

Código
  1. python3.7 main.py

Resultado:

Código:
Escriba la tecla P y presione ENTER.
> p
Prueba
> p
Debes esperar 5 segundos...
>

Luego de esperar los 5 segundos, sucede la misma acción una y otra vez:

Código:
> Prueba

~ DtxdF
55  Foros Generales / Dudas Generales / Re: Httrack para onion sites en: 22 Mayo 2021, 19:20 pm
Hola @TickTack

Para eso debe instalar proxychains o torsocks. Luego simplemente debe prefijarlo antes de colocar el comando httrack.

Por ejemplo:

Código
  1. proxychains httrack URL
  2. # o en el caso de torsocks
  3. torsocks httrack URL

Para el caso de proxychains le aconsejo que primero lo configure según sus preferencias.

Más información:

*.- En el mismo archivo de configuración de proxychains, que está muy bien comentado.
*.- man torsocks.conf(5)

~ DtxdF
56  Seguridad Informática / Hacking / Soy nuevo en el foro, necesito ayuda!!! en: 15 Junio 2017, 04:47 am
Perdon si este tema no va aqui pero soy nuevo en esta maravillosa pagina que la llamo escuela, bueno al grano: genere un troyano en spy net, ya hize todo abri mis puertos del router y de mi pc, desactive el firewall del router y de mi pc abri varios puertos por si acaso que son: 80, 2500, 8080 y 9003 lo probe con mi otra pc y si me cae con el puerto 2500, pero yo siempre en mis troyanos le pongo persistencia para que cada vez que se encienda la conexion de la victima (en este caso mi otro ordenador) se encienda mi spy net, pero no se vuelve a conectar y esa no es la idea, si alguien me puede ayudar con esto lo agradeceria muchisimo, y disculpe si no coloco este tema a donde va disculpen soy muy nuevo y tambien disculpe si no me explique bien


· Tema movido a subforo más apropiado
>aquí las reglas del foro
-Engel Lex
Páginas: 1 2 3 4 5 [6]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines