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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 ... 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 [68] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 431
671  Seguridad Informática / Seguridad / Re: Ransomware en: 12 Septiembre 2021, 16:27 pm
Para eso necesitaría otro disco duro... entonces sería mas sencillo guardar ese disco como esta e instalar el SO en el otro disco... o sea...
Sí... Pero, entiende que depende de las particiones que tenga y del tamaño de las mismas. Lo habitual es que sea la unidad de arranque la que quede cifrada, no el resto, además la partición de arranque suele ser la de menor tamaño.
Luego basta con clonar la partición de arranque. Si retira el disco e instala en otro, tendrá que 'pasar' el resto de particiones a ese nuevo... (que asumo será mucho más trabajo). Si solo tiene una partición, desde luego es más simple guardar este e instalar uno nuevo, pero es de suponer que a la hora de ponerse manos a la obra, se dará cuenta de la equivalencia.
672  Seguridad Informática / Seguridad / Re: Ransomware en: 12 Septiembre 2021, 15:54 pm
Si tienes datos que para tí son de mucho interés, lo que podrías hacer es clonar el disco duro, asi en ese disco manrtienes copia de todo por si en un futuro...
Y luego formateas el disco duro y reinstalas todo... al menos no pierdes tiempo si necesitas usar tu equipo para otras cosas.

Ese otro disco clonado, sería conveniente que montado en algún equipo, o lo montas en solitario o lo montas como esclavo pero sin autoarranque, y solo cuando tengas intención de ver si puedes resolver el cifrado de los ficheros...

El cifrado que tenga presuntamente es dífícil de resolver, porque pudiera ser un cifrado particular, pero sobretodo porque nadie va a invertir el tiempo suficiente en investigarlo 'por nada'...
Si el interesado tiene el conocimiento suficiente y sabiendo cuanto de interés haya en los ficheros cifrados, él mismo decidirá si invertir ese tiempo merece o no el esfuerzo de abordarlo, para el resto suele ser una pérdida de tiempo.
673  Programación / Programación General / Re: Algoritmo de búsqueda para estructura de datos anidados en: 12 Septiembre 2021, 00:56 am
Había puesto uan solución en forma de árbol, pero después de releerte como te viene un array, y necesitas hacer búsquedas es preferible tirar de una tabla hash (es más rápido en funcionamiento). Desconozco si estás forzado a algo predeterminado, pues no lo especificas).
Has dejado al aire ciertas cuestiones, como si puede modificarse los elementos de la clase, asumo que sí pues no lo acotas (aunque no lo llevo al terreno de árboles, porque quizás serían más cambios de los que te cabría pensar).

Supongamos que tu array ha de contener a lo sumo 100-200 elementos... no es mala idea proveer entonces un array de alrededor de 1000 elementos, donde podrán buscarse en tiempo 1 por hash.

Deájeme que simplifique el nombre del array a simplemente 'datos', e igualmente siempre me acomoda más usar paréntesis que llaves (son diferencias 'habituales' de la herencia entre Fortran y Algol que han trascendido hasta los lenguajes de hoy)...

Te llega el array, lo hasheas...
Código:
entero constante PRIMO_X = 1021  
entero arrayHash(0 a PRIMO_X - 1)
entero espacioLibre
Menu datos()


// Cuando se recibe el array 'datos'... se invoca esta función.
funcion SetArray()
    Menu item
    
    borrarTablaHash
    por cada item en datos()      
        add(item.Name, k)
    siguiente
Fin funcion

Con esto ya tenemos todos los datos portados al arrayHash...
La búsqueda sería:
NOTA: No se provee solución al caso de una búsqueda sin haber recibido aún los datos, queda a tu esfuerzo dicho código, como para todas las comprobaciones 'obvias', además para no extenderse más de lo preciso.
Código:
Menu = Funcion Buscar(string Nombre)
    entero j, k

    k = Hashing(Nombre)
    Si Existe(nombre, k) = TRUE
        devolver datos(k)
    sino
        devolver null // no encontrado
    fin si
fin funcion

Si existe (por referencia devuelve el índice donde se localiza en otro caso devuelve -1
Esta función típicamente es privada, la pública es 'buscar'.
Aquí se resuelven las colisiones... que es lo que hace la función un poco más compleja.
Código:
buleano = funcion Existe(string Nombre,por referencia entero index)
    entero j, k

    k= index
    Hacer
        j = arrayHash(index)
        
        si (j => 0) // Si existe
            si (datos(j).Nombre = nombre)  // Comprobar si se trata de una colisión...
                 index = j     // ojo... es devuelto por referencia.
                 devolver TRUE
            sino  // una colisión se resuelve buscando el próximo hueco libre.
                index = ((index + 1) modulo PRIMO_X)
                si (index = k) devolver FALSE   // evitar bucle infinito...
            fin si
        sino
            devolver FALSE
        fin si            
    repetir  
fin funcion
El bucle es incondicional, pero dentro está totalmente controlado. No es un bucle infinito a lo sumo recorre 1 vez todo el array de la tabla hash si está mal programado.
NOTA: (es la única comprobación que te pongo, porque para un novato 'puede ser fácil', incurrir en tal error...)

Restan las funciones Add, Hashing, etc...
Código:
buleano = funcion add(string name, entero index)
    entero j,k

    k = Hashing(name)
    si Existe(name, k) = FALSE
        arrayHash(k) = index
        espacioLibre -= 1

        devolver TRUE ó k     // la devoluión es opcional... según el diseño y si otros métodos precisan más info...
    sino
        devolver FALSE ó -1    
    fin si
fin funcion

Se supone que la tabla hash es de un tamaño mucho mayor que el array 'datos', y que por ello siempre encontrará un hueco. 'espacioLibre', sirve para controlar esto...
Queda a tu esfuerzo que si se añaden elementos dinámicamente y hay una alta ocupación (cae el rendimiento de añadir y buscar, elementos) redimensionar la tabla a un tamaño mayor haciendo un rehashing de todos los elementos.
Como todo esto es algo más elaborado, no es para 'novatos', cuando te adentres más en la programación, ya explorarás medidas para controlar tamaño de tabla hash, funciones mejor diseñadas para evitar colisiones y como resolverlas, etc...). Mientras, para un simple ejemplo esto es suficiente...


Código:
// Borramos datos previos que constaran en la tabla hash
funcion borrarTabla
    entero k

    bucle para k desde 0 hasta PRIMO_X-1
        arrayHash(k) = -1
    siguiente  
    espacioLibre = PRIMO_X
fin funcion

entero = funcion Hashing(string nombre)
    entero j, k

    por cada par de caracteres (a,b) en nombre
        j += (a*b)  // se entiende que por 'a' y 'b' tomamos el valor del byte que supone cada char, superando el overflow del byte...
    siguiente

    Si tamaño(nombre) es impar
       j += (nombre.primercarater * nombre.ultimocaracter)
    fin si
  
    devolver (j modulo PRIMO_X)  // si se usa un solo valor debe ser primo, de otro modo las colisiones serán muy numerosas.
fin funcion
Y para algo básico eso es todo. Te toca pasar el pseudocódigo a código si quieres implementarlo o no si simplemente te basta con entenderlo (la práctica ayuda a la teoría).

Ahora algunas aclaraciones...
- La tabla hash puede a su vez ser una clase para que la lógica quede más clara, especialmente si se añaden más métodos... pués así encapsula toda su operatoria separada del resto, ahora mientras sean pocos métodos no enturbia que quede conjunto...
- Si la clase solo va a contener datos y no funcionalidad, quizás fuera preferible usar una estructura en vez de una clase (depende de otros factores, pero intenta examinar si es suficiente con una estructura).
- Si el campo 'Name', admite estar repetido, entonces el hashing no será aceptable. Para el hashing debe proveerse un campo de valor único (no repetible, en palabras claras), si no hay más remedio usa otro campo o bien concaténalo con URL, o incluso con 'id'... es decir con otro campo cuyo valor sea único.
- Sería conforme que tu clase contuviera un nodo 'parent' así tras la búsqueda exitosa, es fácil llegar hasta el padre x es meramente un bucle cuya funcionalidad es fácil de añadir... Ahora quizás dicho enlace esté señalado con el índice del campo 'Id'.... pero no hay suficientes explicaciones que lo aclaren.
- Si lo que te piden es un recorrido en profundidad (inorden, preorden, postorden), no me consta que quede aclarado, y he partido de la presunción de que tienes más código y bastante claro lo que te piden/quieres y has simplificado por la razón que sea. Con esos recorridos (no una búsqueda por nombre), conviene ceñirse entonces a un diseño de árbol en todo su concepto, en cambio si tienes libertad de elección esta solución suele ser la más eficaz, para búsqueda.
- Si el código es para tí (no un encargo para una empresa o cursillo) y si tu lengua materna no es el inglés, no veo motivo para que uses términos en inglés... (a mi me suena un poco pedante, pero es solo mi impresión otros opinarán distinto).
- Este pseudocódigo es mucho más eficiente que otras soluciones, si bien la función hash es bastante 'simple' y el valor del primo se ha elegido en base a la hipótesis de que tu array de datos no tendrá más de 200 elementos (el tamaño del array de la tabla hash debe mantener cierta premisa de proporción respecto de la cantidad máxima de elementos, si no es definible entonces debe ser un tamaño dinámico (que es algo más avanzado)...
 
Si tienes alguna duda, pregunta, pero procura ser claro, sin ausmir que uno tiene acceso a la especificación completa de lo que te piden, si no al final uno no hace más que asumir tal o cual cosa, donde la duda acecha.

...creo que se me queda alguna cosa en el tintero de las que tenía que señalarte, pero (mientas) al escribir al vuelo, es normal que luego unas se te vayan de la cabeza...
674  Programación / Programación General / Re: Algoritmo de búsqueda para estructura de datos anidados en: 9 Septiembre 2021, 23:25 pm
...Mi solución fue muy engorrosa, por lo cual me gustaría saber si hay una forma simple  de hacerlo.
Si no pones algo de código/pseudocódigo/detalles del 'como lo hiciste'... aparte de meramente una estructura, cómo sabe nadie que se trata de una tarea (camuflada como un interés particular)???.

Cuando tenga más tiempo repaso el código y comento qué hice.
Ídem... cuando tengas ese tiempo para poner tu código o comentar qué hiciste, veremos de tener tiempo para responder a vuesa merced.
675  Foros Generales / Dudas Generales / Re: Ayuda para hackear mail de mi hermana fallecida en: 9 Septiembre 2021, 18:48 pm
...necesito ayuda para hackear su mail ya que lo necesito para un tramite...
Como bien te apunta taimito, es más bien al revés de lo que tú dices:
Necesitas un trámite (legal) para acceder a su email...

Si posees su tf. digo yo, que desde el mismo (si no tiene restringido el acceso al mismo), podrías entrar en su cuenta. Si el tf. está bloqueado, estarás con él en una situación similar al del correo.

Hay todavía una posibilidad remota según el correo usado.
Por ejemplo Gmail, permite que una cuenta de correo defina a otra, como cuenta de recuperación. Es decir si tu hermana configuró dicho caso y te puso a tí... simplemente con que al intentar entrar pinches en 'no recuerdo la contraseña', siguiendo las opciones podrás indicarle que te envíe a la cuenta de recuperación el enlace de recuperación... desde él podrás cambiar la contraseña y acceder a dicha cuenta. No recuerdo si incluso desde la cuenta de recuperación se puede intervenir directamente sin siquiera dicha solicitud (hace una eternidad que no he precisado recurrir a tal eventualidad, y no recuerdo ahora los detalles exactos, al margen de lo que desde entonces haya cambiado).
Si no es el caso de que 'tu hermana', te pusiera a ti como figurante para la cuenta de recuperación, consulta a amigos y familiares a ver si alguno lo es o sabe quien es, en cuyo caso (y si ellos consideran legítima tus intenciones), podrían proveerte el acceso una vez ellos restablezcan la contraseña.
Si tu hermanan no configuró tal opción, te toca hacer trámites legales. Las cuentas de correos no se borran hasta pasado muchos meses de inactividad, a menudo incluso años, así tienes tiempo para hacer esos trámites, pero tampoco conviene dormirse.
676  Foros Generales / Dudas Generales / Re: Qué aprender al principio? Algún libro recomendado? en: 9 Septiembre 2021, 18:35 pm
El libro de Tanenbaum, es también excelente como primer pisada en el mundillo... tiene algunos añitos más, pero la gente de hoy suele despreciar todo lo que sea anterior al 2000...
677  Foros Generales / Dudas Generales / Re: Qué aprender al principio? Algún libro recomendado? en: 9 Septiembre 2021, 03:49 am
Por favor, no digas que no hay libros, más bien que no los conoces...


Bridges, Routers, Switches and Internetworking Protocols 2e - de Perlman
Wireless Networks For Dummies - de Lewis
Wireless Networking - Know it All - de Newnes
Networking For Dummies 7e - de Lowe
Ethernet Networks 4th ed. - de Held
Network Security Bible - de Cole
Hacker's Handbook,The - Breaking and Defending Networks - de Young
Practical TCP-IP and Ethernet Networking - de Reynders
Network Routing - Algorithms, Protocols and Architectures - de Medhi
Complete Guide to Network Wiring,The - 3rd ed - de Barnett (y otros)
Kismet Hacking (wireless networks) - de Haines
Tracking Hackers - de Spitzner
Computer Viruses and Malware - de Aycock
Computer Viruses - From Theory to Applications - de Filiol
Communication Systems 4e - de Carlson
Computer Systems Architecture - Networking Approach 2e - de Williams
Internetworking with TCP-IP - Vol. I - Principles, Protocols and Arch. 4e - de Comer (son 3 volúmenes)
Network Analysis, Architecture and Design 3e - de McCabe
Governing Global Electronic Networks - de Drake
Book of Wireless 2e,The - de Ross
Web Application Hacker's Handbook,The - de Stuttard
Cryptography and Network Security Principles and Practices, 4th Ed - de Stallings
Network Security Technologies 2e - de Fung
Data Networks, IP and the Internet - Protocols, Design and Operation - de Clark
Broadband Bible - de Gaskin
Best Damn Cybercrime and Digital Forensics Book - de Syngress
Communicating Systems and Networks - Traffic, Performance - de Fiche (y otros)
Definitive Guide to Linux Network Programming - de Davis
Network Administration with FreeBSD - de Farrokhi
Linux Networking Cookbook - de Schroder
Linux TCP-IP Stack - Networking for Embedded Systems - de Herbert
Network Security with OpenSSL - de Chandra
Applied Cryptanalysis - Breaking Ciphers in the Real World - de Stamp
Buffer Overflow Attacks - Detect, Exploit, Prevent - de Foster
Botnets - The Killer Web App - de Schiller
Teach Yourself Wireless Java with J2ME in 21 Days - de Morrison
Insider Attack and Cyber Security - Beyond the Hacker - de Stolfo
Intro to Network Analysis 2nd ed. - de Chappell
Network Infrastructure and Architecture - de Iniewski
Hackers Beware - Defending Your Network from the Wiley Hacker - de Cole
Encyclopedia of Multimedia Technology and Networking - de Pagani
Networking and Internetworking with Microcontrollers - de Eady


Aquí un amplio listado, la mayoría sobre redes y unos pocos enfocados en seguridad o más específicos en su temática.
La idea de este listado es que selecciones los de tu interés, ya comprarlos o ver si los localizas en pdf es cosa tuya.
Tienen sus años. He procurado que no sean anterior al 2000, aunque creo que alguno se me habrá escapado. Las bases siempre conviene conocerlas y ver como el tiempo lo cambia, o se incluyen añadidos... Es bueno por ello, leer primero los más viejos (de los que adquieras), pero queda a criterio del que lea.
678  Foros Generales / Noticias / Re: Microsoft actualiza los requisitos para Windows 11: se podrá instalar en equipos antiguos, pero sin actualizaciones en: 9 Septiembre 2021, 02:53 am
el dejar atrás 32 bits, no es para nada mala idea el heredado trae mas problemas que beneficios... por otro lado es emulable
Deja obsoleto todo lo diseñado... es tirar a la basura millones de horas de trabajo. Si lo mismo se aplicara en todas las áreas, no quiero ni pensarlo.
...pero una pequeño desvelo de imaginario: Un nuevo vehículo trae un nuevo diseño de tornillos que solo valen para los vehículos fabricados en ese y los 4 años siguientes, luego dejamos de fabricarlos y los nuevos modelos tendrán otros tornillos distintos...

Si yo fuera fabricante de chips, la aparición de una arquitectura donde duplica el tamaño del bús, no haría desaparecer la previa, simplemente seguiría conteniendo internamente un chip de 32 bits conjunto al de 64 bits... y cuando apareció el de 32, a su vez alojaría también uno de 16 bits y aquél a su vez el de 8 bits.
Es más lo desieñadría para que uno de 64 bits pudiera funcionar como también como dos de 32 bits, o como uno de 32 bits y 2 de 16 bits, o uno de 32 + 1 de 16bits, + 2 de 8 bits...  Dicho comportamiento sería configurable desde la BIOS... Lógicamente el diseño debe acompañar a la intención.

No hay que perder de vista que los chips de hoy día llevan miles de milones de transistores... por ejemplo el 8086 llevaba solo 29.000 transistores, el 80386 se iba ya a los 275.000 y el 80486 a algo más de los 4 millones de transistores... en resumen una minuta, comparada con los procesadores de hoy día, por poner un ejemplo el ryzen 1000 (el mas peque de la gama) contiene 4.800 millones de transistores. Los procesadores previos, como se suele decir: "caben en el hueco de la muela" de los actuales.

Una comparativa del número de transistores que calzan los procesadores andando en el tiempo...


Claro que la forma y diseño actual en que evolucionan complica en exceso imposibilita esta tentativa (no se diseñan pensando en esto), porque tras salir una nueva arquitectura que duplica el tamaño de las líneas de sus buses, luego acaban saliendo múltiples versiones, que atienden la mitad de las veces a cuestiones mercantiles (una versión más barata o con menor consumo para...) y la otra mitad a razones tecnológicas (corregir errores, añadir alguna instrucción, ampliar la memoria caché, y más modernamente el número de núcleos), lo que practicamente imposibilita adjuntar en uno nuevo qué versión de los previos?. No se diseñan con esa intencionalidad, luego resulta imposible, pero a mi nunca me ha parecido mala idea.
679  Foros Generales / Foro Libre / Re: Detectan misteriosas señales de radio emitidas desde el centro de nuestra galaxia en: 9 Septiembre 2021, 01:53 am
Los científicos opinan que en el centro de cada galaxia hay (al menos) un agujero negro (y al menos intuitivamente tiene lógica).
Siendo así, y el carácter 'tan extraño' de los agujeros negros, no es de extrañar que en sus inmediaciones (aunque actualmente fuera del cerco de atracción sin retorno), se produzcan diversos fenómenos que no aparezcan en otros lugares de las galaxias y cuyas explicaciones tarden en ser definidas sin ambigüedad.
Después de todo, la galaxia entera está a merced de su gravedad, y pasando el tiempo todo lo que ahora está en los brazos espirales acabarán ocupando el sitio de donde ahora vienen esas señales.
680  Programación / Desarrollo Web / Re: [pregunta]: keycode 8 o keycode 46 para borrar? en: 9 Septiembre 2021, 01:27 am
Las dos borran con una ligera diferencia:
La tecla 8, borra a la izquierda del cursor (si hay algo).
La tecla 46, borra a la derecha del cursor (si hay algo).
Páginas: 1 ... 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 [68] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines