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


Tema destacado: El geolocalizador de IP's ya funciona con IPv6


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 274
61  Programación / Programación General / Re: ¿Top 10 programas más fáciles de hacer? en: 18 Julio 2026, 17:54 pm
¿Cuándo dije que algo fuese más difícil de hacer las cosas? ¿Cuando pregunté lo de por qué usar Flash cuando hay que darle muchas vueltas para usarlo?
Eso creo, pero recordar el tema específico es difícil y no lo encontré buscando ahora un rato.

Citar
Quiero agregar que hacer un cheat simple para un juego sin anticheat también es uno de los tipos de programas más fáciles de hacer.
¿Ejemplo? De momento sólo tengo emuladores y Super Fly, de DOS, pero podría probar instalar alguno sencillo para probar.

...

En cuanto al tema, estoy pensando en los videojuegos más sencillos, pero claro es complicado para mí, por ahora tengo esto:
62  Informática / Software / John The Ripper de nuevo (RAR) en: 18 Julio 2026, 16:35 pm
Sí recuerdo este tema
https://foro.elhacker.net/software/dudas_sobre_john_the_ripper-t521441.0.html;msg2278553#msg2278553
pero desde que se rompió mi PC e intenté continuar, me he topado con problemas varios y entonces le veo sentido a preguntar todo desde 0.

Tengo John en:
john-1.9.0-jumbo-1-win64
Hay carpeta run, el comando help funciona, se supone que está bien.

Tengo mi generador de diccionario:
Código
  1. # -*- coding: utf-8 -*-
  2. import os
  3.  
  4. charset = "abcdefghijklmnñopqrstuvwxyz"
  5.  
  6. def has_three_consecutive_same_chars(word):
  7.    """Función para verificar si hay tres caracteres consecutivos iguales."""
  8.    for i in range(len(word) - 2):
  9.        if word[i] == word[i + 1] == word[i + 2]:
  10.            return True
  11.    return False
  12.  
  13. # Esto detecta automáticamente la carpeta real donde está este archivo .py
  14. directorio_actual = os.path.dirname(os.path.abspath(__file__))
  15. ruta_archivo = os.path.join(directorio_actual, "Mywords.txt")
  16.  
  17. # Guardamos el archivo usando la ruta absoluta correcta
  18. with open(ruta_archivo, "w", encoding="utf-8") as txt:
  19.    for a in charset:
  20.        for b in charset:
  21.            for c in charset:
  22.                for d in charset:
  23.                    word = "K" + a + b + c + d
  24.                    if not has_three_consecutive_same_chars(word):
  25.                        txt.write(word + "\n")
  26.  
  27. print("¡Proceso terminado con éxito!")
  28. print(f"Archivo guardado en: {ruta_archivo}")
  29. input("\nPresiona Enter para salir...")

Insisto en que no se entiende por qué es necesario tanto lío, decir la carpeta donde guardar, si antes funcionaba así:
Código
  1. # -*- coding: ANSI -*-
  2. charset = "abcdefghijklmnñopqrstuvwxyz"
  3.  
  4. def has_three_consecutive_same_chars(word):
  5.    """Función para verificar si hay tres caracteres consecutivos iguales."""
  6.    for i in range(len(word) - 2):
  7.        if word[i] == word[i + 1] == word[i + 2]:
  8.            return True
  9.    return False
  10.  
  11. with open("Mywords.txt", "w", encoding="utf-8") as txt:
  12.    for a in charset:
  13.        for b in charset:
  14.            for c in charset:
  15.                for d in charset:
  16.                    word = "A" + a + b + c + d
  17.                    if not has_three_consecutive_same_chars(word):
  18.                        txt.write(word + "\n")

El diccionario generado lo copio y pego en run.

Ejecuto un archivo bat así:
Código
  1. @echo off
  2. :: Cambia a la carpeta donde está el ejecutable de John the Ripper
  3. cd /d "C:\john-1.9.0-jumbo-1-win64\run"
  4.  
  5. :: Ejecuta el comando con el archivo de wordlist y el archivo de hashes
  6. john --wordlist=Mywords.txt rar.hashes
  7.  
  8. :: Pausa para que puedas ver el resultado
  9. pause

Dice:
"stat: rar.hashes: No such file or directory"

Pero el archivo sí existe, o al menos uno llamado hash.txt que tiene los nombres de las carpetas de mi rar, que también está ahí.

Aparentemente el que hacía falta es otro, rar.hashes. Se crea como se indica en el link que puse ¿pero qué es el otro archivo, de dónde salió? El hash.txt ¿lo creé yo, cómo?

Ya parece que funciona...

---
Editado el título, cambiado "ripley" por "Ripper" y agregado "(RAR)" para corregir y mejorar la comprensión
63  Programación / Programación General / Re: Generar secuencias evitando redundancias, loops en que nada ocurra, etc. en: 17 Julio 2026, 15:42 pm
No hay mucha respuesta  :(

Frame 1:
Código
  1. // Para códigos de 1 cosa (acción, if, do while o while):
  2. //
  3. // Las líneas se guardarán en elementos de arrays,
  4. // así que en este contexto nro de línea y de elemento...
  5. // son lo mismo:
  6. CodesLV1 = 0;
  7. // Generar código agregando acción:
  8. set ("LV1Code"+CodesLV1, new Array("1"));
  9. // Generar código agregando if:
  10. CodesLV1++;
  11. set ("LV1Code"+CodesLV1, new Array("if", "}"));
  12. // Generar código agregando do while:
  13. CodesLV1++;
  14. set ("LV1Code"+CodesLV1, new Array("do {", "} while"));
  15. // Generar código agregando while:
  16. CodesLV1++;
  17. set ("LV1Code"+CodesLV1, new Array("while {", "}"));
  18. //
  19. // Mostrar los códigos:
  20. CodeaMostrar = 0;
  21. do {
  22. NombredeNewCode = "LV1Code"+CodeaMostrar;
  23. trace (NombredeNewCode);
  24. TextoLineaPorLinea = eval(NombredeNewCode).join("\n");
  25. trace (TextoLineaPorLinea+"\n");
  26. CodeaMostrar++;
  27. } while (CodeaMostrar<=CodesLV1);

Salida:
Citar
LV1Code0
1

LV1Code1
if
}

LV1Code2
do {
} while

LV1Code3
while {
}

Está bien.

Frame 2:
Código
  1. // Para códigos de 2 cosas:
  2. CodesLV2 = -1;
  3. CodeBase = -1;
  4. do {
  5. CodeBase++;
  6. LineaDondeAgregar = -1;
  7. do {
  8. CodesLV2++;
  9. NombredeNewCode = "LV2Code"+CodesLV2;
  10. LineaDondeAgregar++;
  11. // Para generar código agregando acción, 1ero se copia a otro:
  12. set (NombredeNewCode, eval("LV1Code"+CodeBase).slice());
  13. // Insertar en la posición LineaDondeAgregar
  14. // Parámetros: (índice, elementos_a_eliminar, nuevo_elemento)
  15. eval(NombredeNewCode).splice(LineaDondeAgregar, 0, "2");
  16. trace (NombredeNewCode);
  17. TextoLineaPorLinea = eval(NombredeNewCode).join("\n");
  18. trace (TextoLineaPorLinea+"\n");
  19. } while (LineaDondeAgregar<eval("LV1Code"+CodeBase).length);
  20. } while (CodeBase < CodesLV1);
  21. stop ();

Salida:
Citar
LV2Code0
2
1

LV2Code1
1
2

LV2Code2
2
if
}

LV2Code3
if
2
}

LV2Code4
if
}
2

LV2Code5
2
do {
} while

LV2Code6
do {
2
} while

LV2Code7
do {
} while
2

LV2Code8
2
while {
}

LV2Code9
while {
2
}

LV2Code10
while {
}
2

Cosas que deben corregirse o agregarse:
- No debe haber "2" si antes no hay "1".
- Lo que esté dentro de un if o loop, debe tener 3 espacios.
- Sólo se está agregando "2", se debe también agregar if, etc, y else en caso de haber if.

¿Bien? ¿alguien lo hace? ¿alguna duda? ¿alguna optimización que se les ocurra, o mejores nombres?
64  Programación / Programación General / Re: ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"? en: 16 Julio 2026, 15:05 pm
Anduve sin ganas de abrir los ojos, comer, etc, me dolían un poco, no podía ver bien, y aún tengo toz y ando medio deprimido también.
¿Causas? Probablemente alguna de estas:
- Vivo medio lejos de un baño, en eso me pareció que mi orín tendría olor medio agradable, me pareció graciosa la idea de olerlo, había oído que podía tener bacterias pero bueno. Hace años en TV pasaron que gente tomaba lo suyo, no llegué a tanto.
- Sentí frío en la garganta pero no me abrigué. Pero no es mi culpa que ninguno de los abrigos que tengo abriguen el cuello, varios tenían cierre roto, los hice unir, pero tan arriba no los unieron (y si los hubieran unido probablemente no me los podría poner). No venden mucho de eso y remeras que compré tienen el cuello particularmente bajo.
- Mis familiares invitaron a una gente que probablemente tenía bacterias diferentes a las que acostumbro.

Lo de la depresión es que en la vida logro muy poca cosa y por acá parece que todo es extra complicado, por poner un ejemplo ya van 3 pantalones que compro y los 3 se caen, no puede uno moverse sin tener que estar levantándose los pantalones a cada rato.

Acá la IA hizo un top 10 de ejercicios sencillos sobre el tema y una idea de cómo resolver el 1ero:
https://share.google/aimode/QG02jjyEF3qMqyK49

Acá hice una versión que prueba más números, pero solo 1 operador:
Código
  1. // Se buscará fórmula para obtener un número N...
  2. // a partir de él mismo usando +PostOperador:
  3. // ¿Cuánto debe ser PostOperador para que...
  4. // N+PostOperador == N?
  5. PostOperador = 9;
  6. N = 0;
  7. do {
  8. trace("Probando PostOperador "+PostOperador+"; N "+N);
  9. // Vemos si PostOperador sirve al actual valor de N:
  10. Resultado = N+PostOperador;
  11. if (Resultado == N) {
  12. trace("PostOperador "+PostOperador+" sirvió para N "+N);
  13. // Sí, cambiamos N para ver si así también sirve:
  14. N++;
  15. } else {
  16. trace("PostOperador "+PostOperador+" FALLó para N "+N);
  17. // No, probaremos Ns desde el inicio,
  18. // con otro PostOperador:
  19. PostOperador--;
  20. N = 0;
  21. }
  22. } while (N<10);
  23. trace ("El PostOperador útil parece ser "+PostOperador);

Me parece que se puede hacer con 2 whiles y que queda mejor de ese modo ¿cómo sería?
65  Foros Generales / Foro Libre / Re: El problema de los juegos no físicos. en: 6 Julio 2026, 08:57 am
En el futuro puede que ni siquiera sepan que existían cartuchos, discos, etc.

A mí por suerte o gusto selectivo me gustan los antiguos, aunque admito que algunos son como injugables
https://gamefaqs.gamespot.com/snes/564407-rudra-no-hihou/faqs/81319/introduction
Mira que lo intento pero por ejemplo no sé cual es mejor mantra de estas
LUCVUIGNATES
LUCVUIGRANDE
LUCIGREXMEL
LUCIGTIOMEL
LUCIGTEUMNA
LUCMORIGMEL
LUCVUIGUSMEL
Y si como dice la guía los modificadores dependen del elemento de la palabra base, peor.
66  Foros Generales / Foro Libre / Re: Ya que conseguir teclados más grandes es muy complicado... ¿qué puedo poner en mis dedos? en: 6 Julio 2026, 08:43 am
No leí todo pero en lo que leí no entiendo las ventajas, que dura más y funciona como un interruptor de luz ¿eso me evita que presione 2 teclas a la vez o una cercana? La duración no es problema ¿será que los míos son mecánicos? Alguna vez se me bajó una tecla, la que más usaba, pero hace años que no me pasa.
67  Programación / Programación General / ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"? en: 6 Julio 2026, 03:53 am
Una fuerza bruta "de valores" prueba valores, así que si hay millones de situaciones posibles puede que necesites guardar millones de variables.
Ejemplo: Se le muestra el número 0 y debe decir el mismo número pero el programa no sabe eso.
Prueba el 0, sirve, crea la variable Situacion0=0, o sea, cuando el número es 0 decir 0.
Se le muestra el número 1. Prueba el 0, no sirve, prueba el 1, crea la variable Situacion1 = 1, etc, etc.

En cambio una "de métodos" prueba métodos, lo cual supongo reduce la cantidad de información que debe quedar guardada.
Ejemplo: Se le muestra el número 0 y debe decir eso*3 pero el programa no lo sabe.
Prueba hacerle *0, sirve (porque 0*3 también es 0).
Siguiente situación, se le muestra 1.
Le hace *0, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *1. Sirve.
Siguiente situación: 1, le hace *1, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *2. Sirve.
Siguiente situación: 1, le hace *2, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *3. Sirve.
Siguiente situación: 1, le hace *3, sirve.
Y así va a seguir probando todas las situaciones que se requieran, siempre va a servir y entonces la fuerza

crea Solucion = Numero*3

Quiero aprender a programar fuerza bruta "de métodos" y por eso pregunto cuales serían los ejercicios más sencillos para empezar.

Lo había hablado con la IA pero necesito algo más sencillo. Lo 1ero que me dijo fue un robot en un laberinto pero supongo que hay cosas más sencillas.
https://share.google/aimode/ZojJzrjPaAkS3xcgK
68  Foros Generales / Foro Libre / Ya que conseguir teclados más grandes es muy complicado... ¿qué puedo poner en mis dedos? en: 6 Julio 2026, 02:21 am
No es que haya buscado mucho, pero bueno, la mayoría de los que vi desde que empecé a usar PC son iguales, los muy antiguos eran un poquito más grandes me parece, y los de laptop son más pequeños.
¿Cual es el problema? Las faltas de ortografía que cometo porque presiono una tecla extra sin querer o la de al lado. En foros también a veces al presionar mayúscula presiono tab, el cursor se va a enviar, y yo no puedo darme cuenta a tiempo así que el mensaje se envía. Puedo editarlo, pero es molesto.

Entonces acabo de pensar en ponerme algo en los dedos, quizá un guante con esas "cositas" pegadas. ¿Qué cositas? No sé ¿unos cubitos diminutos? ¿han visto algo así? ¿qué se les ocurre?

O podría empezar a intentar que la PC escriba lo que yo diga en voz alta. ¿Cómo es eso?

Los correctores automáticos no creo que puedan ser suficientemente buenos, además donde más escribo es en el bloc de notas común y corriente.

https://share.google/aimode/5qoBZFpShQp5CmDR1
No era tan loco como pensaba. Y eso de las teclas cóncavas no me había dado mucho cuenta, antes eran así, las mías son planas.
69  Programación / Python / Re: No se genera el archivo. en: 5 Julio 2026, 06:29 am


Qué bueno que ya pudiste comprobar que tu código funciona perfectamente cuando se ejecuta desde la consola.
La razón por la que se cierra rápido y no genera el archivo al hacerle doble clic normal es que Windows y Python manejan de forma muy distinta la ruta donde se guardan las cosas en cada caso:
## El motivo del problema

* Al usar la consola (cmd): El sistema sabe exactamente en qué carpeta estás parado, por lo que crea Mywords.txt ahí mismo.
* Al hacer doble clic: Windows abre el intérprete de Python (el archivo python.exe general del sistema). Para Python, la "carpeta actual" pasa a ser la carpeta del sistema de Windows (como C:\Windows\System32 o tu carpeta de usuario principal C:\Users\TuUsuario), y no la carpeta donde está tu script.

Al intentar crear el archivo de texto en una carpeta del sistema, Windows bloquea la acción por falta de permisos de administrador, Python lanza un error de acceso denegado y la ventana se cierra de golpe instantáneamente sin escribir nada.
------------------------------
## La Solución Definitiva (Modifica tu código)
Para que el programa funcione con doble clic desde cualquier lugar, debes decirle a Python que busque la ruta exacta donde está guardado el script y cree el archivo de texto ahí mismo.
Reemplaza tu código actual por este (solo agregamos la librería os para detectar la ruta):

# -*- coding: utf-8 -*-import os
charset = "abcdefghijklmnñopqrstuvwxyz"
def has_three_consecutive_same_chars(word):
    """Función para verificar si hay tres caracteres consecutivos iguales."""
    for i in range(len(word) - 2):
        if word == word[i + 1] == word[i + 2]:
            return True
    return False
# Esto detecta automáticamente la carpeta real donde está este archivo .pydirectorio_actual = os.path.dirname(os.path.abspath(__file__))ruta_archivo = os.path.join(directorio_actual, "Mywords.txt")
# Guardamos el archivo usando la ruta absoluta correctawith open(ruta_archivo, "w", encoding="utf-8") as txt:
    for a in charset:
        for b in charset:
            for c in charset:
                for d in charset:
                    word = "K" + a + b + c + d
                    if not has_three_consecutive_same_chars(word):
                        txt.write(word + "\n")

print("¡Proceso terminado con éxito!")
print(f"Archivo guardado en: {ruta_archivo}")
input("\nPresiona Enter para salir...")


Funcionó pero creo que antes no era tan complicado... ¿no se puede simplificar?
70  Programación / Programación General / Re: ¿Top 10 programas más fáciles de hacer? en: 4 Julio 2026, 21:48 pm
Pero Python:
- No fue tan fácil de instalar.
- No viene con algo donde puedas dibujar o insertar dibujos normales, es tipo DOS, probablemente haya que buscar, y puede que no sea fácil saber cual es el adecuado y hacer que funcione.
- No permite concatenar un texto y un número, tienes que convertir el número en texto.
- Hace años cuando intenté que un programa genere un archivo, no pude.
- Aún tengo problemas para hacer que el programa más simple del mundo funcione, por problemas del formato, que no entiendo porque si lo grabo como py entonces el formato debería ajustarse a py, pero parece que hay un py UTF8 y otros tipos de py.

Tu respuesta no tiene mucho sentido para mí, si yo muestro un programa de ejemplo muestro código o un archivo que puede descargarse (aunque no debería ser necesario) donde esté el c´código; si al mostrar código o un ejemplo es una página que tienes que hacer un curso para poder entender qué es lo que muestra y ver el código, algo está mal en eso. Imaginate que en el foro en vez de poner códigos se pusieran archivos para descargar, junto con unos que tienes que hacer un curso para entender qué son ¿no te parece absurdamente burocrático?

Si la página esa no es capáz de mostrar códigos de forma normal, cómoda para el usuario, entonces diles "git gud" y cuando lo logren me avisan.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 274
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines