Changelog: 2022.01 - Irritating Cookie
Highlights of Irritating Cookie
Important update: starting this release, GEF now requires GDB 8+ compiled with a Python 3.6+. If you cannot meet this requirements, you can still use previous versions of GEF, or also gef-legacy. Check out the compatibility matrix for more details.
Major changes:
- Internal code restructuring now exposes a bunch of new API via the
gef
namespace. See the API docs for complete reference - As a consequence, many existing functions available to gef and other plugins based on gef became obsolete and are now deprecated. Using those API will show a warning message in gef (which can be toggled off)
- The
Architecture
base class has been reviewed and improved to allow new architectures to be (more) easily pluggable via a new decorator (@register_architecture
) - Type hinting (with Python 3.6 compatibility) support, which makes the code globally more readable
- Bunch of bugs squashed thanks to the type hinting
- Taking advantage of Python 3.6 (again) allows to reduce code size by relying more on builtin Python classes
- The
pcustom
command was entirely rewritten to allow externalctypes
structures to be used by any other plugin or via the command line - More tests added, and the documentation updated.
Contributors
Author | Number of commits |
---|---|
hugsy | 79 |
theguy147 | 9 |
Grazfather | 5 |
mattadev | 1 |
mh4ckt3mh4ckt1c4s | 1 |
skysider | 1 |
szotsaki | 1 |
Teddy Heinen | 1 |
Wyatt Neal | 1 |
Zion | 1 |
Closed Issues
Closed Pull Requests
- 25 PRs closed ( 809 • 805 • 800 • 798 • 797 • 796 • 795 • 794 • 793 • 792 • 791 • 789 • 780 • 779 • 774 • 773 • 771 • 770 • 769 • 768 • 762 • 758 • 751 • 745 • 747 )
Commit details
100 commits since 2021.10
Commit log
- 2021-10-22 b982f3c • hugsy • Fixed minor bug in
new-release.py
in thegit
shell command - 2021-10-22 83b4934 • hugsy • Update README.md
- 2021-10-25 50231d9 • mh4ckt3mh4ckt1c4s • Fix typo in
docs/api.md
(#747) - 2021-10-31 c10b1e4 • hugsy • Update README.md
- 2021-11-02 8fc0583 • skysider • add number arg for 'heap chunk' command (#745)
- 2021-11-16 721ad4b • mattadev • Use sha256 for gef_hash to quiet static analyzers (#751)
- 2021-11-27 34a14bc • hugsy • Remove the
assert
onget_register
(#754) - 2021-11-27 152bb0c • hugsy • fixed typo from #754
- 2021-11-28 97ad7f7 • hugsy • [CI] Change test order
- 2021-11-29 5b91420 • Teddy Heinen • add support for hex strings to print-format (#758)
- 2021-12-03 add63da • theguy147 • fix typo in GotBaseFunction docs (#761)
- 2021-12-06 04f847b • hugsy • Bound
nb_argument
when printing guessed arguments (fix #753) (#755) - 2021-12-06 702858c • hugsy • Remove final
assert
(#756) - 2021-12-06 3efb77b • hugsy • Adds constants to
gef.py
for M68K support (ingef-extras
) (#757) - 2021-12-11 d512ac9 • hugsy • Added @therealdreg to the sponsors list
- 2021-12-11 1c9da33 • hugsy • Update README.md
- 2021-12-11 d98ffb7 • Wyatt Neal • Fixes GEF installer bash script #762)
- 2021-12-11 61782e4 • hugsy • [Refactor] Adds a global class
Gef
and instancegef
that will be used to make the API simpler and more Pythonic. Also adds memory access (viagef.memory
) and settings (viagef.config
) - 2021-12-11 380412e • hugsy • Added GEF compatibility matrix
- 2021-12-13 cdfdf42 • hugsy • More changes to a more pythonic version - creates a
GefHeapManager
class - deprecates many functions to an equivalent more readable - madeGlibcArena
andGlibcChunk
classes iterable - 2021-12-13 9f45be8 • hugsy • Fixed the heap (arena & chunk) iterators
- 2021-12-13 e36152d • hugsy • - Separate gef managers initialization - Add
gef.session
which includes many runtime info (.pagesize
,.canary
,.constants
, etc.) - Add more docstrings - The GDB command objects are now in the namespacegef.gdb
- Adjust some gef functions to check result - Makeendian_str
,gef_pagesize
,gef_read_canary
,set_gef_setting
andget_gef_setting
deprecated APIs - 2021-12-13 fbbcc3a • hugsy •
get_memory_alignment()
->gef.arch.ptrsize
- 2021-12-13 e709aeb • hugsy • Fixed
heap.base_address
- 2021-12-13 43a9920 • hugsy •
get_pid()
->gef.session.pid
- 2021-12-13 5b20f3c • hugsy • Fixed
canary
command - 2021-12-13 87e6204 • hugsy • Fixed
elf-info
- 2021-12-13 52b0646 • hugsy • Fixed
patch qword
- 2021-12-13 d1aee83 • hugsy • CI passing w00t
- 2021-12-13 1f62d53 • hugsy • test everything
- 2021-12-13 7698f30 • hugsy • making linters happy
- 2021-12-14 b9493f2 • hugsy • fixed
GlibcArena.__eq__
- 2021-12-15 a98dcb9 • hugsy • -
get_register
->gef.arch.register()
- new context manager for output redirection:RedirectOutputContext
- 2021-12-15 321e104 • hugsy • added
__str__
toSection
- 2021-12-16 a7ab48e • theguy147 • refactor: use Generators and Comprehension (#771)
- 2021-12-16 f497bc8 • theguy147 • refactor: replace OSError aliases (#769)
- 2021-12-25 08f4b28 • szotsaki • Update dereference.md (#773)
- 2022-01-05 a697afd • hugsy • use avatars for contributors and sponsors in readme and docs/index
- 2022-01-07 8a27a38 • theguy147 • refactor: remove utf8 encoding declaration (#770)
- 2022-01-07 4f6ab0c • hugsy • Added
gef.memory.maps
- 2022-01-07 d2f5f27 • hugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
- 2022-01-07 f0126ce • hugsy • added
gef.session.qemu_mode
andgef.session.remote
- 2022-01-07 8262adc • hugsy • added a simple helper
reset()
that allows to entirely reset the gef session usingpi reset()
- 2022-01-07 0ee63e3 • hugsy •
__gef_redirect_output_fd__
->gef.ui.redirect_fd
- 2022-01-07 df129ed • hugsy • replaced
__gef_int_stream_buffer__
->gef.ui.stream_buffer
- 2022-01-07 809c735 • hugsy • removed global
__infos_files__
, was obsolete since we started usinglru_cache
- 2022-01-07 eb7312b • hugsy •
__commands__
-->gef.session.commands
- 2022-01-07 d83b239 • hugsy •
highlight_table
-->gef.ui.highlight_table
- 2022-01-07 67df573 • hugsy •
libc_args_definitions
-->gef.session.libc_args_definitions
- 2022-01-07 93f2b15 • hugsy • restore commands & functions as globals
- 2022-01-07 84b00f1 • hugsy • fixed typo in uimanager
- 2022-01-07 4bcf19a • hugsy •
new_objfile_handle
doesn't need to re-init the managers since we already reset its cache - 2022-01-07 b0da3f8 • hugsy •
__watches__
->gef.ui.watches
- 2022-01-07 f08667b • hugsy •
__context_messages__
->gef.ui.context_messages
- 2022-01-07 bf96176 • hugsy •
__gef_convenience_vars_index
->gef.session.convenience_vars_index
- 2022-01-07 10a97c6 • hugsy • linting
- 2022-01-07 ece1662 • hugsy • moved the last globals to
gef.session
- 2022-01-08 b95c4ac • hugsy • making
ptrsize
static for x86 and x64 - 2022-01-08 a04cd64 • hugsy • making
ptrsize
static for arm, arm64 and mips - 2022-01-08 6514ad3 • hugsy • restoring MIPS64
- 2022-01-08 bca69da • hugsy • hardcoding endianness for x86,64 and arm,64
- 2022-01-08 32941ad • hugsy • added a class decorator to register architectures
- 2022-01-08 d5a3bb6 • hugsy • changed path to
pathlib.Path
(#775) added test fordownload_file
- 2022-01-08 64e3115 • hugsy • [arm] fix
ptrsize
caching - 2022-01-09 1a430d5 • theguy147 • refactor: add type hints (#774)
- 2022-01-09 8de60eb • hugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
- 2022-01-09 5f641bb • hugsy • Replaced
GEF_RC
to aPath
object (#775) - 2022-01-10 b653a6e • hugsy • Automatically generating gef api (#776)
- 2022-01-10 f7979f5 • hugsy • Markdown doc also shows if a function/class is deprecated (#776)
- 2022-01-10 3179289 • hugsy • [docs] Partially fix hrefs in
api/gef.md
- 2022-01-10 c25f9c1 • hugsy • [gef] fixing glibc main arena calculation for arm [docs]
@deprecated
adds a note in the api doc - 2022-01-11 29a9925 • hugsy • [tests] fixed
heap set-arena
- 2022-01-11 adcc1d4 • hugsy • Fixed PPC specs URL
- 2022-01-11 ad51825 • theguy147 • refactor: use f-strings across codebase (#768)
- 2022-01-11 8ad0c4f • hugsy • Fixed PPC specs URL
- 2022-01-11 1683fcb • hugsy • [docs] Fixed complete API link in
api.md
- 2022-01-11 bf70642 • hugsy • Merge branch 'dev' into gdb_8_py36_code_refactor
- 2022-01-12 bdea715 • hugsy • first run of pr feedback
- 2022-01-12 2975d5f • theguy147 • [CI] Add tests for heap bins(#780)
- 2022-01-12 795f51c • hugsy • [docs] updating docs to stipulate the new minimum requirements for gef
- 2022-01-12 b442af3 • hugsy • [elf] fixed duplicate
SHT_NUM
value - 2022-01-16 8ebd7b0 • hugsy • Apply suggestions from code review
- 2022-01-16 fa28aa2 • hugsy • Removed debug info in
FormatStringSearchCommand
- 2022-01-16 e4a77aa • hugsy • - fixed
heap
CI failures (defered to #785) - minor type adjustments - 2022-01-16 5f31516 • Grazfather • Merge pull request #779 from hugsy/gdb_8_py36_code_refactor
- 2022-01-17 9055b65 • Grazfather • tests: Make sure keystone and capstone tests fail with missing lib (#791)
- 2022-01-17 599db81 • hugsy • Fixed bugs in
GefSetting
that prevented saved values to be loaded (#792) - 2022-01-18 67fccb5 • Zion • updated add_context_pane settings use (#796)
- 2022-01-18 d162004 • Grazfather • Use https URLs where we can (#793)
- 2022-01-18 9560041 • hugsy •
@deprecated
warning display can be toggled off (#795) - 2022-01-20 c6909e1 • theguy147 • refactor: add missing py3.6 type hints (#797)
- 2022-01-20 eaf9d11 • Grazfather • Variadic gef print (#789)
- 2022-01-21 b4bffdc • hugsy • Update copyright year (#800)
- 2022-01-25 779369f • hugsy • Complete rewrite of
pcustom
command (#794) - 2022-01-25 364cf44 • hugsy • ELF class upgrades (#798)
- 2022-01-27 58f2a2e • theguy147 • fix: heap bins commands (#805)
- 2022-01-29 65daade • hugsy • - Regenerated API doc
- 2022-01-29 a280cfe • Grazfather • Re-add lru_cache to __get_register_for_selected_frame (#809)
- 2022-01-30 545fa28 • hugsy • fixed
theme
: use the gef settings manager - 2022-01-30 8c8c838 • hugsy • - changed the
try
/except
forgef restore
to indicate which setting name is missing
File diff
.github/workflows/discord-notify.yml | 28 +-
.github/workflows/docs-link-check.yml | 9 +-
.github/workflows/run-tests.yml | 9 +-
LICENSE | 2 +-
README.md | 15 +-
docs/api.md | 281 +-
docs/api/gef.md | 23244 ++++++++++++++++++++++++++++++++
docs/commands.md | 5 +-
docs/commands/assemble.md | 2 +-
docs/commands/checksec.md | 2 +-
docs/commands/dereference.md | 6 +-
docs/commands/heap-analysis-helper.md | 2 +-
docs/commands/heap.md | 16 +-
docs/commands/print-format.md | 5 +-
docs/commands/stub.md | 4 +-
docs/commands/syscall-args.md | 6 +-
docs/commands/trace-run.md | 6 +-
docs/commands/vmmap.md | 2 +-
docs/commands/xfiles.md | 2 +-
docs/compat.md | 14 +
docs/config.md | 5 +-
docs/faq.md | 41 +-
docs/index.md | 18 +-
gef.py | 7837 +++++------
mkdocs.yml | 1 +
scripts/gef.sh | 3 +
scripts/generate-api-docs.sh | 48 +
scripts/new-release.py | 8 +-
tests/binaries/Makefile | 2 +
tests/binaries/heap-bins.c | 18 +
tests/binaries/pcustom.c | 33 +
tests/helpers.py | 28 +
tests/runtests.py | 198 +-
33 files changed, 27740 insertions(+), 4160 deletions(-)
New Contributors
- @mh4ckt3mh4ckt1c4s made their first contribution in #747
- @skysider made their first contribution in #745
- @mattadev made their first contribution in #751
- @tcheinen made their first contribution in #758
- @wyattearp made their first contribution in #762
- @szotsaki made their first contribution in #773
Full Changelog: 2021.10...2022.01