Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
La dirección fija está ocupada en .NET

OpenSSL compatible con FIPS tiene una limitación: debe cargar libeay32.dll en una dirección fija y, si se carga en cualquier otra dirección, falla la verificación de inicialización, por lo que no se puede usar en modo FIPS.

Así que elegimos la dirección de acuerdo con la recomendación de Microsoft y en algunas máquinas esa dirección de vez en cuando está ocupada por otras bibliotecas, como MSVCR120_CLR0400.dll o mscorlib.ni.dll o clr.dll , entiende el punto.

¿Hay alguna manera de verificar si se toma alguna dirección fija + longitud y pedirle al sistema operativo que libere esa parte de la memoria para mí, como reorganizar esos dll en otras partes de la memoria o algo así?

Actualizar:

Recopilé información de 20 dispositivos con ListDLL y hay un patrón de qué se carga dónde, pero está lejos de estar bien definido. Así que realicé algunos cálculos, encontré la brecha más grande, donde no se cargó nada en esos 20 registros que tenía, cambié la dirección base de libeay32 a algún lugar en esa brecha (la brecha era ~ 6 veces más grande que dll, así que elegí ~ en medio) y aún después de un par de intentos, la aplicación logró cargar algo en ese espacio antes de libeay32 (para ser específicos, clrjit.dll, tiene una dirección base de 0x10000000, que creo que es la predeterminada), aunque en la aplicación intento cargar libeay32 tan pronto como sea posible.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Por qué no combinas las pistas dadas?

  • Use /INCLUDE con un símbolo de libeay.dll cuando vincule su programa para forzar una dependencia estática en esa biblioteca.
  • Compile libeay32.dll con /FIXED para que no se pueda reubicar.

Por lo tanto, se carga al cargar el ejecutable, antes de que se ejecute cualquier código administrado, no en algún momento posterior de forma dinámica, por lo que todos esos archivos DLL reubicables aún no están allí y no pueden interponerse en el camino.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda