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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 [302] 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 ... 431
3011  Programación / Programación C/C++ / Re: Empaquetar imagenes , archivos etc.. en el ejecutable[c++] en: 5 Mayo 2018, 01:33 am
Cualquier lenguaje de programación que se precie, dispone de 'recursos' que precisamente lo que hacen es eso que reclamas, empaquetar en el ejecutable (o quizás en un fichero aparte), los recursos que el propio ejecutable pueda necesitar, desde iconos, imágenes, cadenas de texto, hasta fuentes, etc...

Si el lenguaje que acostumbras a usar, no dispusiera de ello, o bien quieres apañártelas por tu cuenta de forma independiente, la mejor forma es disponerlo es:

1 Generar  el ejecutable y una vez hecho,
2 con otro programa (para ese reciso propósito), 'pegar detrás' los  diferentes recursos que precises, al tiempo vas generando una estructura de datos con la info precisa, que es lo que se endosa al final del ejecutable... el ejecutable debe estar diseñado para leer de sí mismo, del final esa estructura, reconocerla y saber interpretar su contenido.

sea tu ejecutable esto: cvbbmtur834
sea que quieres añadir 3 imágenes, (imaginemos que fueran así de grandes-pequeñas en realidad):  ert intghj poq245bmrt
sea que además quieres añadir un icono, por ejemplo: prty
sea además que guardas cierto contenido en texto, por ejemplo 74try5
sea que añades otras cosas, más... verás que es más de lo mismo.

Entonces te diseñas tu estructura:

Código:
enumeracion TiposDeRecursos
    RECURSO_TEXTO = 0
    RECURSO_ICONO = 1
    RECURSO_IMAGEN = 2
    ...etc...
fin enumeracion

Estructura recursos
    byte Tipo  // como enumeracion TipoDerecursos
    entero NumBytes
Fin estructura

Array de recursos rc(0 a 3 + 1 + 1 -1) //3 imagenes + 1 icono + 1 texto

Pegar detras del ejecutable: cvbbmtur834,ert,intghj,poq245bmrt,prty,74try5  
// las comas se ponen solamente para que se vea claramente la separación.
El array tendrá estos datos:
Rc(0).Tipo = 2          // imagen 1  
Rc(0).NumBytes= 3  // ert

Rc(1).Tipo = 2          // imagen 2  
Rc(1).NumBytes= 6  // intghj

Rc(2).Tipo = 2          // imagen 3  
Rc(2).NumBytes= 10   // poq245bmrt

Rc(3).Tipo = 1          // icono  
Rc(4).NumBytes= 4  // prty

Rc(4).Tipo = 0          // texto
Rc(4).NumBytes= 6  // 74try5

Pegas ahora el array detrás de todo.
y de momento queda así:
cvbbmtur834ertintghjpoq245bmrtprty74try5,2,3,3,6,2,10,1,4,0,6

Nuevamente las comas solo tienen el propósito de aclaración y los valores numéricos aquí son textuales, lógicamente deberían ser valores de 1 o más bytes, aquí para explicar de forma clara con texto legible, algún valor tiene 1 o 2 caracteres.
Finalmente pegas el tamaño de elementos del array, que es: 5   (3 imágenes + 1 icono + 1 texto)
Y así tu ejecutable será finalmente esto:
cvbbmtur834ertintghjpoq245bmrtprty74try523362101406,5

Tu ejecutable deberá ser capaz de leer del final un entero que identifica el tamaño del array que irá desde 0 hasta n-1
A continuación deberá ser capaz de leer más atrás de esa última posición precisamente el contenido de ese array.
Y finalmente partiendo de los valores de ese array y los desplazamientos razonados, el recurso que interese...

Realmente toda esa operatoria es más sencilla y cómoda programarla sobre un fichero aparte que sobre el propio ejecutable (podría además escribirlo justo en orden inverso, primero la cantidad del array, luego el contenido del array y luego cada recurso (eso sí éstos en el mismo orden que allí).

Pero sería un fichero aparte, y si es imprescindible que deba ser sobre el propio ejecutable, esa es la solución. Solamente recuerda que el propio ejecutable debe ser capaz de reconocerlo.
Y que para evitar errores, añade un 'magic' al final del propio fichero... si aparece el 'magic' tiene recursos incrustados, si no se olvidó añadirlos o el ejecutable fue alterado-dañado.
El 'magic' es casi cualquier cosa que tu pretendas que sea como significativo de 'contiene recursos al final del ejecutable según tu formato descrito', lo ideal es usar 4-8 caracteres específicos, que ni por casualidad puedan ser parte del contenido volcado, por ejemplo podría ser el texto: RECURSOS, así tu  ejecutable finalmente tendría el ejecutable, las 3 imágenes, 1 icono, 1 texto, el array de datos, el tamaño del array y el magic, y quedaría así al final:
cvbbmtur834ertintghjpoq245bmrtprty74try5233621014065RECURSOS
3012  Programación / .NET (C#, VB.NET, ASP) / Re: Controlando estados de los mensajes en: 4 Mayo 2018, 20:42 pm
Opino como Elektro.

...pero también opino que cada uno es libre de perder el tiempo como quiera, y si eso es lo que te gusta, allá tú...

Ser capaz de abrir la bandeja de la unidad óptica en 25 lenguajes de programación, es una manera estúpida (pero genuina) de perder el tiempo, porque al final todas ellas, acabarán llamando a la misma función del driver que controla la unidad...

3013  Programación / Programación General / Re: Ayuda con un problema en: 4 Mayo 2018, 20:33 pm
Si eres nuevo, y el profe no explica adecuadamente entonces tu duda será completa, no puntual.

...eso convierte tu cuestión en una tarea, no en una duda puntual...
3014  Programación / Programación C/C++ / Re: Función buscar - reemplazar en: 4 Mayo 2018, 20:29 pm

Tienes que hacer un bucle...

Recordar el punto donde encontró la palabra la última vez, sumar la longitud del texto de remplazo (si el remplazo es dinámico, o la longitud de de lo que se busca si el remplazo será diferido) y seguir buscando desde ahí, hasta llegar al final del texto (el final del texto, es su longitud menos el tamaño de lo que se busca, esto es, la búsqueda acaba cuando no quepa la palabra entera en lo que resta).


Código:
Funcion MultipleRemplazos(Texto, Busca, Remplaza)
    n= 0
    n = Buscar(Texto, Busca, n)
    Hacer mientras (n>0)
        Remplazar(texto, Remplaza, n, Busca.length)
        n += remplaza.lenght
  
        n = Buscar(Texto, Busca, n)
    Repetir
fin funcion
- 'Buscar' es una función que localiza 'busca' sobre 'texto', a partir de la posición 'n'. Si lo encuentra devuelve su posición, si no devuelve -1.

- 'Remplazar' es una función que devuelve un texto tal que copia desde 0 hasta n de 'texto', en del destino, a continuación pega el texto 'remplazo', y luego el texto que resta desde n + busca.lenght hasta el final de 'texto' en destino.

Éste es un remplazo dinámico, es más lento que uno estático, porque cada vez que cambie el tamaño del string, debe reconstruirse por completo. El dinámico es más efectivo que el estático cuando el texto que se busca es del mismo tamaño que el texto que lo remplaza, ya que entonces el remplazo puede hacerse insitu, sin necesidad de reconstruir el string.

Un remplazo estático, exige dos bucles, en el primero contabiliza cuantos hallazgos hay, calcula en base a ello, el tamaño del string de salida y aloja memoria para contenerlo. Luego en el segundo bucle va localizando otra vez los hallazgos y va copiando los tramos que no coinciden, seguido de una copia del texto de remplazo, y cuando no quedan más hallazgos, copia el tramo final (tras el último hallazgo, si éste no ocupó ultima posición en el string).

Sin embargo el pseudocódigo anterior es cómodo de usar, porque las funciones que lo realizan suelen estar en todos los lenguajes... tampoco es muy notable el retraso para cadenas muy cortas o de pocos remplazos, pero será tanto más notorio, cuanto más caracteres tenga el texto (se notará cuando haya millones de caracteres) y/o cuando haya muchos remplazos (con decenas ya se notará)... de hecho tanto más notable cuanto más grande sea una o ambas de dichas cuestiones.
3015  Foros Generales / Noticias / Re: Facebook implementaría un sistema comparable al de Reddit basado en votos .... en: 2 Mayo 2018, 03:46 am
Me temo que esto puede hacer derivar la red social hacia otros derroteros, más peligrosos aún si cabe. 
Tiempo al tiempo, y ya veremos cuantos acosadores pondrán contra las cuerdas a usuarios desfilando por el diván del psiquiatra...
3016  Foros Generales / Noticias / Re: Francia se enfrenta a una demanda por apoderarse del dominio France.com .... en: 2 Mayo 2018, 03:43 am
Es que esto ocurre por las mala gestión de la IANA...
...en realidad deberían crear dominios tipo .country y tipo .city y como los .gob ser exclusivos para los gobiernos y ayuntamientos.

Así, Francia podría tener su www.France.country y su www.Paris.city sin problemas a que ninguna persona en el mundo, pudiera ocuparlo jamás... pués como es evidente suponer estarían reservados exclsuivamente para los gobiernos y ayuntamientos,  mediante gestión a través de algún departamento del gobierno de cada país, que sería quien en última instancia gestionaría la solicitud del dominio con todas las garantías de legimidad del registro concedido.

Se evitaría además posiblers usos fraudulentos para hacer pasar una web similar a una existente de algún ayuntamiento...
3017  Seguridad Informática / Seguridad / Re: abrir archivo .dat codificado en: 2 Mayo 2018, 03:03 am
No entiendo bien qué es lo que pretendes...

Quieres modificar un fichero... el fichero está supuestamente cifrado...
Bueno y cuál es tu idea?. Conoces el cifrado que usa?.
Sin conocer el cifrado usado, es "dar palos de ciego".
Sin conocer el cifrado todavía se podría intentar saber qué o cómo está cifrado, sabiendo el programa y versión específica que hace uso de él... mediante ingeniería inversa. Algo laborioso en cualquier caso...

...pero lo que me rompe todos los esquemas es que dices que: "no puedo abrirlo de ninguna de las maneras". Al decir eso, tengo que dar por supuesto que no tienes ni pajolera idea, de modificar algo como no sea un fichero de texto plano en claro...

Si tu problema es que realmente sabes qué tienes que editar, pero no sabes cómo o con qué, la solución consiste en descargarte un editor hexadecimal, con ello podrás abrirlo y ver el conteniedo, qué byte ocupa cada posición, luego editar como te convenga y guardarlo.

...y si lo que pretendes es que alguien te 'descifre', un fichero, pierdes el tiempo... no creo que nadie vaya a molestars en perder el tiempo en abrir un fichero 'anónimo'... sin ni siqueira una somera descripción acerca de su origen, entorno, etc... porque puede ser cualquier cosa, incluso nada, algo simplemente para que incautos pierdan el tiempo al tiempo que el programa esté guardando la info realmente precisa de una forma sencilla... dejando ahí una piedra para que tropiecen con ella. ...pero ¿cómo saberlo, sin ningún detalle?.
3018  Foros Generales / Foro Libre / Re: Alguien me ayuda aplicar esta Formula en: 30 Abril 2018, 00:22 am
total preguntas = aciertos + errores + preguntas sin responder

Preguntas sin responder = error
Marcar una respuesta incorrecta al final es lo mismo que no marcar ninguna, esto es: "Ni pP7T4 idea".  
Claro que por azar, sin leer una sola pregunta, si hay 4 respuestas, la posibilidad de acertar es 1/4... pero no es problema de quien responde que hagan preguntas tipo test.

En vez de poner: En qué año se inició la IIWW?
A - 1918
B - 1936
C - 1938
D - 1939

Que simplemente se pida la fecha... si no la sabes la probabilidad de acertar al azar será muy baja...


32 respuestas acertadas para un 1. Tela marinera, jajajja...



61 respuestas acertadaspara un 5.



Es sistema no es correcto, por una razón fundamental... parece que cuanto menos aciertes 'más suerte tienes' lo cual es absolutamente injusto.

- Así un señor con 32 respuestas acertadas (1/3) solo obtiene de nota un 1 (no un 3'3), es decir asume que 24 respuestas correctas son al azar...
- En cambio para alguien que acierta las 97 (obtendría de nota un 10), parece asumir, que ha acertado 0 al azar...
3019  Programación / Programación Visual Basic / Re: Código QR en: 30 Abril 2018, 00:04 am
Me he descargado esa otra librería...

Toma la librería "quricol32.dll" y muévela a lacarpeta de tu proyecto... si no, no funcionará.

Te pego el código, necesario para guardarlo... fíjate que yo he usado la función para exportar como BMP, no importa, importa la firma de los parámetros...

Código
  1. Private Enum ErrorCorrectionLevel
  2.    LowQuality = 0
  3.    MediumQuality = 1
  4.    StandardQuality = 2
  5.    HighQuality = 3
  6. End Enum
  7.  
  8.  
  9. 'Private Declare Sub GuardarImagen Lib "quricol32.dll" Alias "GenerateBMPW" (ByVal file As String, ByVal text As String, ByVal margen As Long, ByVal pixelSize As Long, ByVal nivel As ErrorCorrectionLevel)  
  10.  
  11. ' multilínea para ver mejorcada parámetro.
  12. Private Declare Sub GuardarImagen Lib "quricol32.dll" Alias "GenerateBMPW" ( _
  13.     ByVal file As String, _
  14.     ByVal text As String, _
  15.     ByVal margen As Long, _
  16.     ByVal pixelSize As Long, _
  17.     ByVal nivel As ErrorCorrectionLevel)  
  18.  
  19.  
  20. Private Sub Command1_Click()
  21.    Dim ruta As String, ruta2w As String, msg As String
  22.    Dim res As Long
  23.  
  24.    msg = StrConv("Probando la librería Quricol...", vbUnicode) ' <--- Ojo: 4 bytes por carácter.
  25.    ruta = App.Path & "\Qr.bmp"
  26.    ruta2w = StrConv(ruta, vbUnicode)   ' <---- OJO: 4bytes por carácter...
  27.    Call GuardarImagen(ruta2w, msg, 2, 3, HighQuality)
  28.  
  29.    If (Dir(ruta) <> "") Then
  30.        Set Image1.Picture = LoadPicture(ruta)
  31.    End If
  32. End Sub
  33.  
  34. Private Sub Form_Load()
  35.    Me.BackColor = vbBlack ' contraste para que destaque...
  36.    Image1.Stretch = True
  37. End Sub
  38.  
  39.  


p.d.: Olvidaba decirte, que para probarlo, necesitas un botón y un control image.
3020  Foros Generales / Foro Libre / Re: Alguien me ayuda aplicar esta Formula en: 29 Abril 2018, 21:28 pm
Pués no están muy finos con esa fórmula... da lugar a posibles fallos.
Total preguntas = Aciertos + errores

puntos = ((aciertos - (errores / 3)) * 10) / (aciertos + errores)

con 90 aciertos (7 fallos) tienes un 9'3
Con 80 aciertos (17 fallos) tienes un 7'6.
con 70 aciertos (27 fallos) tienes un 6'28
Con 60 aciertos (37 fallos) tienes un 4'91.

El aprobado (5) se alcanza con 61 aciertos (para 97 preguntas)
Para tener un 1, necesitas casi un tercio de respuestas acertadas (32).
Si no aciertas ninguna tiene  -3'33 puntos... OLE.
Páginas: 1 ... 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 [302] 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines