Skip to content

Instantly share code, notes, and snippets.

@ssvb
Forked from tangrs/bin2elf.sh
Last active February 19, 2022 15:32
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ssvb/8b7072f3eb8b7a837b2e to your computer and use it in GitHub Desktop.
Save ssvb/8b7072f3eb8b7a837b2e to your computer and use it in GitHub Desktop.
Convert a memory dump/raw binary image into an ELF file
#!/bin/sh
# Convert a raw binary image into an ELF file suitable for loading into a disassembler
#
# Usage: bin2elf input_binary_file output_elf_file base_address
cat > raw$$.ld <<EOF
SECTIONS
{
EOF
echo " . = $3;" >> raw$$.ld
cat >> raw$$.ld <<EOF
.text : { *(.text) }
}
EOF
CROSS_PREFIX=arm-none-eabi-
${CROSS_PREFIX}ld -b binary -r -o raw$$.elf $1
${CROSS_PREFIX}objcopy --rename-section .data=.text \
--set-section-flags .data=alloc,code,load raw$$.elf
${CROSS_PREFIX}ld raw$$.elf -T raw$$.ld -o $2
${CROSS_PREFIX}strip -s $2
rm -rf raw$$.elf raw$$.ld
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment