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


Tema destacado: Introducción a Git (Primera Parte)


  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 ... 236
61  Sistemas Operativos / Windows / Re: problemas con nuevo ordenador con win 11 en: 4 Enero 2025, 14:13 pm
Una vez le di a un técnico una PC que tenía contraseña al iniciar Windows, habiéndome olvidado de decirle, y cuando me la dió o hablamos el tipo me dijo que tenía contraseña, luego levantó la seja, pero llegué a la conclusión de que para él fue como una piedrita en el camino xD

Aunque Songoku afirme que son unos pocos segundos y aunque casi siempre es así, puede llegar a complicarse, por ejemplo si Tachikomaia me trae su Celeron de 2GB de Ram y HDD antiguo, pues va a tardar mucho más en levantar el Sistema Live y eso si soporta arranque por USB, en el peor de los casos habrá que arrancar por CD y puede que ni CD ni Lectora de CD tenga XD

En una PC moderna es mucho más rápido pero también hay que considerar el Cifrado, ya me ha tocado ver que aparte de contraseña tienen cifrado como BitLocker, muchos portátiles ya vienen con BitLocker activado por defecto, y pues ahí si pierdes la contraseña o la forma de recuperarla pierdes todo lo cifrado, intentar romper BitLocker es muy costoso, tengo entendido de que también está EFS para cifrar a nivel usuario aunque nunca lo vi en detalle
62  Programación / Python / Re: Buscador de combinaciones inexistentes no funciona. en: 3 Enero 2025, 13:54 pm
Citar
El programa se cierra enseguida sin que yo pueda ver qué pasa. ¿Cual es la falla, cómo lo arreglo?

O_o? Es un aplicación/script de consola o línea de comando (como john the ripper), usa una consola (CMD, Símbolo del Sistema, PowerShell, etc), también puedes poner una "pausa" antes de que se cierre pero si hay errores no los mostrará a no ser que lo ejecutes en una consola que es como debe de ser.

Para poner la pausa puedes agregar un input al final o donde quieras la pausa:

Código
  1. input("Presione Enter para continuar ...")
63  Foros Generales / Dudas Generales / Re: Convertir espacios seguidos en saltos de línea. en: 3 Enero 2025, 00:24 am
Usa algún editor de texto plano potente como Notepad3, Notepad++ o SublimeText, todos ellos tienes opciones para hacer búsquedas, reemplazos avanzados.

Notepad3 con expresiones regulares:

[  +] => Reemplazar dos o más espacios
[\n] => Por un salto de línea




En Notepad++ y SublimeText es igual que en Notepad3 usando expresiones regulares

En SublimeText puedes usar la multiedición con atajos de teclado que siempre es más rápido y cómodo para estas cosas tan sencillas:



1. Con doble click seleccionas palabras, yo seleccioné los espacios
2. Con Ctrl + F3 seleccionas todas las ocurrencias iguales a lo que hayas tenido seleccionado
3. Enter para reemplazar lo seleccionado con un Salto de Línea
4. Ctrl + A para seleccionar todo
5. Shift + Tab para quitar los espacios delante de las líneas
64  Informática / Hardware / Re: sirve una tarjeta pci express 3,0 x16 a una tarjeta madre pci express 2.0 x8? en: 31 Diciembre 2024, 22:55 pm
Por lo que he estado leyendo al parecer si es posible usar una gráfica PCI-E 3.0 x16 a un puerto PCI-E 2.0 x8, supongo que si es posible. Solo ten en cuenta también que necesitas una Fuente de poder con la alimentación correspondiente para la gráfica (conector de 8 pines extra), también revisa si tienes el espacio porque esa gráfica es gordita
65  Informática / Hardware / Re: sirve una tarjeta pci express 3,0 x16 a una tarjeta madre pci express 2.0 x8? en: 31 Diciembre 2024, 14:57 pm
PCI-E 2.0 x8?

Es raro encontrar una placa así, estoy buscando sus características pero parece que es muy antigua y la tarjeta de video aparenta ser demasiado para esa pobre placa, ni en la web del fabricante encuentro su ficha técnica y eso no es buena señal.

Estás seguro de que tiene una PCI-E 2.0 x8? revisaste su BIOS o tienes la ficha técnica o miraste el puerto PCI-E y viste que es x8? No soy experto pero dudo que la gráfica x16 funcione en una x8, la x8 tiene menos conectores

Tarjeta de video x8, fíjate en la parte donde se conecta, solo tiene la mitad de conectores:





Siempre puedes revisar los Benchmarks para conocer un poco las opciones que otros usuarios han probado, por ejemplo: https://www.userbenchmark.com/System/ECS-H61H2-CM/9951
66  Programación / Programación General / Re: Evitar o corregir entrada de valores inaplicables. en: 29 Diciembre 2024, 00:51 am
Supongo que una manera sencilla de hacer lo que pides es "limpiar" los caracteres, uno a uno los vas comprobando y solo dejas pasar los que admitas, el detalle es cuando vas a hacer esta limpieza, si lo desea lo puedes poner muy genérico y sencillo haciéndolo antes de tomar el valor del textbox, también lo puedes poner en el evento keyUp como el ejemplo que dejo a continuación:

Código
  1. onClipEvent(keyUp) {
  2.  if (Selection.getFocus() == "_level0.myClip.txt1") {
  3.    txt = _level0.myClip.txt1
  4.    tmp = ""
  5.    for (i = 0; i < txt.length; i++) {
  6.      c = txt.charCodeAt(i)
  7.      // 48 = 0, 57 = 9; 64 = A, 70 = F; 97 = a, 102 = F
  8.      if ( (c >= 48 && c <= 57) || (c >= 65 && c <= 70) || (c >= 97 && c <= 102) ) {
  9.        tmp += txt.charAt(i)
  10.      }
  11.    }
  12.    _level0.myClip.txt1 = tmp.toUpperCase()
  13.  }
  14. }

Selection.getFocus() devuelve la ruta completa del TextBox donde estoy escribiendo, de ahí puedes distinguir entre los textbox que tengas. Luego simplemente compruebo uno a uno los caracteres del textbox y creo un nuevo texto temporal donde únicamente dejo los caracteres de mi lista blanca: 0-9 A-F a-f y al final se la pongo al TextBox

Otra cosa a considerar es por ejemplo el tamaño, debería ser 6, si no es así puedes rellenar con ceros aunque esto lo tendrías que validar al tomar el valor del textbox y ya no en el keyup
67  Informática / Software / Re: Programa para ordenar archivos, Windows 7 "cierra" el buscador al abrir la carpeta contenedora. en: 28 Diciembre 2024, 13:42 pm
Citar
Quisiera algo más eficiente. Algo que abra la carpeta en otra ventana, de modo que pueda regresar a la búsqueda sin problema

Si buscas eficiencia tienes a Everything https://www.voidtools.com/downloads/ con él puedes  búsquedas avanzadas, y obviamente abrir la carpeta contenedora de un archivo o carpeta con click derecho > abrir carpeta contenedora, o presionar Ctrl + Enter para hacer lo mismo. Para hacer búsquedas en sistemas de archivos NTFS (típicos en Windows) es lo mejor que hay.

Para el Explorador de Windows puedes probar:

En caso de carpetas tienes dos opciones:
- Click derecho > Abrir en nueva ventana
- Ctrl + Enter

En caso de archivos:
- Click derecho, mantener presionado Ctrl y dar click en Abrir la ubicación del archivo
68  Programación / Programación General / Re: De una cadena, quitar la subcadena especificada, tantas veces como se repita. en: 22 Diciembre 2024, 15:51 pm
En ambos casos no puedes usar split() porque este solo funciona con un caracter, debes crear tu propia función, por ejemplo para A lo tienes solucionado con:

Código
  1. Cadena = "121213121"
  2. CaracteraQuitar = "121"
  3.  
  4. trace(quitarOcurrencias(Cadena, CaracteraQuitar))
  5.  
  6. function quitarOcurrencias(cadena, quitar) {
  7.  for (i = cadena.indexOf(quitar); i >= 0; i = cadena.indexOf(quitar)) {
  8.    cadena = cadena.substring(0, i) + cadena.substring(i + quitar.length)
  9.  }
  10.  return cadena
  11. }
  12.  
  13. // Devuelve: 213

- He utilizado un FOR porque las instrucciones son sencillas (un FOR es un "WHILE sencillo"), recuerda la estructura de un FOR:

for (inicialización de variables; condición para continuar; actualización de variables) {
  código
}


- Su equivalente en WHILE sería:

inicialización de variables
while (condición para continuar) {
  código
  actualización de variables
}


- El objetivo del FOR sería ahorrarse una par de líneas sencillas, aunque pueden ser más pero ya complicarían más la legibilidad del FOR

- Pero si lo quieres en WHILE completamente equivalente, porque he leído que no te gustan los FOR sería:

Código
  1. Cadena = "121213121"
  2. CaracteraQuitar = "121"
  3.  
  4. trace(quitarOcurrencias(Cadena, CaracteraQuitar))
  5.  
  6. function quitarOcurrencias(cadena, quitar) {
  7.  i = cadena.indexOf(quitar)
  8.  while (i >= 0) {
  9.    cadena = cadena.substring(0, i) + cadena.substring(i + quitar.length)
  10.    i = cadena.indexOf(quitar)
  11.  }
  12.  return cadena
  13. }
  14.  
  15. // Devuelve: 213

- indexOf busca una subcadena en una cadena, si la encuentra devuelve el índice de donde empieza la subcadena, devuelve -1 si no encuentra nada, hace la búsqueda de izquierda a derecha y solo hace una vez, por eso lo pongo en un bucle

En caso de B no puedes quitar mientras buscas, para ese caso debes marcar los caracteres a quitar y al final quitarlos

Código
  1. Cadena = "121213121";
  2. CaracteraQuitar = "121";
  3.  
  4. trace(quitarOcurrencias2(Cadena, CaracteraQuitar))
  5.  
  6. function quitarOcurrencias2(cadena, quitar) {
  7.  
  8.  i = 0
  9.  idx = cadena.indexOf(quitar, i)
  10.  if (idx < 0) return cadena //Si no hay ocurrencias salgo de inmediato
  11.  
  12.  for (marcas = []; idx >= 0; i = idx + 1, idx = cadena.indexOf(quitar, i)) {
  13.    for (j = 0; j < quitar.length; j++) {
  14.      marcas[idx + j] = true
  15.    }
  16.  }
  17.  
  18.  nuevaCadena = ""
  19.  for (i = 0; i < cadena.length; i++) {
  20.    if (marcas[i] != true) {
  21.      nuevaCadena += cadena.charAt(i)
  22.    }
  23.  }
  24.  
  25.  return nuevaCadena
  26. }
  27.  
  28. // Devuelve: 3

Para este caso igualmente utilizo indexOf pero le doy un parámetro extra que es el índice de caracter donde debe empezar a buscar la subcadena en la cadena, tengo un array para guardar las marcas de acuerdo a la posición de los caracteres, marco con true los caracteres que coinciden. Al final reviso los caracteres marcados y solo conservo los que no tienen marca

He usado FOR y como vez se complica un poquitín más y podría no ser muy legible XD, acá te dejo el equivalente con WHILE

Código
  1. Cadena = "121213121";
  2. CaracteraQuitar = "121";
  3.  
  4. trace(quitarOcurrencias2(Cadena, CaracteraQuitar))
  5.  
  6. function quitarOcurrencias2(cadena, quitar) {
  7.  
  8.  i = 0
  9.  idx = cadena.indexOf(quitar, i)
  10.  if (idx < 0) return cadena //Si no hay ocurrencias salgo de inmediato
  11.  
  12.  marcas = []
  13.  while (idx >=0) {
  14.    for (j = 0; j < quitar.length; j++) {
  15.      marcas[idx + j] = true
  16.    }
  17.    i = idx + 1
  18.    idx = cadena.indexOf(quitar, i)
  19.  }
  20.  
  21.  nuevaCadena = ""
  22.  for (i = 0; i < cadena.length; i++) {
  23.    if (marcas[i] != true) {
  24.      nuevaCadena += cadena.charAt(i)
  25.    }
  26.  }
  27.  
  28.  return nuevaCadena
  29. }
  30.  
  31. // Devuelve: 3
69  Programación / Programación General / Re: Ayuda con las funciones de string de AS 1.0. en: 18 Diciembre 2024, 14:20 pm
Citar
Según veo, es un array, de hecho la descripción dice que genera uno, ok. ¿Y lo puedo convertir en una cadena usando .join? Veo que no, por lo que dijo EdePC. ¿Entonces en este caso deberé usar un while?

El problema es de split("") en Flah5, join("") no tiene problemas, esto funciona perfectamente:

Código
  1. Fija = "12345";
  2.  
  3. Candidato = Random(5) + 1;
  4.  
  5. trace ("Probando el Candidato " + Candidato);
  6. NuevaFija = Fija.split(Candidato);
  7. trace ("NuevaFija: " + NuevaFija);
  8.  
  9. NuevaFija = Fija.split(Candidato).join("");
  10. trace ("NuevaFija: " + NuevaFija);
70  Informática / Software / Re: Dudas sobre John the Ripper. en: 7 Diciembre 2024, 18:55 pm
Código
  1. john --wordlist=Mywords.txt rar.hashes

Supongo, debes entender como funcionan los programas por línea de comandos:

programa parámetro_1 parámetro_2 parámetro_3 etc

En caso de john los parámetros en sí pueden tener subparámetros (valor), entre cada parámetro hay un espacio en blanco como separador:

programa parámtro_1=valor_1 parámetro_2
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines