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 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 436
391  Informática / Software / Re: Proteccion contra Clonacion de HDD en: 1 Abril 2022, 01:51 am
Clonar un disco duro (en un PC al que se tiene pleno acceso), no puede evitarse... clonar un disco duro, implica que ese disco opera como esclavo y es clonado desde otra unidad (otro disco duro o un CD de arranque), luego el disco duro siendo clonado no tiene control de lo que se haga con él.

Por otro lado, al clonar un disco duro, no podrá instalarse si no en otro equipo con el mismo hardware, ya que cualquier diferencia implica que los drivers instalados van a impedir la ejecución correcta... de hecho el bloqueo del sistema está prácticamente asegurado (por incompatibilidad). Aunque claro, es típico que se clone y vuelque luego en otro equipo idéntico...

Más aún, si se vuelca la copia clonada en otro disco que no sea el de origen, la licencia de windows, deja de ser válida, ya que suele vincularse a números de serie. Aunque esto no es un escollo insalvable...

Si el software que tratas de impedir que se copie es tuyo (lo has programado tú), lo que puedes hacer es vincular números de serie del propio hardware con la licencia de tu programa, así detectará cuando se ha instalado en otro hardware distinto. No sería acertado que ese cambio de hardware fuera el disco duro, porque a veces necesitas cambiar el disco, sea porque el tamaño se quedó pequeño, o por que quedó dañado y se vuelca  a uno nuevo una copia que se clonó cuando estaba correctamente.

Algunas empresas, vinculan su software (nunca el S.O.), con un dispositivo USB, si dicho dispositivo no está conectado el programa no funciona, luego aunque el programa se copiara o clonara, a otro lado, solo seguirá funcionando una única copia a la vez, justo la que detecta que dicha unidad está insertada. Naturalmente esto puede ser hackeado, pero ni puede hacerlo cualquiera ni programas cuyo precio sea excesivamente caro o de tirada limitada, va nadie a dedicarse a hackearlo... normalmente si alguien lo hackea va a necesitar dedicarle tiempo, debe compensarle de alguna manera, así programas baratos o de escaso interés/tirada, están 'seguros'.

Si el software ni siquiera fuera tuyo (programado, comprado o licenciado), no tienes ningún derecho a nada. Esto es, tus clientes lo serán por algo que tu ofrezcas como algo legítimamente tuyo.
Si el programa no es programado por tí, no vas a poder añadirle toda la seguridad que quisieras... pongamos por ejemplo que has comprado x licencias de AutoCAD, que has instalado en sendos PCs y tienes una empresa y alguno de tus trabajadores lo han afanado para instalarlo en sus equipos de casa para cosas personales o incluso como mencionas, quitarte clientes (ofrecen el mismo trabajo que realizan en la empresa pero a menor precio del que tu empresa pide)... En estos caso lo mejor es pedir consejo a la empresa que te lo licencia o vende.
Algunas veces el programa puede instalarse en un servidor al que los empleados acceden vía intranet, pero no tienen permisos para usar más que ciertos programas... luego no teniendo permisos para acceder al servidor (si no solo a ciertos recursos), no podría ser clonado.
392  Programación / .NET (C#, VB.NET, ASP) / Re: Renombrar el mismo archivo en: 31 Marzo 2022, 16:39 pm
Es complicar las cosas innecesariamente.
Si la imagen primera es de mayor tamaño que la imagen final, entonces la imagen final contendrá tras de sí información que no pertenece a la imagen y que tan solo hace el fichero más grande. Es válido siempre que la imagen final sea igual o más grande que la de origen.

Lo ideal es:
1 - Leer "ImagenA.xxx"
2 - Manipular imagen A
3 - Guardar como "ImagenB.tmp"
4 - Eliminar/mover a otra carpeta(si se precisa conservar) "ImagenA.xxx"
5 - Renombrar "ImagenB.tmp" como "ImagenA.xxx"

Los pasos 4 y 5 son inecesarios si se cambia el paso 3, por
3 - Guardar (en otra carpeta) como "ImagenA.xxx"
393  Seguridad Informática / Seguridad / Re: ¿Pueden ver tu información dentro de imágenes? en: 31 Marzo 2022, 16:27 pm
Si edito una foto o creo una en el paint. Lo guardo en Windows 10. Si dicha imagen editada lo envío tal cual a un amigo por e-mail. Si ese amigo husmea dentro de las fotos observando los metadatos.
Como programador, puedes simplemente crear una sencilla aplicación que cargue/abra la imagen deseada (no hay necesidad de visualizarla, si no es preciso) y donde luego la guardas (el bitmap, los píxeles, no copiar el fichero de origen) en formato jpg.
Al leer la imagen de origen, tenga o no información exif, no se refleja en el mapa de bits. Cuando la guardas en formato jpg, lo que acaba sucediendo es que si tu no scribes info EXIF, tan solo se guardarán los datos imprescindibles, típicamente ninguno o casi ninguno. Puedes tras esto verificar que tags pudieran guardarse según el codificador usado.

Incluso aunque la imagen de origen tuviera estenografía, como ésta se suele aplicar en los bits bajos de los píxeles de la imagen, no se preservan, ya que cuando lees la imagen se descomprimen los datos de origen, y al escribirlos los datos actuales se comprimen, luego los bits bajos ya serán distintos (la compresión en jpg es siempre con pérdidas, luego los píxeles originales nunca se recuperan (hay algunas versiones subtipo del jpg que permite comprimir sin pérdida, pero habría que indicar dicho sistema específicamente y desde luego no cualquier codificador jpg, lo implementa)).
394  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 31 Marzo 2022, 16:12 pm
...a la vista de las capturas difundidas, que el lanzagranadas español de un solo uso, fabricado por Instalaza, ya habría sido utilizado, y, por tanto, estaría inservible. Incluso puede verse como le falta hasta el visor de apuntamiento.
Eso venía a decir, que es propaganda. Recoger cacharros que ya han sido usados, es muy distinto de: 'acabar en manos rusas'.

Yo creo que Putin tiene intención aún de centrarse en Kiev... y que la notoria publicación de que pretenden centrarse en el este del país, obedece solo a la pretendida artimaña de que se deje Kiev desprotegida enviando Ucrania tropas al este.
No tiene sentido que un país, 'revele' sus estrategia de ataque, si cacarea algo oculta algo que presumiblemente va a ser distinto a lo dicho, aunque algunos movimientos si deben hacer para (intentar) hacer creer que en efecto eso es lo que está sucediendo. Zelensky no será un militar, pero precisamente por eso, se deja guiar en esos asuntos por los militares que sí saben del asunto. Putin cree que como él en su país manda y ordena y los demás obedecen, que sucede lo mismo en todas partes. ...y ahí se equivoca.

Lamentablemente, Putin no quiere firmar ningún acuerdo, porque simplemente no acepta que Ucrania exista. No le bastó con anexionarse Crimea, ni tampoc ahora con otras dos regiones, lo quiere TODO.
Las 'conversaciones' son solo perder el tiempo y confiar que Ucrania haga concesiones sobre el terreno que faciliten el desenvolvimiento de las fatigadas tropas de Putin (hay que recordar que antes de la guerra estuvieron varias semanas de maniobras).

Por su parte las tropas rusas están desmoralizadas (nunca estuvieron motivadas, nunca se les dijo que iban a una guerra hasta que les mandaron disparar sobre objetivos que ellos podían ver que no eran maniobras).
Es por ello, que lo único que le queda a Rusia es lanzar misiles (desde lejos)... Más de un generalito debe estar temiendo ya por su vida, cuando Putin conozca los datos y vea que el panorama real dista mucho de lo que le haya contado.

Ucrania debería hacer todo lo posible para cortar cualquier intento de suministro a las tropas rusas.
395  Informática / Hardware / Re: Pequeñas anomalías extrañas con mi laptop en: 31 Marzo 2022, 15:45 pm
A falta de datos más precisos, creo que lo primero que deberías sanear el disco duro, luego si sigue con problemas podrías sostener que el problema sea de hardware.

- Elimina del inicio automáticos programas y servicios que no precisan ejecutarse al inicio.
- Elimina el contenido de carpetas temporales.
- Desinstala programas que no utilizas.
- Realiza un chequeo (profundo) del disco duro para que revise que no tenga errrores y corrija los que pueda.
- Defragmenta el disco duro.
- Reinicia el PC.
- Actualiza el antivirus y tras desconectar la red, ejecútalo para que revise todo el disco duro. Si tiene virus, la lentitud y otros problemas son un síntoma propio en equipos viejos.
- Remplaza la suspensión por la hibernación. Aún así, al menos 1 vez a la semana habría que apagar totalmente el PC y reiniciarlo. La hibernación y suspensión, acumulan temporales y fragmentan la memoria (más la suspensión), es lo mismo que usar una sesión de 500 horas... el reinicio libera recursos y elimina determinados temporales (no todos algunos deben hacerse manualmente).
- Apaga el equipo.
- Por último revisa que toda la memoria supuestamente instalada 'sigue ahí', es decir que no haya un módulo suelto o dañado y el sistema se vea obligado a tirar de memoria en disco, que hace funcionar todo muy lento especialmente cuando se satura.

Si tras todo eso, persisten los problemas y si el espacio en disco es mayor que el 20% y también hay memoria de sobra, se podría pensar en algún problema de hardware, cuando alguien no tiene capacidad para determinarlo abiertamente.
396  Foros Generales / Dudas Generales / Re: ¡AYUDA URGENTE! ALGORITMO en: 29 Marzo 2022, 18:32 pm
Citar
¿Qué problema resuelve?
Si el resultado suma 1 cuando es par, (y luego pasa a la siguiente cifra) entonces está ¿....?

Si tengo que decirlo, entonces no estás pensando.
Deberías crear el código dle algoritmo y ejercutarlo con diferentes números cada vez...
prueba con estos valores:
5
13
279
333
3579115

6
24
648
4486220
397  Programación / Programación Visual Basic / Re: Visual Basic portable en: 29 Marzo 2022, 02:42 am
Pues no sé yo, si ya será abandon-ware... yo tengo el paquete de Visual Studio 6.0 enterprise edition (eso sí, versión en inglés), con todos los CDs (unos 15 o 20 creo recordar).

Si alguien sabe la situación legal actual que avise y podría subirlos en formato ISO a la página de descargas del foro para cualquier interesado. Eso sí, los seriales que tengo son los míos, pero creo que existían (y seguirán existiendo) multitud de programas que ofrecían seriales...
398  Informática / Software / Re: Kaspersky en: 29 Marzo 2022, 02:29 am
No paras de pedir programas 'full' gratis.

El problema de un antivirus, es que si instalas uno gratuito, es muy probable que no incluya todas las características, por lo que 'full', no va a ser.

Y si consigues uno 'medicinado', tendrá el problema de que al actualizarlo (lo cual es algo continuo), puede ser detectado que no es 'legal'.

De todos modos, si tienes win-10, con el antimalware del propio Microsoft puede ser suficiente y se precisas algún otro por desconfianza (en capacidades), puedes tirar por escaneos online o alguno gratuito, para usarlo puntualmente.
399  Foros Generales / Foro Libre / Re: Conflicto Ucrania-Rusia,EEUU, OTAN, Europa. (Todas las noticias relacionadas irán aquí) en: 29 Marzo 2022, 02:03 am
Europa está celebrando comprar gas mas caro. Están dando botes de alegría.
Temporalmente si... tiempo al tiempo.

España por ejemplo, por culpa de malos gobernantes, no se ha desarrollado la energía solar adecuadamente. Desde primeros de los noventa, debería haberse apostado fuertemente por ella... pero el lobby energético con políticos enredados en las energéticas, lo han impedido.
Es hora de tirarse de cabeza, de apostar por la energía solar, ademas con subvenciones del gobierno.

EEUU compra mucha materia prima entre ellas Uranio dificil/imposible de sustituir por otro país productor.
Sí, uranio...


Europa ya es vasallo de EEUU con la Otan
El vasallaje para tu información consiste en que tu pagas por una explotación, viene a coincidir (en la parte económica) con lo que hoy día conocemos como 'alquiler'...

Que yo sepa, Europa no ha tenido grandes costes con la OTAN, precisamente días atrás USA ha solicitado a Europa que dediquen al menos un 2% del presupuesto en asuntos militares... ya ves qué imposición ha tenido Europa que prácticamente cada país apenas si ha puesto dinero en ello. Las bases americanas, prácticamente han sido subvencionadas por el propio gobierno americano, Europa simplemente ha dispuesto el terreno.

y China en la economía, porque ha comprado los mejores puertos logísticos y empresas. Hasta la Mercedes Benz es china.
A China, prácticamente le viene bien cualquier situación que salga con esta guerra.
Aunque la que mejor le viene es una donde Rusia pierda todo liderazgo, incluso el de un presidente, cosa que es factible que suceda en un medio-corto plazo.
El gran perdedor será Rusia, que pierde socios europeos (posiblemente deban pasar décadas para volver a una situación similar a la previa a esta guerra) y de la que China será su mayor consmidor, eso sí al no haber competencia, China dictará el precio al que compra, básicamente podría acabar como Venezuela... empeñada con China hasta la médula por la mala gestión de sus políticos.

Aquí en Europa no son muy brillantes los políticos. Así que tampoco hay que esperar ahora mucho de ellos.
No hay políticos brillantes en el mundo... rara vez los ha habido. Los políticos no son cerebros parlantes, son más bien 'abogados', les encanta la parafernalia, la burocracia, los medios...

Al final, el 'origen' de cada político que gobierna es lo que se acaba reflejando en un país...
Con Zelensky, cuando salió elegido, mi temor era que por venir del mundo cómico, acabara siendo un payaso... pero ha demostrado saber separar adecuadamente su profesión de su dedicación actual (ojalá otros tuvieran esa capacidad).
En el caso de Putin, por ser su origen 'espía', la paranoia le ronda y lo que vemos es reflejo del pie que cojea. Pero Putin recuerda bien ha sido 'espía', no soldado, por eso se le dará bien ocultar cosas (las intrigas de palacio), pero no diseñar estrategias, es decir no es un militar puro y duro (pese a sus escenas de caza, tiro y demás taumaturgia).

Alemania está rezando en que acabe esta pesadilla.
Alemania es muy dependiente del gas, pero eso puede revertirse en unos pcos años. Si no sucumbió en la unificación de las dos Alemanias, lo de ahora es pura bagatela...

Europa puede irse a pique. (NO HAY SALVAVIDAS.) Como se suele decir, quien siembra vientos recoge tempestades.
jajaja... eso sale de tus sueños. ...y parafraseándote: "...y los sueños, sueños son", como decía Calderón de la Barca.

Y eso están haciendo con la Rusofobia.
Victimismo inútil. Ahora no hay más rusofobía de la que hubiere hace un año (si es que la hubiere).
De hecho los propios rusos, así como los soldados (diria que la mayoría, o por lo menos los que no son profesionales y muchos de los que lo son), son también víctimas de Putin.

Esta no es una guerra rusa. Rusia no quiere esta guerra, solo su presidente, algunos militares y algunos que como tú tienen ansias de conquistas e imperialismo, recuperar glorias zaristas y pamplinas del estilo.

Rusia es un país medianamente pobre con un basto arsenal militar (heredado), y que además lleva años gastando en Defensa unas cantidades bárbaras, que ahora nadie va a pagar. La bancarrota está sujeta con pinzas...

Si este conflicto se alarga en el tiempo, el primero en caer será Europa. Te lo puedo decir mas alto pero no mas claro.
Cuanto más se alargue, tanto más se va a tener que gastar Rusia en mantener esta guerra, tanto más le va a costar a Rusia recuperarse.

Tu puedes predicar en el desierto, el viento escucha a todos, pero se lo llleva...

Lo normal es que torturen para obtener información, pero no sé cual pretenden averiguar. No suena a que hayan capturado a alguno de alto rango.
¡...pero si son reclutas los que capturan, chavales de 20 años, qué leches van a saber!... Si hasta les han prestado un teléfono para que llamen a sus madres.

Será difícil distinguir si son ucranianos, muchos hablan ambas lenguas tanto en Ucrania como en Rusia, es fácil hacer un montaje y muy difícil lograr conocer quienes son en realidad.

Visto lo visto, los ucranianos han demostrado tener más humanidad, Rusia ha demostrado en cambio crueldad sin motivaciones justificadas (que cada uno haga sus apuestas).
400  Programación / Programación C/C++ / Re: Ordenar lista doblemente enlazada con insertion sort en: 27 Marzo 2022, 23:53 pm
Es deseable a la hora de programar, hacerse un sencillo esquema de como ha de funcionar el algoritmo, precisamente para luego ver que si falla, qué punto puede estar mal programado.

Primero procede una descripción del algoritmo, simple y clara... obviando que se trata de una lista enlazada (es más sencillo de entender si se aplica a un array) cuando se esté seguro que la descripción es correcta, se hace un pseudocódigo del mismo y luego se programa con el tipo de estructura que se haya solicitado...

Una descricpción simple podría ser:
Algoritmo de ordenación por inserción:
1 - Comenzando por el segundo elemento (en la lista) y siguiendo hasta el último, se toma como actual y se aparta.
2 - Luego el actual se va comparando con los que le preceden, mientras el precedente sea menor que él (y no se alcance el primero).
3 - En dicho caso el precedente cambia de posición colocándose detrás del puesto que ocupa el actual y el puesto del actual se reduce en 1 (sigue apartado).
4 - Cuando ya no hay más precedentes menor que él, se ubica en tras ese precedente.
5 - Volvemos al paso 1

Hay que entender la descripción. De otro modo, el código que le siga fracasará.
Lo siguiente es un pequeño pseudocódigo, todavía pòdemos obviar que se trata de listas enlazadas, resolvámoslo primero con arrays y luego se tratará con listas enlazadas...
Código:
funcion InsertionSort(array de enteros Array)
    entero min, max, n, j, k, temp

    min = 0
    max = Array.length
    j = (min +1)
    bucle para k desde j hasta max   // 1              
        temp = Array(k)
        hacer mientras (temp < Array(j))   // 2
            Array(j+1) = Array(j)   // 3
            j -=1    
            Si (j<0) salir del bucle        // 2 ***
        repetir
        Array(j +1) = temp   // 4
        j = k
    siguiente    // 5

*** En según que lenguajes puede ponerse como primera condición del bucle, porque solo se evalua la segunda condición si la primera falla, en lenguajes que no 'cortocircuitan' incurre en un error, que se solventa colocando al final del bucle dicha condición (como se observa).

Nota que si los valores 'min' y 'max' se pasaran como parámetros, en vez de tenerlos internamente en la función, podría ordenarse cualquier subsección del array en vez del array entero que se toma por defecto de este modo.

Puede hacerse una ligera mejora al algoritmo. Es fácil darse cuenta que el elemento apartado, se asigna tras el bucle incluso aunque el precedente no sea menor. Si se hace una comprobación previa al bucle interno, y solo si se cumple dicha condición la asignación (del elemento siendo comparado) siempre será aplicable, si no, no se precisa... a su vez dado que esa condición ya examina dicha posibilidad, el bucle interno, puede mudar su condición a la parte baja (algunos lenguajes no toleran cambiar la condición al final del bucle):
Código:
funcion InsertionSort(array de enteros Array)
    entero min, max, n, j, k, temp

    min = 0
    max = Array.length
    j = (min +1)
    bucle para k desde j hasta max   // 1              
        temp = Array(k)
        Si (temp < Array(j))            // 2
            hacer                          //mientras (Array(j) < temp)   // 2
                Array(j+1) = Array(j)   // 3
                j -=1    
                Si (j<0) salir del bucle        // 2
            repetir mientras (temp < Array(j))   // 2
            Array(j +1) = temp   // 4
        Fin si
        j = k          
    siguiente    // 5
Es importante notar la diferencia entre este y el pseudocódigo anterior.
Esta ligera mejora, ya que evita hacer asignaciones innecesarias, será aún más notable en la lista doblemente enlazada.

Como se puede seguir en el pseudocódigo (aplicado a un array) es bastante sencillo y podría pasarse a programar ya en cualquier lenguaje. Como se requiere aplicarlo sobre una lista doblemente enlazada, conviene pasarlo a una estructura de tal tipo antes de programarlo. Básicamente es copiar y pegar el pseudocódigo y luego hacer remplazos para referirse a los ítems de una lista doblemente enlazada. Suele requerirse a veces (este es el caso), tener algún elemento auxiliar, para no perder referencias del curso del actual.
 
Lo primero a notar es como cambiaremos las variable del tipo entero al tipo 'nodo' que son los elementos de la lista, y que la función recibe como parámetro el odo raíz.
Código:
estructura nodo
    entero Valor
    nodo Anterior
    nodo Siguiente
fin estructura

funcion InsertionSort(nodo Raiz)
    nodo  j, k, temp  //min, max,
 
    temp  = Raiz.Siguiente
    hacer mientras temp no sea nulo  // 1 Supone que hay más de 1 elemento y que no está más allá del último.                
        j = temp.Anterior
        k = temp.siguiente
        si (temp.Valor < j.Valor)    // 2
            // Aislamos temp de la lista reconectando sus extremos entre sí.
            // Esto además nos permite, no tener necesidad de hacer intercambios contínuamente en el bucle que sigue.
            Si (temp.Siguiente no es nulo)
               temp.Siguiente.Anterior = j      // el anterior al siguiente a temp, será ahora el anterior a temp (no temp)
            fin si
            j.Siguiente = temp.Siguiente    // el siguiente del previo a temp, ahora será el siguiente de temp, incluso si es nulo (el último)
            
            hacer    // 2        
                Si (j.Anterior es nulo ) salir del bucle        // 2                        
                j = j.Anterior                              // 3  
            repetir mientras  (temp.Valor < j.Valor)
            // Ahora conectamos temp entre medios del que es manor o igual que él (aún siendo el primero) y el mayor que él (aún siendo el último)
            // 4
            si (j.Anterior es nulo)
                temp.Anterior = j.Anterior   // nulo
                temp.siguiente = j
                j.Anterior = temp
                Raiz = temp
            sino
                j.siguiente.Anterior = temp  
                temp.Anterior = j
                temp.siguiente = j.siguiente
                j.siguiente = temp
            fin si
        Fin si
        temp = k
    repetir    // 5
fin funcion
El código no es mucho más largo que la versión que opera sobre un array.
Nota como al desenlazar el nodo siendo examinado (y una vez vimos que debe cambiar de sitio, merced a la mejora introducida), podemos hacer un recorrido hacia atrás más sencillo y elegante.
También debes notar, como las precauciones tomadas preguntando cuando interesa si no es nulo, hace que no tengamos que hacer asignaciones más complejas...

Para probarlo, puede recurirse a crear una lista, ordenarla y luego imprimirla:
Código:
funcion CrearOrdenarYProbar
    nodo j, k, temp, Raiz
    entero n, valores[]
    
    // 1 Creamos una lista doblemente enlazada de nodos
    valores = Array(6, 4, 7, 8, 2, 5, 5, 1, 7, 3, 6, 8, 4, 9, 2)
    Raiz = nuevo nodo
    Raiz.Valor = valores(0)
    k = Raiz
    bucle para n desde 1 hasta valores.length
        j = nuevo nodo
        j.Valor = valore[n]
        j.Anterior = k
        k.siguiente = j
        k = j
    siguiente

    // 2 ordenamos la lista.
    llamada a InsertionSort(raiz)

    // 3 mostramos el resultado.
    temp = Raiz
    hacer mientras temp no sea nulo
        imprimir temp.Valor
        temp = temp.siguiente
    repetir
fin funcion

Resultado:
 1
 2
 2
 3
 4
 4
 5
 5
 6
 6
 7
 7
 8
 8
 9

Páginas: 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 [40] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ... 436
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines