shelf

Python library to convert elf to os-independent shellcodes

MIT License

Downloads
176
Stars
44
Committers
1
shelf - Shelf release 3.0.5 Latest Release

Published by jonatanSh about 1 year ago

shelf - Shelf release 3.0.4

Published by jonatanSh about 1 year ago

shelf - Shelf release 3.0.3

Published by jonatanSh over 1 year ago

Release key feature shelf_loader

Added the shelf loader library to load and interact with shelf and improve development time.
The library load shelfs and parse errors. it will try to do its best to display disassembly of the current faulting address.
For further reading refer to Shelf loader

Other features and improvements

  • Add shelf test framework
  • Add shelf --opcode-relocations for x86 32 bit
    Some compilers doesn't support --static -fpic and statically link against libc known symbols the --opcode-relocations feature relocate opcodes at load time.
  • Add shelf gdb integration
  • Add test for building the python shelf package and the python loader package
  • Optimizations
    • Optimize the find symbols api function
  • Add selective compilation
  • Add shelf api
  • Add shelf dump api support

Open bugs

  • In this feature a bug was found in the RISC-V shelf implementation for that reason support for RISC-V shellcodes is only partial until fixed.
shelf - Release 3.0.2

Published by jonatanSh over 1 year ago

  • Add support for a new architecture RISC-V RV64
  • Upgrade test framework to automatically detect invalid memory accesses for rapid developement
  • Add api support
  • minimal refactors
shelf - Release 3.0.1

Published by jonatanSh over 1 year ago

Release goal - stability and bug fixes

  • Fix bug where static variables would create a read write (RW) memory regions and --mitigation-bypass rwx didn't handle that correctly
  • Fix parallel compilation bug fix
  • Improved performance by caching structs
  • Fixed alignment in aarch64 architecture where the relocation table is larger then 8192 bytes
  • Add negative numbers support in relocation table. this feature increases the shellcode size but also add support for eshelf+dynamic support
shelf - Release 3.0

Published by jonatanSh over 1 year ago

Rename library to shelf - Shellcode elf

shelf - Release 2.2.8

Published by jonatanSh over 1 year ago

Features

Bug fixes

  • Fix a bug where the hooks loader was used and no hooks where supplied
shelf - Release 2.2.7

Published by jonatanSh over 1 year ago

Optimizations

  • Decrease shellcode size at least by half

Add hooks

  • pre_relocate_write_hooks
  • pre_relocate_execute_hooks
  • pre_calling_shellcode_main_hooks

Read more about hooks

shelf - Release 2.2.6

Published by jonatanSh over 1 year ago

Hook mechanism refactor

  • support and load python hook descriptor file - read more in the docs
  • Add attributes to hooks
  • Hooks can preprocess the output shellcode

Mini loader

  • Support functions inside the mini loader
shelf - Release 2.2.5

Published by jonatanSh over 1 year ago

In this release the focus was to add feature support for all architectures:

  • support for dynamic shellcodes was added for all architectures (mips, intel x32, intel x64, arm 32, aarch64)
  • support for eshelf output format was added for all architectures (mips, intel x32, intel x64, arm 32, aarch64)
  • support for mini loader hooks was added for all architectures (mips, intel x32, intel x64, arm 32, aarch64)
  • bug fixes
shelf - Release 2.2.4.2

Published by jonatanSh over 1 year ago

  • Add mini loader hooks for mips and intel x32
  • Support cartesian product of features while compiling the mini loader
  • Integrated py_elf_structs library
  • Parallel mini loader compiling
  • Code refactor
  • bug fixes
shelf - Release 2.2.4.1

Published by jonatanSh over 1 year ago

  • Add support x32,mips,arm32 support for eshelf output format