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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14
21  Foros Generales / Foro Libre / Re: ¿Por que la tonteria con los test de ADN? en: 9 Junio 2018, 21:13 pm
Basicamente:

http://southpark.cc.com/episodios-en-espanol/s21e03-especial-de-feriado


"Si una persona tiene descendencia afroamericana no pueden tacharlo de racista"
No tiene ningún sentido, pero hay gente que piensa así.
22  Sistemas Operativos / Windows / Re: [AYUDA!!!] Mover partición "Reservado para el sistema" en: 16 Mayo 2018, 14:16 pm
Pude solucionarlo, marque la particion como activa pero me salia un mensaje de error:
Falta bootmgr Ctrl+Alt+Supr para reiniciar

Copie los archivos bootmgr y bootmgr.efi desde C:\Windows\Boot\EFI|PCAT  a C:\
Luego me salia el siguiente error:
The Boot Configuration Data for your PC is missing or contains errors. \BOOT\BCD

Inicie desde un LiveCD y copie la partición System Reserved a C:\ et Voilà! todo funciona sin problemas.

El USB de instalación de Windows 7 no me detectaba la instalación y por ende no me dejaba repararla.
23  Sistemas Operativos / Windows / Re: [AYUDA!!!] Mover partición "Reservado para el sistema" en: 16 Mayo 2018, 03:06 am
Al darle a Reparar no me aparece la instalación de Windows 7.

Cuando debería verse algo así:


El disco si lo detecta (puedo acceder a él desde el cuadro de diagolo que aparece en "Cargar Controladores"), por lo que no creo que sea un tema de drivers.
El SSD es un Kingston ssdNOW UV300 120GB y la placa base MSI Z170A GAMING M3.



24  Sistemas Operativos / Windows / [AYUDA!!!] Mover partición "Reservado para el sistema" en: 16 Mayo 2018, 00:15 am
Hola, tengo tres unidades de almacenamiento:
  • SSD 120GB Sistema Operativo
  • HDD 500GB (particion de 100MB Reservado para el sistema)
  • HDD 1TB

¿Cómo puedo mover la particion: "Reservado para el sistema" 100MB NTFS Correcto (Sistema, Activo, Partición Primaria) del disco de 500GB a alguno de los otros sin tener que reinstalar el Sistema Operativo?

Puedo redimensionar los otros dos discos y formatear el de 1TB si fuera necesario, uso Windows 7 Ultimate SP1 y dispongo de la ISO.

El problema que tengo es que si quito el disco de 500GB me sale el siguiente mensaje luego de la BIOS:
"Reboot and Select proper Boot device or Insert Boot Media in selected Boot device and press a key"
25  Sistemas Operativos / Windows / Re: Administrador en Win 10 en: 7 Abril 2018, 01:52 am
Click en el icono de Windows
Selecciona "Configuración"
Click en "Cuentas"
Click en "Familia y otros usuarios"
Click en "Agregar a alguien más a este PC"
Seleccionar "No tengo la informacion de registro de esa persona"
Seleccionar "Agragar usuario sin cuenta de Microsoft"
Ingresar un nombre de usuario y escribir la contraseña dos veces, ingresar una pista y clickear siguiente.
Click en el icono de Windows
Seleccionar el icono de usuario de las esquina superior izquierda del Menú Inicio
Seleccionar el nuevo usuario.
Luego ingresa a la cuenta con la contraseña anterior.
26  Informática / Hardware / Re: Procesador en: 31 Marzo 2018, 17:24 pm
Aprende a escribir.
27  Foros Generales / Noticias / Re: Mozilla inicia una petición de firmas para pedir a Facebook que mejore la ... en: 22 Marzo 2018, 17:29 pm
Totalmente de acuerdo.

...pero qué se puede esperar?...después de todo, Zuckerberg, (parece que) es sólo un niñato malcriado, que tuvo una buena idea y consiguió el dinero necesario para llevarlo a cabo...

En realidad un millonario le pago para que deje de estudiar y creará Facebook. Y la idea era hacer un álbum de fotos de fin de curso. Así que sí, básicamente es un ***** con suerte.
28  Programación / Programación C/C++ / Re: Ayuda juego Mastermind en C++ en: 10 Diciembre 2017, 20:02 pm
Aquí lo tienes en C++ más reducido, este no muestra el historial de intentos.

También tengo una IA que busca las mejores combinaciones en base a los intentos anteriores.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <time.h>
  5.  
  6. const int MAXIMO_INTENTOS = 20;
  7. const int LARGO_CODIGO = 6;
  8. const char PRIMERA_LETRA = 'A';
  9. const char ULTIMA_LETRA = 'H';
  10.  
  11. typedef char TipoCodigo[LARGO_CODIGO + 1];
  12.  
  13. bool EsValido(TipoCodigo codigo) {
  14. // Devuelve true si el codigo es valido.
  15. int i = 1;
  16. while (i <= LARGO_CODIGO && codigo[i] >= PRIMERA_LETRA && codigo[i] <= ULTIMA_LETRA)
  17. i++;
  18. // Es valido si todos los elementos del codigo estan en el rango.
  19. return i > LARGO_CODIGO;
  20. }
  21.  
  22. void ObtenerNota(TipoCodigo propuesta, TipoCodigo codigo, unsigned int &buenos, unsigned int &regulares) {
  23. // Obtener cantidad de buenos y regulares entre dos codigos.
  24. TipoCodigo propuestacopia;
  25. buenos = 0;
  26. for (int i = 1; i <= LARGO_CODIGO; i++) {
  27. if (propuesta[i] == codigo[i]) buenos++;
  28. propuestacopia[i] = propuesta[i];
  29. }
  30. int max = 0;
  31. // Hallar la "maxima" cantidad de buenos.
  32. for (int i = 1; i <= LARGO_CODIGO; i++) {
  33. int j = 1;
  34. while (j <= LARGO_CODIGO && codigo[i] != propuestacopia[j]) j++;
  35. if (j <= LARGO_CODIGO) {
  36. // Borrar la letra para no volver a usar la misma.
  37. propuestacopia[j] = ' ';
  38. max++;
  39. }
  40. }
  41. regulares = max - buenos;
  42. }
  43.  
  44. void GenerarCodigo(TipoCodigo &codigo) {
  45. // Generar codigo aleatorio
  46. int ord_prim = (int)PRIMERA_LETRA;
  47. int ord_ult = (int)ULTIMA_LETRA;
  48. for (int i = 1; i <= LARGO_CODIGO; i++)
  49. codigo[i] = ord_prim + rand() % (ord_ult - ord_prim + 1);
  50. }
  51.  
  52. void LeerCodigo(TipoCodigo &codigo) {
  53. char c;
  54. for (int i = 1; i <= LARGO_CODIGO; i++) {
  55. scanf("%c", &c);
  56. codigo[i] = toupper(c);
  57. }
  58. do {
  59. c = getchar();
  60. } while (c != '\n');
  61. }
  62.  
  63. int main() {
  64. srand(time(NULL));
  65. TipoCodigo secreto;
  66. GenerarCodigo(secreto);
  67. int intentos = 0;
  68. bool exito = false;
  69. bool fracaso = false;
  70. printf("He pensado un codigo, intenta adivinarlo.\n");
  71. printf("*Pista: tiene %d letras y estas estan entre la %c y la %c\n", LARGO_CODIGO, PRIMERA_LETRA, ULTIMA_LETRA);
  72. printf("Las letras pueden repetirse o no aparecer en el codigo, y solo tienes %d intentos.\n\n", MAXIMO_INTENTOS);
  73. do {
  74. TipoCodigo codigo;
  75. LeerCodigo(codigo);
  76. while (!EsValido(codigo)) {
  77. printf("El codigo no es valido, intentalo de nuevo.\n");
  78. LeerCodigo(codigo);
  79. }
  80. intentos++;
  81. unsigned int buenos, regulares;
  82. ObtenerNota(codigo, secreto, buenos, regulares);
  83. if (buenos == LARGO_CODIGO) exito = true;
  84. else if (intentos == MAXIMO_INTENTOS) fracaso = true;
  85. else {
  86. printf("B: %d   R: %d", buenos, regulares);
  87. printf("                      Te quedan %d intentos\n", MAXIMO_INTENTOS - intentos);
  88. }
  89. } while (!(exito || fracaso));
  90.  
  91. printf("\n\n");
  92. if (exito) printf("***** FELICIDADES, has ganado. *****\n");
  93. else {
  94. printf("--- Demasiados intentos, perdiste. ---\n");
  95. printf("El codigo secreto era: ");
  96. for (int i = 1; i <= LARGO_CODIGO; i++) printf("%c", secreto[i]);
  97. }
  98. printf("\n");
  99. }
29  Programación / Programación C/C++ / Re: Ayuda juego Mastermind en C++ en: 10 Diciembre 2017, 17:58 pm
Este es un codigo que hice hace varios años en Pascal, se puede pasar a C muy fácil.

"Regulares" es a lo que tu llamas heridos y "buenos" es muertos.
ObtenerNota haya dichos valores en el codigo, en este caso tiene un largo de seis letras que pueden ir de la A a la H

Código
  1. PROCEDURE ObtenerNota(propuesta, codigo: TipoCodigo; VAR buenos, regulares: RangoBR);

Código
  1. void ObtenerNota(TipoCodigo propuesta, TipoCodigo codigo, RangoBR &buenos, RangoBR &regulares) {

Código
  1. PROGRAM MasterMind (input, output);
  2. CONST
  3. MAXIMO_INTENTOS = 20;
  4. LARGO_CODIGO = 6;
  5. PRIMERA_LETRA = 'A';
  6. ULTIMA_LETRA = 'H';
  7. TYPE
  8. RangoCodigo = 1..LARGO_CODIGO;
  9. TipoCodigo = ARRAY [RangoCodigo] OF Char;
  10.  
  11. RangoBR = 0..LARGO_CODIGO;
  12. TRegistroNota = RECORD
  13. codigo: TipoCodigo;
  14. buenos,
  15. regulares: RangoBR
  16. END;
  17.  
  18.    THistoria = RECORD
  19. info: ARRAY [1..MAXIMO_INTENTOS] OF TRegistroNota;
  20. tope: 0..MAXIMO_INTENTOS
  21. END;
  22.  
  23. ListaNotas = ^CeldaNota;
  24. CeldaNota = RECORD
  25. codigo: TipoCodigo;
  26. buenos,
  27. regulares: RangoBR;
  28. turno: 1..MAXIMO_INTENTOS;
  29. siguiente: ListaNotas
  30. END;
  31. VAR
  32. secreto, codigo: TipoCodigo;
  33. historia: THistoria;
  34. buenos, regulares: RangoBR;
  35. i, intentos: Integer;
  36. exito, fracaso: Boolean;
  37. lista: ListaNotas;
  38.  
  39. FUNCTION EsValido(codigo: TipoCodigo): Boolean;
  40. VAR
  41. i: Integer;
  42. BEGIN
  43. i := 1;
  44. WHILE (i <= LARGO_CODIGO) AND (codigo[i] >= PRIMERA_LETRA) AND (codigo[i] <= ULTIMA_LETRA) DO
  45. i := i + 1;
  46. EsValido :=  i > LARGO_CODIGO
  47. END;
  48.  
  49. PROCEDURE ObtenerNota(propuesta, codigo: TipoCodigo; VAR buenos, regulares: RangoBR);
  50. VAR
  51. i, j, max: Integer;
  52. propuestacopia: TipoCodigo;
  53. BEGIN
  54. buenos := 0;
  55. FOR i := 1 TO LARGO_CODIGO DO
  56. BEGIN
  57. IF propuesta[i] = codigo[i] THEN
  58. buenos := buenos + 1;
  59. propuestacopia[i] := propuesta[i]
  60. END;
  61. max := 0;
  62. FOR i := 1 TO LARGO_CODIGO DO
  63. BEGIN
  64. j := 1;
  65. WHILE (j <= LARGO_CODIGO) AND (codigo[i] <> propuestacopia[j]) DO
  66. j := j + 1;
  67. IF j <= LARGO_CODIGO THEN
  68. BEGIN
  69. max := max + 1;
  70. propuestacopia[j] := ' '
  71. END
  72. END;
  73. regulares := max - buenos
  74. END;
  75.  
  76. PROCEDURE IniciarHistoria(VAR historia: THistoria);
  77. BEGIN
  78. WITH historia DO
  79. tope := 0
  80. END;
  81.  
  82. PROCEDURE GuardarNota(VAR historia: THistoria;
  83. codigo: TipoCodigo;
  84. buenos, regulares: RangoBR);
  85. VAR
  86. i: Integer;
  87. BEGIN
  88. WITH historia DO
  89. BEGIN
  90. tope := tope + 1;
  91. FOR i := 1 TO LARGO_CODIGO DO
  92. info[tope].codigo[i] := codigo[i];
  93. info[tope].buenos := buenos;
  94. info[tope].regulares := regulares
  95. END
  96. END;
  97.  
  98. FUNCTION ListaOrdenada(historia: THistoria): ListaNotas;
  99. VAR
  100. i, j: Integer;
  101. p, actual, anterior, lista: ListaNotas;
  102. BEGIN
  103. lista := NIL;
  104. FOR i := 1 TO historia.tope DO
  105. BEGIN
  106. new(p);
  107. FOR j := 1 TO LARGO_CODIGO DO
  108. p^.codigo[j] := historia.info[i].codigo[j];
  109. p^.buenos := historia.info[i].buenos;
  110. p^.regulares := historia.info[i].regulares;
  111. p^.turno := i;
  112.  
  113. actual := lista;
  114. anterior := lista;
  115. WHILE (actual <> NIL) AND (10 * actual^.buenos + actual^.regulares <= 10 * p^.buenos + p^.regulares) DO
  116. BEGIN
  117. anterior := actual;
  118. actual := actual^.siguiente
  119. END;
  120. IF (anterior = NIL) OR (anterior = actual) THEN
  121. BEGIN
  122. p^.siguiente := anterior;
  123. lista := p
  124. END
  125. ELSE
  126. BEGIN
  127. p^.siguiente := actual;
  128. anterior^.siguiente := p
  129. END
  130. END;
  131. ListaOrdenada := lista
  132. END;
  133.  
  134. PROCEDURE GenerarCodigo(VAR codigo: TipoCodigo);
  135. VAR
  136. i: Integer;
  137. ordprim, ordult: Integer;
  138. BEGIN
  139. ordprim := ord(PRIMERA_LETRA);
  140. ordult  := ord(ULTIMA_LETRA);
  141. FOR i := 1 TO LARGO_CODIGO DO
  142. codigo[i] := chr(ordprim + random(ordult - ordprim + 1))
  143. END;
  144.  
  145. PROCEDURE LeerCodigo(VAR codigo: TipoCodigo);
  146. VAR
  147. i: Integer;
  148. BEGIN
  149. FOR i := 1 TO LARGO_CODIGO DO
  150. Read(codigo[i]);
  151. ReadLn
  152. END;
  153.  
  154. (* ------ Programa Principal ------ *)
  155. BEGIN
  156. Randomize;
  157. IniciarHistoria(historia);
  158. GenerarCodigo(secreto);
  159. intentos := 0;
  160. exito := false;
  161. fracaso := false;
  162. WriteLn('He pensado un codigo, intenta adivinarlo.');
  163. WriteLn('*Pista: tiene ', LARGO_CODIGO, ' letras y estas estan entre la ', PRIMERA_LETRA, ' y la ', ULTIMA_LETRA);
  164. WriteLn('Las letras pueden repetirse o no aparecer en mi codigo, y solo tienes ', MAXIMO_INTENTOS, ' intentos.');
  165. WriteLn;
  166. REPEAT
  167. LeerCodigo(codigo);
  168. WHILE NOT EsValido(codigo) DO
  169. BEGIN
  170. WriteLn('El codigo no es valido, intentalo de nuevo.');
  171. LeerCodigo(codigo)
  172. END;
  173. intentos := intentos + 1;
  174. ObtenerNota(codigo, secreto, buenos, regulares);
  175. IF buenos = LARGO_CODIGO THEN
  176. exito := true
  177. ELSE IF intentos = MAXIMO_INTENTOS THEN
  178. fracaso := true
  179. ELSE
  180. BEGIN
  181. Write('B: ', buenos, '   R: ', regulares);
  182. WriteLn('                      Te quedan ', MAXIMO_INTENTOS - intentos, ' intentos')
  183. END;
  184. GuardarNota(historia, codigo, buenos, regulares)
  185. UNTIL exito OR fracaso;
  186. WriteLn;
  187. WriteLn;
  188. IF exito THEN
  189. WriteLn('***** FELICIDADES, has ganado. *****')
  190. ELSE
  191. BEGIN
  192. WriteLn('--- Demasiados intentos, perdiste. ---');
  193. Write  ('    El codigo secreto era: ');
  194. FOR i := 1 TO LARGO_CODIGO DO
  195. Write(secreto[i])
  196. END;
  197. WriteLn;
  198. WriteLn;
  199. lista := ListaOrdenada(historia);
  200. WHILE lista <> NIL DO
  201. BEGIN
  202. FOR i := 1 TO LARGO_CODIGO DO
  203. Write(lista^.codigo[i]);
  204. Write(' -->  Bs = ', lista^.buenos, ',  Rs = ', lista^.regulares, ' (Turno: ', lista^.turno, ')');
  205. WriteLn;
  206. lista := lista^.siguiente
  207. END;
  208. ReadLn
  209. END.
30  Seguridad Informática / Hacking Wireless / Re: Logran romper la seguridad de todas las redes Wi-Fi en: 16 Octubre 2017, 17:03 pm

A mi lo que me llama la atención es esto:

https://www.kb.cert.org/vuls/id/228519

Parece que varios proveedores han sido notificados hace casi 2 meses y casi NINGUNO ha hecho nada por parchar, y solo MikroTik se ha manifestado sobre el asunto. Creo que está perfecto que se lo publique dado que se ha tratado el asunto con cautela, ya es hora de poner presión o nadie hará nada.

We sent out notifications to vendors whose products we tested ourselves around 14 July 2017.

Primero se creia que era un bug en la implementación, luego se dieron cuenta de que era una vulnerabilidad del protocolo. OpenBSD lanzo un parche en silencio en Agosto, es posible que alguien lo descubriese y haya explotado la vulnerabilidad.


Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines