github hugsy/gef 2022.06
2022.06 - Upset Constant

latest releases: 2024.06, 2024.01, 2023.08...
2 years ago

Changelog: 2022.06 - Upset Constant

Highlights of Upset Constant

  • The unit testing structure has been re-designed to be more modular and flexible

  • The documentation has been globally updated, moved from ReadTheDocs to GithubPages, and redesigned from mkdocs to mkdocs-material

  • Countless (potential) errors were fixed thanks to more integration of type hinting

  • Debugged file formats (such as ELF) now rely on a abstraction layer. This means GEF can transparently support more file formats including PE or MachO (see gef-extras/os)

  • Remote support has been entirely rewritten and is now fully exposed via the gef.remote namespace. This includes the Qemu (user and system) support.

  • Many commands, relying on external dependencies (such as cs-dis, asm or emulate) were transfered to GEF-Extras. Therefore, GEF now has absolutely no dependency whatsoever, not even optional ones. Refer to the deprecation page of the documentation for a complete overview of the changes.

  • ida-interact has been totally removed and is now entirely of GEF-Extras only. It has also been rewritten to drop Python XMLRPC and relies on the much more advanced rpyc Python library.

  • A new subcommand appeared, gef install which allows to install commands from gef-extras on the fly, if you cannot clone the repository or just need a one-time command.

  • pcustom supports class factory allowing the structure(s) defined to collect information from the runtime

  • Some improvements were added to the stack canary detection

  • On a more personal note, this release marks the 10 years anniversary 🎂 since the first lines of GEF were written!! Thanks for using and contributing to GEF !

Contributors

Author Number of commits
hugsy 118
theguy147 10
Grazfather 3
Dreg 3
Boris-Chengbiao Zhou 1
code-byter 1
Ebubekir Türker 1
Khaotic 1
mattadev 1
mh4ckt3mh4ckt1c4s 1
skysider 1
szotsaki 1
Teddy Heinen 1
Wyatt Neal 1
Zion 1

Closed Issues

Closed Pull Requests

Commit details

148 commits since 2021.10

Commit log

  • 2021-10-22 b982f3chugsy • Fixed minor bug in new-release.py in the git shell command
  • 2021-10-22 83b4934hugsy • Update README.md
  • 2021-10-25 50231d9mh4ckt3mh4ckt1c4s • Fix typo in docs/api.md (#747)
  • 2021-10-31 c10b1e4hugsy • Update README.md
  • 2021-11-02 8fc0583skysider • add number arg for 'heap chunk' command (#745)
  • 2021-11-16 721ad4bmattadev • Use sha256 for gef_hash to quiet static analyzers (#751)
  • 2021-11-27 34a14bchugsy • Remove the assert on get_register (#754)
  • 2021-11-27 152bb0chugsy • fixed typo from #754
  • 2021-11-28 97ad7f7hugsy • [CI] Change test order
  • 2021-11-29 5b91420Teddy Heinen • add support for hex strings to print-format (#758)
  • 2021-12-03 add63datheguy147 • fix typo in GotBaseFunction docs (#761)
  • 2021-12-06 04f847bhugsy • Bound nb_argument when printing guessed arguments (fix #753) (#755)
  • 2021-12-06 702858chugsy • Remove final assert (#756)
  • 2021-12-06 3efb77bhugsy • Adds constants to gef.py for M68K support (in gef-extras) (#757)
  • 2021-12-11 d512ac9hugsy • Added @therealdreg to the sponsors list
  • 2021-12-11 1c9da33hugsy • Update README.md
  • 2021-12-11 d98ffb7Wyatt Neal • Fixes GEF installer bash script #762)
  • 2021-12-11 61782e4hugsy • [Refactor] Adds a global class Gef and instance gef that will be used to make the API simpler and more Pythonic. Also adds memory access (via gef.memory) and settings (via gef.config)
  • 2021-12-11 380412ehugsy • Added GEF compatibility matrix
  • 2021-12-13 cdfdf42hugsy • More changes to a more pythonic version - creates a GefHeapManager class - deprecates many functions to an equivalent more readable - made GlibcArena and GlibcChunk classes iterable
  • 2021-12-13 9f45be8hugsy • Fixed the heap (arena & chunk) iterators
  • 2021-12-13 e36152dhugsy • - 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 namespace gef.gdb - Adjust some gef functions to check result - Make endian_str, gef_pagesize, gef_read_canary, set_gef_setting and get_gef_setting deprecated APIs
  • 2021-12-13 fbbcc3ahugsyget_memory_alignment() -> gef.arch.ptrsize
  • 2021-12-13 e709aebhugsy • Fixed heap.base_address
  • 2021-12-13 43a9920hugsyget_pid() -> gef.session.pid
  • 2021-12-13 5b20f3chugsy • Fixed canary command
  • 2021-12-13 87e6204hugsy • Fixed elf-info
  • 2021-12-13 52b0646hugsy • Fixed patch qword
  • 2021-12-13 d1aee83hugsy • CI passing w00t
  • 2021-12-13 1f62d53hugsy • test everything
  • 2021-12-13 7698f30hugsy • making linters happy
  • 2021-12-14 b9493f2hugsy • fixed GlibcArena.__eq__
  • 2021-12-15 a98dcb9hugsy • - get_register -> gef.arch.register() - new context manager for output redirection: RedirectOutputContext
  • 2021-12-15 321e104hugsy • added __str__ to Section
  • 2021-12-16 a7ab48etheguy147 • refactor: use Generators and Comprehension (#771)
  • 2021-12-16 f497bc8theguy147 • refactor: replace OSError aliases (#769)
  • 2021-12-25 08f4b28szotsaki • Update dereference.md (#773)
  • 2022-01-05 a697afdhugsy • use avatars for contributors and sponsors in readme and docs/index
  • 2022-01-07 8a27a38theguy147 • refactor: remove utf8 encoding declaration (#770)
  • 2022-01-07 4f6ab0chugsy • Added gef.memory.maps
  • 2022-01-07 d2f5f27hugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
  • 2022-01-07 f0126cehugsy • added gef.session.qemu_mode and gef.session.remote
  • 2022-01-07 8262adchugsy • added a simple helper reset() that allows to entirely reset the gef session using pi reset()
  • 2022-01-07 0ee63e3hugsy__gef_redirect_output_fd__ -> gef.ui.redirect_fd
  • 2022-01-07 df129edhugsy • replaced __gef_int_stream_buffer__ -> gef.ui.stream_buffer
  • 2022-01-07 809c735hugsy • removed global __infos_files__ , was obsolete since we started using lru_cache
  • 2022-01-07 eb7312bhugsy__commands__ --> gef.session.commands
  • 2022-01-07 d83b239hugsyhighlight_table --> gef.ui.highlight_table
  • 2022-01-07 67df573hugsylibc_args_definitions --> gef.session.libc_args_definitions
  • 2022-01-07 93f2b15hugsy • restore commands & functions as globals
  • 2022-01-07 84b00f1hugsy • fixed typo in uimanager
  • 2022-01-07 4bcf19ahugsynew_objfile_handle doesn't need to re-init the managers since we already reset its cache
  • 2022-01-07 b0da3f8hugsy__watches__ -> gef.ui.watches
  • 2022-01-07 f08667bhugsy__context_messages__ -> gef.ui.context_messages
  • 2022-01-07 bf96176hugsy__gef_convenience_vars_index -> gef.session.convenience_vars_index
  • 2022-01-07 10a97c6hugsy • linting
  • 2022-01-07 ece1662hugsy • moved the last globals to gef.session
  • 2022-01-08 b95c4achugsy • making ptrsize static for x86 and x64
  • 2022-01-08 a04cd64hugsy • making ptrsize static for arm, arm64 and mips
  • 2022-01-08 6514ad3hugsy • restoring MIPS64
  • 2022-01-08 bca69dahugsy • hardcoding endianness for x86,64 and arm,64
  • 2022-01-08 32941adhugsy • added a class decorator to register architectures
  • 2022-01-08 d5a3bb6hugsy • changed path to pathlib.Path (#775) added test for download_file
  • 2022-01-08 64e3115hugsy • [arm] fix ptrsize caching
  • 2022-01-09 1a430d5theguy147 • refactor: add type hints (#774)
  • 2022-01-09 8de60ebhugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
  • 2022-01-09 5f641bbhugsy • Replaced GEF_RC to a Path object (#775)
  • 2022-01-10 b653a6ehugsy • Automatically generating gef api (#776)
  • 2022-01-10 f7979f5hugsy • Markdown doc also shows if a function/class is deprecated (#776)
  • 2022-01-10 3179289hugsy • [docs] Partially fix hrefs in api/gef.md
  • 2022-01-10 c25f9c1hugsy • [gef] fixing glibc main arena calculation for arm [docs] @deprecated adds a note in the api doc
  • 2022-01-11 29a9925hugsy • [tests] fixed heap set-arena
  • 2022-01-11 adcc1d4hugsy • Fixed PPC specs URL
  • 2022-01-11 ad51825theguy147 • refactor: use f-strings across codebase (#768)
  • 2022-01-11 8ad0c4fhugsy • Fixed PPC specs URL
  • 2022-01-11 1683fcbhugsy • [docs] Fixed complete API link in api.md
  • 2022-01-11 bf70642hugsy • Merge branch 'dev' into gdb_8_py36_code_refactor
  • 2022-01-12 bdea715hugsy • first run of pr feedback
  • 2022-01-12 2975d5ftheguy147 • [CI] Add tests for heap bins(#780)
  • 2022-01-12 795f51chugsy • [docs] updating docs to stipulate the new minimum requirements for gef
  • 2022-01-12 b442af3hugsy • [elf] fixed duplicate SHT_NUM value
  • 2022-01-16 8ebd7b0hugsy • Apply suggestions from code review
  • 2022-01-16 fa28aa2hugsy • Removed debug info in FormatStringSearchCommand
  • 2022-01-16 e4a77aahugsy • - fixed heap CI failures (defered to #785) - minor type adjustments
  • 2022-01-16 5f31516Grazfather • Merge pull request #779 from hugsy/gdb_8_py36_code_refactor
  • 2022-01-17 9055b65Grazfather • tests: Make sure keystone and capstone tests fail with missing lib (#791)
  • 2022-01-17 599db81hugsy • Fixed bugs in GefSetting that prevented saved values to be loaded (#792)
  • 2022-01-18 67fccb5Zion • updated add_context_pane settings use (#796)
  • 2022-01-18 d162004Grazfather • Use https URLs where we can (#793)
  • 2022-01-18 9560041hugsy@deprecated warning display can be toggled off (#795)
  • 2022-01-20 c6909e1theguy147 • refactor: add missing py3.6 type hints (#797)
  • 2022-01-20 eaf9d11Grazfather • Variadic gef print (#789)
  • 2022-01-21 b4bffdchugsy • Update copyright year (#800)
  • 2022-01-25 779369fhugsy • Complete rewrite of pcustom command (#794)
  • 2022-01-25 364cf44hugsy • ELF class upgrades (#798)
  • 2022-01-27 58f2a2etheguy147 • fix: heap bins commands (#805)
  • 2022-01-29 65daadehugsy • - Regenerated API doc
  • 2022-01-29 a280cfeGrazfather • Re-add lru_cache to __get_register_for_selected_frame (#809)
  • 2022-01-30 545fa28hugsy • fixed theme : use the gef settings manager
  • 2022-01-30 8c8c838hugsy • - changed the try/except for gef restore to indicate which setting name is missing
  • 2022-01-30 283690ahugsy • - added cache management for Architecture
  • 2022-01-30 48d39bbcode-byter • Update gef config parameters of gef-extras installation script (#807)
  • 2022-02-01 c078733Grazfather • Fix RISCV arch detection (#790)
  • 2022-02-01 d1fa00ftheguy147 • fix: make shebang lines portable (#814)
  • 2022-02-04 4365d9chugsy • Fix double loading of external plugins (#816)
  • 2022-02-09 8c0f625hugsy • - create gef.ui.libc_args_table (#821)
  • 2022-02-09 d86e7a0hugsy • Minor follow-up of #821
  • 2022-02-13 82b2570hugsy • Remove ida-interact (#817)
  • 2022-02-13 37bb542hugsy • Add class factory support for pcustom (#819)
  • 2022-02-13 18c7ba4hugsy • Better tests (#813)
  • 2022-02-14 2b7f315Ebubekir Türker • remove unnecessary warnings (#824)
  • 2022-02-21 18c40b6Boris-Chengbiao Zhou • Add mechanism to let architectures specify whether they support a gdb arch (#822)
  • 2022-02-26 0954a16hugsy • New subcommand gef install (#825)
  • 2022-02-26 6e3cd5chugsy • Update gef.md
  • 2022-03-04 7817beahugsy • [docs] http -> https because apparently it's a big deal for debugging stuff
  • 2022-03-04 93f3010hugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2022-03-07 d540abdhugsy • pushing urgent fix for #831 (even tho get_arch will be deprecated after #827)
  • 2022-04-09 e50af77Khaotic • Improve identifying Stack Canaries (#833)
  • 2022-05-22 7f45550hugsy • Type Hinting Fixes - Part 1 (#827)
  • 2022-06-13 a89f91chugsy • Move 3rd party to extras (#841)
  • 2022-06-13 d7d64a2hugsy • Update generate-docs.yml
  • 2022-06-13 dca3cb1hugsy • Update generate-docs.yml
  • 2022-06-13 a7d8fa5hugsy • Updated documentation appearance
  • 2022-06-13 d836054hugsy • Squashed commit of the following:
  • 2022-06-13 5b468d0hugsy • 🐛 forcing docs to run the same version than gdb
  • 2022-06-13 ca67cedhugsy • 🐛 Last doc fixes, GEF API is now generated from Actions
  • 2022-06-14 c671bedhugsy • Update install.md
  • 2022-06-14 37ddf86hugsy • Updated gef-extras.sh installation script
  • 2022-06-14 d463f7dhugsy • [docs] hardcoded emojis instead of md
  • 2022-06-16 8ee281dhugsy • Update README.md
  • 2022-06-16 f375efchugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2022-06-17 a78915dhugsy • remove rtfd cfg file
  • 2022-06-17 1c295fchugsy • restoring temporarily rtfd for redirection to the new docs
  • 2022-06-18 dbf2372hugsy • Remove ida-interact (#842) from GEF, entirely moved to GEF-Extras
  • 2022-06-19 bf959a3hugsy • Type hinting fixes - part 2 (#839)
  • 2022-06-19 0fcd20aDreg • keep x86 and x86_64 FLAGS Register when calls to mprotect. Added pushfd, popfd, pushfq, popfq instructions (#844)
  • 2022-06-20 f890579hugsymaster -> main (#845)
  • 2022-06-23 0100c7bhugsy • New abstraction class for fileformat, but defaults to GEF. This allows PE/MachO fileformat to be supported via gef-extras
  • 2022-06-23 1e8f55fDregprint-format and patch byte commands can work together (#843)
  • 2022-06-24 343cd23Dreg • Fix typo in patch byte help (#848)
  • 2022-06-24 5dd793dhugsy • 🐛 fixes - moved prompt init after gef initial loading - added a __str__ for FileFormat - FileFormat also requires a section member
  • 2022-06-25 546f4b1hugsy • Better gef-remote : rewrite and add remote full support (#830)
  • 2022-06-25 9834252hugsy • Better gef-remote - part 2: Remote Qemu (#846)
  • 2022-06-26 09b2f13hugsy • Merge branch 'dev' into allow_new_file_format
  • 2022-06-26 a2a4bfahugsy • Minor update to unittest of print-format after #843 (#852)
  • 2022-06-26 d594eb3hugsy • Fix 850 (#851)
  • 2022-06-26 7925b0ahugsy • Merge branch 'dev' of github.com:hugsy/gef into allow_new_file_format
  • 2022-06-26 06f879ahugsy • [CI] Fixed missing import

File diff

.ci/mlc_config.json                           |     3 -
 .editorconfig                                 |    21 +
 .github/CONTRIBUTING.md                       |    10 +-
 .github/ISSUE_TEMPLATE/bug_report.md          |     2 +-
 .github/PULL_REQUEST_TEMPLATE.md              |    41 +-
 .github/workflows/discord-notify.yml          |    28 +-
 .github/workflows/docs-link-check.yml         |   Bin 367 -> 998 bytes
 .github/workflows/generate-docs.yml           |    32 +
 .github/workflows/run-tests.yml               |    17 +-
 .gitignore                                    |     3 +-
 .pylintrc                                     |   886 +
 .readthedocs.yml                              |     6 +-
 LICENSE                                       |     2 +-
 Makefile                                      |    45 +-
 README.md                                     |    70 +-
 docs/api.md                                   |   288 +-
 docs/api/gef.md                               | 22909 ++++++++++++++++++++++++
 docs/commands.md                              |    57 -
 docs/commands/assemble.md                     |    67 -
 docs/commands/capstone-disassemble.md         |    26 -
 docs/commands/checksec.md                     |     2 +-
 docs/commands/dereference.md                  |     6 +-
 docs/commands/gef-remote.md                   |   142 +-
 docs/commands/gef.md                          |    51 +-
 docs/commands/heap-analysis-helper.md         |     2 +-
 docs/commands/heap.md                         |    16 +-
 docs/commands/ida-interact.md                 |    53 -
 docs/commands/patch.md                        |     9 +
 docs/commands/pcustom.md                      |    66 +-
 docs/commands/print-format.md                 |    18 +-
 docs/commands/ropper.md                       |     9 -
 docs/commands/set-permission.md               |    51 -
 docs/commands/stub.md                         |     4 +-
 docs/commands/syscall-args.md                 |     6 +-
 docs/commands/trace-run.md                    |     8 +-
 docs/commands/unicorn-emulate.md              |    44 -
 docs/commands/vmmap.md                        |     2 +-
 docs/commands/xfiles.md                       |     2 +-
 docs/compat.md                                |    14 +
 docs/config.md                                |   109 +-
 docs/deprecated.md                            |    15 +
 docs/faq.md                                   |    80 +-
 docs/functions/base.md                        |    15 +
 docs/functions/bss.md                         |    15 +
 docs/functions/got.md                         |    15 +
 docs/functions/heap.md                        |    15 +
 docs/functions/stack.md                       |    16 +
 docs/index.md                                 |   154 +-
 docs/install.md                               |   171 +
 docs/obsolete/docs/index.md                   |     9 +
 docs/obsolete/mkdocs.yml                      |     6 +
 docs/obsolete/requirements.txt                |     1 +
 docs/requirements.txt                         |     3 +-
 docs/testing.md                               |   122 +
 gef.py                                        | 10252 +++++------
 mkdocs.yml                                    |   137 +-
 pytest.ini                                    |    15 +
 requirements.txt                              |     8 -
 scripts/gef-extras.sh                         |    21 +-
 scripts/gef.sh                                |    11 +-
 scripts/generate-api-docs.sh                  |    48 +
 scripts/ida_gef.py                            |   343 -
 scripts/new-release.py                        |     8 +-
 tests/__init__.py                             |     0
 tests/api/__init__.py                         |     0
 tests/api/deprecated.py                       |    36 +
 tests/api/gef_arch.py                         |    24 +
 tests/api/gef_heap.py                         |    79 +
 tests/api/gef_session.py                      |    42 +
 tests/api/misc.py                             |    71 +
 tests/binaries/Makefile                       |     4 +-
 tests/binaries/heap-bins.c                    |    18 +
 tests/binaries/pcustom.c                      |    33 +
 tests/binaries/syscall-args.c                 |    50 +
 tests/binaries/unicorn.c                      |    14 -
 tests/binaries/utils.h                        |     4 +
 tests/commands/__init__.py                    |     0
 tests/commands/aliases.py                     |    27 +
 tests/commands/aslr.py                        |    50 +
 tests/commands/canary.py                      |    18 +
 tests/commands/checksec.py                    |    30 +
 tests/commands/context.py                     |    16 +
 tests/commands/dereference.py                 |    23 +
 tests/commands/edit_flags.py                  |    52 +
 tests/commands/elf_info.py                    |    16 +
 tests/commands/entry_break.py                 |    19 +
 tests/commands/format_string_helper.py        |    22 +
 tests/commands/functions.py                   |    19 +
 tests/commands/gef.py                         |   122 +
 tests/commands/gef_remote.py                  |    40 +
 tests/commands/got.py                         |    32 +
 tests/commands/heap.py                        |   178 +
 tests/commands/heap_analysis.py               |    27 +
 tests/commands/hexdump.py                     |    26 +
 tests/commands/highlight.py                   |    29 +
 tests/commands/hijack_fd.py                   |    18 +
 tests/commands/ksymaddr.py                    |    19 +
 tests/commands/memory.py                      |    63 +
 tests/commands/name_break.py                  |    24 +
 tests/commands/nop.py                         |    67 +
 tests/commands/patch.py                       |    62 +
 tests/commands/pattern.py                     |    73 +
 tests/commands/pcustom.py                     |   108 +
 tests/commands/pie.py                         |    61 +
 tests/commands/print_format.py                |    40 +
 tests/commands/process_search.py              |    29 +
 tests/commands/process_status.py              |    22 +
 tests/commands/registers.py                   |    33 +
 tests/commands/reset_cache.py                 |    17 +
 tests/commands/scan.py                        |    24 +
 tests/commands/search_pattern.py              |    17 +
 tests/commands/shellcode.py                   |    41 +
 tests/commands/smart_eval.py                  |    23 +
 tests/commands/stub.py                        |    22 +
 tests/commands/syscall_args.py                |    89 +
 tests/commands/theme.py                       |    49 +
 tests/commands/trace_run.py                   |    24 +
 tests/commands/version.py                     |    18 +
 tests/commands/vmmap.py                       |    20 +
 tests/commands/xfiles.py                      |    17 +
 tests/commands/xinfo.py                       |    20 +
 tests/commands/xor_memory.py                  |    26 +
 tests/config/__init__.py                      |    23 +
 tests/functions/__init__.py                   |     0
 tests/functions/elf_sections.py               |    81 +
 tests/helpers.py                              |   161 -
 tests/perf/__init__.py                        |     0
 tests/perf/benchmark.py                       |    39 +
 tests/perf/context_times.sh                   |    32 +-
 tests/regressions/__init__.py                 |     0
 tests/regressions/registers_register_order.py |    43 +
 tests/requirements.txt                        |     5 +
 tests/run-remote.sh                           |    26 -
 tests/runtests.py                             |  1020 --
 tests/utils.py                                |   369 +
 135 files changed, 32446 insertions(+), 8107 deletions(-)

Don't miss a new gef release

NewReleases is sending notifications on new releases.