You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The dissection.rb script does not work on ilo5_135.bin. At that time it is unclear if it is a quirk of this version or a problem with the script itself. From the output below it looks like it is not able to locate the first module name and also the type, offset and size fields seem wrong:
ilo4_toolbox/scripts/iLO5$ ruby dissection.rb ilo5_135.bin_outdir/elf_main.bin
ruby: warning: shebang line ending with \r may cause problems
> extract from ilo5_135.bin_outdir/elf_main.bin
--
> - type 1946157056 - offset 0x00000000 - size 0x00000000 bytes
Traceback (most recent call last):
4: from dissection.rb:346:in `<main>'
3: from dissection.rb:324:in `extract_mods'
2: from dissection.rb:324:in `each'
1: from dissection.rb:335:in `block in extract_mods'
dissection.rb:335:in `join': no implicit conversion of nil into String (TypeError)
A working case with another firmware version e.g. on ilo5_130.bin is:
ilo4_toolbox/scripts/iLO5$ ruby dissection.rb ilo5_130.bin_outdir/elf_main.bin
ruby: warning: shebang line ending with \r may cause problems
> extract from ilo5_130.bin_outdir/elf_main.bin
--
> .dvrspi.elf.RO - type PROGBITS - offset 0x00007574 - size 0x00003f58 bytes
> .dvrspi.elf.RW - type PROGBITS - offset 0x0000b4cc - size 0x00000694 bytes
> .libINTEGRITY.so.RO - type PROGBITS - offset 0x0000bb60 - size 0x000048c0 bytes
> .libINTEGRITY.so.RW - type PROGBITS - offset 0x00010420 - size 0x00000018 bytes
> .libc.so.RW - type PROGBITS - offset 0x00010438 - size 0x000009c0 bytes
> .VComCShared_RM.so.RW - type PROGBITS - offset 0x00010df8 - size 0x00000070 bytes
> .dvrgpio.elf.RW - type PROGBITS - offset 0x00010e68 - size 0x0000109c bytes
> .libc.so.RO - type PROGBITS - offset 0x00011f04 - size 0x00035ff8 bytes
> .VComCShared_RM.so.RO - type PROGBITS - offset 0x00047efc - size 0x00008a90 bytes
> .dvrgpio.elf.RO - type PROGBITS - offset 0x0005098c - size 0x00008738 bytes
...
The text was updated successfully, but these errors were encountered:
We've reproduced the issue. Actually the root cause does not come from dissection.rb script. Instead, it is an illustration of the decompression issue we discovered while researching the secure boot feature.
We didn't take the time yet to fix our decompression code from the iLO5lib.py. Instead you can use the C source we've developped (quick and dirty re-implementation) to decompress properly the userland image and then use dissection.rb as you would have.
The
dissection.rb
script does not work onilo5_135.bin
. At that time it is unclear if it is a quirk of this version or a problem with the script itself. From the output below it looks like it is not able to locate the first module name and also the type, offset and size fields seem wrong:A working case with another firmware version e.g. on
ilo5_130.bin
is:The text was updated successfully, but these errors were encountered: