`picotool seal` corrupts ELF files built with IAR toolchain

Abierto
#374 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@bavison ya está trabajando en esto.

Desde el 6/11/2026.

  • #375 de @bavison — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
1-2 días
Aptitud para principiantes
55/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp
Área
cli

Línea de trabajo

Start by locating the picotool seal implementation and how it reads and writes ELF program headers; compare that behavior with the before and after readelf -l output in the issue. Reproduce with an ELF built using the IAR toolchain and inspect the headers before and after sealing. Done when sealing preserves valid program headers for that input.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Illustrated by running readelf -l on the input and output ELF files:

Before
Elf file type is EXEC (Executable file)
Entry point 0x20000181
There is 1 program header, starting at offset 1742692

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x000034 0x20000000 0x20000000 0x09040 0x0a584 RWE 0x8

 Section to Segment mapping:
  Segment Sections...
   00     P1 P1_2
After
Elf file type is EXEC (Executable file)
Entry point 0x20000181
There are 2 program headers, starting at offset 1742692

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  <unknown>: 100 0x1f6a0004 0x8ffc0001 0x00002000 0x100000 0x1f800004   E 0x2000
  <unknown>: 100 0x1ff50004 0x8ffc0001 0x00002000 0x100000 0x4ccf0004     0x42000

 Section to Segment mapping:
  Segment Sections...
   00
   01
Lenguaje dominante
C++
Estrellas
1k
Forks
195
Merge medio
11 d 5 h
PR fusionados (30 d)
4

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de raspberrypi/picotool

Todos los issues de raspberrypi/picotool

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.