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

412
Vistas
Interceptar el cargador ELF en el kernel de Linux: archivo fs/binfmt_elf.c a través del módulo del kernel cargable

Soy nuevo en la codificación del kernel y en este momento estoy trabajando con archivos ELF que se han modificado un poco por motivos de seguridad, por lo que necesito ver algunos de sus encabezados de sección personalizados y extraer la clave de cifrado de código único para el CPU para descifrar el contenido del ELF modificado.

En la actualidad, la lógica anterior se ha implementado dentro de la función load_elf_binary en el archivo fs/binfmt_elf.c en el árbol fuente del núcleo, sin embargo, solo se trata de 250 líneas de cambio de código para las que necesito volver a compilar todo el núcleo, por lo que estoy buscando improvisar esta funcionalidad implementándola como un módulo de kernel cargable (LKM) para que cada vez que se cargue un ELF compruebe si es el ELF modificado o no y, si lo es, extraiga la clave de la sección correspondiente.

EDITAR: para resumirlo, estoy buscando hacer un módulo de kernel cargable para leer las secciones de un ELF y obtener el contenido de una sección personalizada que contiene la clave de cifrado y los metadatos relacionados y establecer esos valores en los registros de la CPU.

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

0

Sí, es posible , pero definitivamente no es fácil. Incluso hay una instalación de kernel compatible "kprobes" que le permite insertar llamadas a su propio código desde ubicaciones específicas (consulte Documentation/kprobes.txt ). Si insertar llamadas a su propio código no es suficiente, creo que necesitaría usar el mismo tipo de mecanismos que kprobe: parchear la ubicación deseada sobrescribiendo las instrucciones con jmp s o call s en su propio código.

Una vez trabajé en una empresa cuyo producto de seguridad instalaba sus ganchos al parchear en tiempo de ejecución el kernel de Windows. Esto es más o menos lo mismo, aunque al menos con Windows en ese momento había un número finito de versiones que debían ser compatibles.

Entonces, definitivamente es posible, pero no me gustaría intentarlo. Será muy frágil; en efecto, estará tratando de alcanzar un objetivo en movimiento. Es probable que cada parche de seguridad del kernel o actualización de versión rompa su código.

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