Gef Versions Save

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux

2024.01

3 months ago

Changelog: 2024.01 - Evergreen Response

What's Changed in Evergreen Response

Contributors

Author Number of commits
Angelo942 2
Bart Trojanowski 1
crazy hugsy 4
Dreg 1
Grazfather 8
José Luis Di Biase 1
Lennard Hofmann 1
Osama Albahrani 1
Riff 8
ValekoZ 1

New Contributors 🎉

Closed Issues

Closed Pull Requests

Commit details

28 commits since 2023.08

Commit log

  • 2023-08-21 d6ce056Dreg • Install curl coverage.yml (#997)
  • 2023-08-25 bba5f1cGrazfather • gef-remote: Fix issue with remote path having a space (#998)
  • 2023-08-26 46fba8bGrazfather • Tiny cleanup (#994)
  • 2023-08-26 6a6e2a0Grazfather • Let GefSetting write hooks see value (#1000)
  • 2023-09-09 1247fe4Grazfather • Fix gdb.execute not quoting paths (#999)
  • 2023-09-11 5927df4Grazfather • Do not quote paths when running 'source' (#1005)
  • 2023-11-28 788f56bBart Trojanowski • show basename in source: split line (#1017)
  • 2023-11-28 0f6255ecrazy hugsy • [Installers] Use latest tag, not main (#1007)
  • 2023-11-29 295cbf7José Luis Di Biase • Reorder reset_arch: parameter forced, elf header, gdb conf (#1004)
  • 2023-12-13 15b09cfGrazfather • Run validate CI step with Python 3.11 (#1022)
  • 2023-12-16 f7a2105ValekoZ • [target-remote] Basic support for the target remote command (#1020)
  • 2023-12-16 0eb7f5ccrazy hugsy • Coverage workflow should only be triggered by pull_request (#1023)
  • 2023-12-18 17c496cRiff • Dump memory usage when listing arenas, and add summary option (#1024)
  • 2023-12-18 4f20983Grazfather • Memory map provider (#1003)
  • 2023-12-20 f0d2818Riff • Fix clear-screen timing when showing context (#1026)
  • 2023-12-20 fbda021Riff • Add min-size and max-size filter to heap chunks command (#1025)
  • 2023-12-20 023b1a9Riff • Add c++ symbol support in xinfo. (#1028)
  • 2023-12-22 663d4a2Riff • Add config to override libc version. (#1027)
  • 2023-12-22 e629f02Riff • Add option to resolve type when dumping heap summary. (#1030)
  • 2023-12-22 53c769cRiff • Rename _target to debug_target for building test cases. (#1031)
  • 2023-12-26 951872bOsama Albahrani • [gef.sh] Replaced which with command (#1032)
  • 2023-12-30 5cc4ef2Lennard Hofmann • [docs] document conditional context panes (#1035)
  • 2023-12-30 a2704c9Angelo942 • Support 64 bit return value for stub (#1034)
  • 2024-01-02 d4b849eRiff • Add count option in heap chunks command to limit the number of chunks to process / output. (#1029)
  • 2024-01-04 deeab2fAngelo942 • Set correct parsing to gdb_get_location_from_symbol (#1037)
  • 2024-01-09 bcaabffcrazy hugsy • Migrate tests to RPyC (#1040)
  • 2024-01-10 8395f0bGrazfather • Remove old context_times script + tuneup (#1042)
  • 2024-01-10 b56bf9dcrazy hugsy • Update rpyc example in docs/testing.md (#1041)

File diff

.github/workflows/coverage.yml                |  72 ++-
 .github/workflows/generate-docs.yml           |   1 +
 .github/workflows/validate.yml                |   2 +
 .pylintrc                                     |  20 +-
 docs/api.md                                   |   3 +-
 docs/commands/context.md                      |  20 +
 docs/commands/gef-remote.md                   |   6 +-
 docs/commands/heap.md                         |  47 ++
 docs/testing.md                               |  69 ++-
 gef.py                                        | 741 ++++++++++++++++----------
 scripts/gef-extras.sh                         |   6 +-
 scripts/gef.sh                                |  11 +-
 scripts/generate-coverage-docs.sh             |   2 +-
 scripts/remote_debug.py                       |  36 ++
 tests/api/deprecated.py                       |  30 +-
 tests/api/gef_arch.py                         |  45 +-
 tests/api/gef_disasemble.py                   |  30 --
 tests/api/gef_disassemble.py                  |  51 ++
 tests/api/gef_heap.py                         |  45 +-
 tests/api/gef_session.py                      |  98 ++--
 tests/api/misc.py                             | 169 ++++--
 tests/base.py                                 | 108 ++++
 tests/binaries/Makefile                       |   6 +
 tests/binaries/class.cpp                      |  29 +
 tests/commands/aliases.py                     |  54 +-
 tests/commands/aslr.py                        |  57 +-
 tests/commands/canary.py                      |  43 +-
 tests/commands/checksec.py                    |  53 +-
 tests/commands/context.py                     |   4 +-
 tests/commands/dereference.py                 |  74 +--
 tests/commands/edit_flags.py                  |  68 +--
 tests/commands/elf_info.py                    |   8 +-
 tests/commands/entry_break.py                 |  18 +-
 tests/commands/format_string_helper.py        |  27 +-
 tests/commands/functions.py                   |  11 +-
 tests/commands/gef.py                         |  96 ++--
 tests/commands/gef_remote.py                  |  74 ++-
 tests/commands/got.py                         |  26 +-
 tests/commands/heap.py                        | 314 +++++++----
 tests/commands/heap_analysis.py               |  24 +-
 tests/commands/hexdump.py                     |  23 +-
 tests/commands/highlight.py                   |  23 +-
 tests/commands/hijack_fd.py                   |   8 +-
 tests/commands/ksymaddr.py                    |  19 -
 tests/commands/memory.py                      | 118 ++--
 tests/commands/name_break.py                  |  19 +-
 tests/commands/nop.py                         | 408 +++++++-------
 tests/commands/patch.py                       |  92 ++--
 tests/commands/pattern.py                     |  83 +--
 tests/commands/pcustom.py                     | 132 +++--
 tests/commands/pie.py                         |  46 +-
 tests/commands/print_format.py                |  61 ++-
 tests/commands/process_search.py              |  52 +-
 tests/commands/process_status.py              |  17 +-
 tests/commands/registers.py                   |  32 +-
 tests/commands/reset_cache.py                 |  11 +-
 tests/commands/scan.py                        |  24 +-
 tests/commands/search_pattern.py              |  37 +-
 tests/commands/shellcode.py                   |  28 +-
 tests/commands/skipi.py                       |  67 ++-
 tests/commands/smart_eval.py                  |  14 +-
 tests/commands/stub.py                        |  49 +-
 tests/commands/theme.py                       |  20 +-
 tests/commands/trace_run.py                   |  19 +-
 tests/commands/version.py                     |  10 +-
 tests/commands/vmmap.py                       |  21 +-
 tests/commands/xfiles.py                      |  17 +-
 tests/commands/xinfo.py                       |  34 +-
 tests/commands/xor_memory.py                  |  26 +-
 tests/config/__init__.py                      |  89 +++-
 tests/functions/elf_sections.py               |  97 ++--
 tests/perf/benchmark.py                       |  50 +-
 tests/perf/context_times.sh                   |  75 ---
 tests/regressions/gdbserver_connection.py     |  14 +-
 tests/regressions/registers_register_order.py |  90 +++-
 tests/requirements.txt                        |   1 +
 tests/utils.py                                | 303 ++++-------
 77 files changed, 2888 insertions(+), 1939 deletions(-)

Full Changelog: https://github.com/hugsy/gef/compare/2023.08...2024.01

2023.08

8 months ago

Changelog: 2023.08 - Disguised Wedding

Important Note

GEF and GEF-Extras have both moved to using the main branch as the default. Therefore if you contribute to the code, make sure your PRs are made against the main branch.

Highlights of Disguised Wedding

Contributors

Author Number of commits
hugsy 13
Dreg 8
Grazfather 6
Alexander Zhang 2

New Contributors

Closed Issues

Closed Pull Requests

Commit details

44 commits since 2023.06

Commit log

  • 2023-04-22 a6f4cc1Alexander Zhang • Fix typo in docs (#949)
  • 2023-04-24 ac73217crazy hugsy • [ci] coverage use dedicated token
  • 2023-04-25 102288fAlexander Zhang • Update sentence about Python version in docs (#948)
  • 2023-05-27 91f4d70crazy hugsy • [docs] Regenerating api/gef.md (#951)
  • 2023-05-29 0fd751ecrazy hugsy • Update README.md
  • 2023-07-13 74e8626Dreg • Update nop command to patch entire instructions (#959)
  • 2023-07-13 ca7418cGrazfather • nop: Fix off-by-one in unmap check (#960)
  • 2023-07-18 7fd94abGrazfather • Wrap docs (#962)
  • 2023-07-19 577ad02Dreg • Add skipi command to skip N instructions (#964)
  • 2023-07-21 b2d3edccrazy hugsy • Update coverage.yml
  • 2023-07-21 b0f4fa9Dreg • add site/ directory generated by mkdocs to .gitignore (#968)
  • 2023-07-21 99c59a9Dreg • adjust the behavior (and options) for the nop command (#967)
  • 2023-07-21 9170ac0Grazfather • nop: Add force req when not already --f (#970)
  • 2023-07-22 81ee52dGrazfather • Small cleanup - sets (#972)
  • 2023-07-22 e529fbccrazy hugsy • Restore autosave_breakpoints_file behavior (#969)
  • 2023-07-22 0461d6fcrazy hugsy • Fix hardcoded NOP instructions for ARM/AARCH64 (#971)
  • 2023-07-30 27a29d9Grazfather • Reformat README (#976)
  • 2023-07-31 b57e174crazy hugsy • Minor additions to the documentation (#975)
  • 2023-08-01 5e23739crazy hugsy • [Docs] Added linting for markdown files (#977)
  • 2023-08-02 ea7ed49Dreg • Fix link in testing docs (#979)
  • 2023-08-02 51804c8Dreg • Fixed phrasing in docs (#980)
  • 2023-08-05 a825c84crazy hugsy • [ci] Upgrade notification actions (#981)
  • 2023-08-06 8f0f444crazy hugsy • Restore main as the default branch (#983)
  • 2023-08-07 878cbf2crazy hugsy • Switch dev refs to main (#982)
  • 2023-08-07 7c170cfcrazy hugsy • Setup pre-commit for GEF (#984)
  • 2023-08-14 d27efd3Dreg • Add debugging instructions (#985)
  • 2023-08-16 371f273Dreg • [CI] Add forbidden words checks to coverage action (#991)
  • 2023-08-16 67c363dcrazy hugsy • [CI] Use pull_request_target for coverage trigger (#990)
  • 2023-08-16 9f79363Grazfather • Fix context regs regression that broke reg order (#993)
  • 2023-08-20 7856b70hugsy • Added docs to debug using VSCode
  • 2023-08-20 cc3b0cahugsy • Fixed un-ended comment tag in pr_template md file

File diff

.editorconfig                                      |     3 +
 .github/CONTRIBUTING.md                            |    33 +-
 .github/FUNDING.yml                                |     1 -
 .github/ISSUE_TEMPLATE/bug_report.yaml             |     6 +-
 .github/PULL_REQUEST_TEMPLATE.md                   |    31 +-
 .github/stale.yml                                  |     2 +-
 .github/workflows/coverage.yml                     |    68 +-
 .github/workflows/docs-link-check.yml              |   Bin 998 -> 0 bytes
 .github/workflows/generate-docs.yml                |     1 -
 .../workflows/{discord-notify.yml => notify.yml}   |    55 +-
 .github/workflows/run-tests.yml                    |     7 -
 .github/workflows/validate.yml                     |    31 +
 .gitignore                                         |     1 +
 .pre-commit-config.yaml                            |    25 +
 LICENSE                                            |     2 +-
 README.md                                          |   100 +-
 docs/.markdownlint.yaml                            |   256 +
 docs/api.md                                        |   131 +-
 docs/api/gef.md                                    | 23212 +++++++++++++++++++
 docs/commands/aliases.md                           |    42 +-
 docs/commands/aslr.md                              |    15 +-
 docs/commands/canary.md                            |    10 +-
 docs/commands/checksec.md                          |    12 +-
 docs/commands/config.md                            |    39 +-
 docs/commands/context.md                           |   193 +-
 docs/commands/dereference.md                       |    44 +-
 docs/commands/edit-flags.md                        |    22 +-
 docs/commands/elf-info.md                          |    11 +-
 docs/commands/entry-break.md                       |    18 +-
 docs/commands/eval.md                              |     8 +-
 docs/commands/format-string-helper.md              |    25 +-
 docs/commands/functions.md                         |    33 +-
 docs/commands/gef-remote.md                        |    61 +-
 docs/commands/gef.md                               |    77 +-
 docs/commands/got.md                               |    16 +-
 docs/commands/heap-analysis-helper.md              |    55 +-
 docs/commands/heap.md                              |   171 +-
 docs/commands/help.md                              |     2 +-
 docs/commands/hexdump.md                           |    29 +-
 docs/commands/highlight.md                         |    24 +-
 docs/commands/hijack-fd.md                         |    15 +-
 docs/commands/ksymaddr.md                          |    10 +-
 docs/commands/memory.md                            |    45 +-
 docs/commands/name-break.md                        |    26 +-
 docs/commands/nop.md                               |    64 +-
 docs/commands/patch.md                             |     2 +-
 docs/commands/pattern.md                           |    42 +-
 docs/commands/pcustom.md                           |   108 +-
 docs/commands/pie.md                               |    67 +-
 docs/commands/print-format.md                      |    22 +-
 docs/commands/process-search.md                    |    32 +-
 docs/commands/process-status.md                    |     8 +-
 docs/commands/registers.md                         |    13 +-
 docs/commands/reset-cache.md                       |     2 +-
 docs/commands/scan.md                              |    22 +-
 docs/commands/search-pattern.md                    |    41 +-
 docs/commands/shellcode.md                         |     9 +-
 docs/commands/skipi.md                             |    18 +
 docs/commands/stub.md                              |    29 +-
 docs/commands/theme.md                             |    30 +-
 docs/commands/tmux-setup.md                        |    37 +-
 docs/commands/trace-run.md                         |    16 +-
 docs/commands/version.md                           |    15 +-
 docs/commands/vmmap.md                             |    13 +-
 docs/commands/xfiles.md                            |     6 +-
 docs/commands/xinfo.md                             |    15 +-
 docs/commands/xor-memory.md                        |    32 +-
 docs/compat.md                                     |     8 +-
 docs/config.md                                     |    25 +-
 docs/debugging.md                                  |   131 +
 docs/deprecated.md                                 |    27 +-
 docs/faq.md                                        |   179 +-
 docs/functions/base.md                             |    11 +-
 docs/functions/bss.md                              |     8 +-
 docs/functions/got.md                              |     8 +-
 docs/functions/heap.md                             |     8 +-
 docs/functions/stack.md                            |     9 +-
 docs/index.md                                      |    88 +-
 docs/install.md                                    |    84 +-
 docs/obsolete/docs/index.md                        |     1 -
 docs/screenshots.md                                |    23 +-
 docs/testing.md                                    |    34 +-
 gef.py                                             |   223 +-
 mkdocs.yml                                         |     4 +-
 scripts/gef-extras.sh                              |     2 +-
 scripts/gef.sh                                     |     5 -
 scripts/generate-api-docs.sh                       |     2 +-
 scripts/vscode_debug.py                            |     7 +
 tests/api/deprecated.py                            |     1 -
 tests/api/gef_heap.py                              |     1 -
 tests/api/misc.py                                  |     2 +-
 tests/binaries/nested.c                            |     2 +-
 tests/binaries/nested2.c                           |     2 +-
 tests/commands/functions.py                        |     1 -
 tests/commands/gef.py                              |     1 -
 tests/commands/gef_remote.py                       |     1 -
 tests/commands/got.py                              |     1 -
 tests/commands/heap.py                             |     1 -
 tests/commands/heap_analysis.py                    |     1 -
 tests/commands/hexdump.py                          |     3 -
 tests/commands/name_break.py                       |     1 -
 tests/commands/nop.py                              |   278 +-
 tests/commands/pattern.py                          |     1 -
 tests/commands/pie.py                              |     1 -
 tests/commands/process_status.py                   |     2 -
 tests/commands/registers.py                        |     1 -
 tests/commands/reset_cache.py                      |     2 -
 tests/commands/scan.py                             |     1 -
 tests/commands/search_pattern.py                   |     6 +-
 tests/commands/skipi.py                            |    62 +
 tests/commands/stub.py                             |     2 +-
 tests/config/__init__.py                           |     1 -
 tests/requirements.txt                             |     1 +
 113 files changed, 25567 insertions(+), 1307 deletions(-)

2023.06

1 year ago

Changelog: 2023.04 - Worst Dependent

Highlights of Worst Dependent

The update includes various changes to the installation script, bug fixes, updates to documentation, and improvements to the search-pattern command. Some changes involve updating the GH Action runners, ARM improvement (fixing CPSR and pointer size calculation) and Safe-Linking support (for GLibc >= 2.32 compat) Code stability has been improved with an increased coverage check through test. Last, more documentation was added making it more accessible and easily searchable.

Contributors

Author Number of commits
hugsy 85
Dreg 6
clubby789 4
Grazfather 2
theguy147 2
Ananthu 1
Boris-Chengbiao Zhou 1
D4nnyLee 1
Jonathan Salwan 1
lain3d 1
liona24 1
Roderick 1
Tramadol 1
Wadim Mueller 1
Zhi-Qiang Zhou 1

Closed Issues

Closed Pull Requests

Commit details

109 commits since 2022.06

Commit log

  • 2022-06-27 b2458d6hugsy • Update gef-extras.sh installation script
  • 2022-06-27 2b72f5dhugsy • Quick fix on __load_time_ms since Py3.6 doesn't have perf_counter_ns
  • 2022-06-27 885d71ahugsy • [CI] Added Ubuntu-22.02 to GH Action runners
  • 2022-06-28 290a984hugsy • Fix AARCH64 CPSR and pointer size calculation (#855)
  • 2022-06-28 dbcd859hugsy • Update PULL_REQUEST_TEMPLATE.md
  • 2022-06-28 091e298hugsy • [pattern-search] Make sure pattern is correctly built (#858)
  • 2022-07-02 35c115aDreg • --regex support for search-pattern command (#860)
  • 2022-07-02 366237cDreg • Slightly improve the code of search-pattern (#862)
  • 2022-07-02 c2f87d9hugsy • [CI] Adds utils.find_symbol to cleanly find PIE symbols
  • 2022-07-02 7c0a1eehugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2022-07-02 08c06b8Dreg • Add a maximum size for preview to print-format config settings (#863)
  • 2022-07-02 e422530hugsy • Move syscall-args and is-syscall to gef-extras (#861)
  • 2022-07-02 f54a622Dreg • missed return init SearchPatternCommand (#864)
  • 2022-07-04 17fa7f9hugsy • Fixed TinyUrl links to point to main, not master (#868)
  • 2022-07-04 1499023hugsy • Added callback to register_external_content_pane to conditionally display pane (#866)
  • 2022-07-05 819917dDreg • Set main as the default branch for gef-extras / gef scripts for users (#870)
  • 2022-07-05 c530aa5Dreg • Add a proper argument parsing to gef-extras.sh (#872)
  • 2022-07-09 e545378hugsy • Use templated YAML files for Github Issues (#875)
  • 2022-07-09 ad1bfafhugsyGlibc* class now rely on ctypes.Structure (#869)
  • 2022-07-09 01da142lain3d • Fix ptrsize for ARM to not return 2 ever (#876)
  • 2022-07-09 4d4e801Wadim Mueller • Riscv/ble (#874)
  • 2022-07-10 2e0115dhugsy • Doc update
  • 2022-08-09 2830670crazy hugsy • Moved GEF_DEFAULT_BRANCH to the top of the script so the value is know when update_gef is taken
  • 2022-09-05 41d2700crazy hugsy • Update bug_report.yaml
  • 2022-09-05 942f6b9crazy hugsy • Update bug_report.yaml
  • 2022-09-05 ed070cecrazy hugsy • Update bug_report.yaml
  • 2022-09-05 bc419e4crazy hugsy • Update bug_report.yaml
  • 2022-09-05 4afae16crazy hugsy • Update bug_report.yaml
  • 2022-09-12 237760dGrazfather • Remove deprecated use of checksec() (#888)
  • 2022-09-20 2a4afa7D4nnyLee • Fix typo in docs/functions/base.md (#893)
  • 2022-09-20 8406460crazy hugsy • Update gef-remote.md
  • 2022-09-29 2b52a43Roderick • get pty by tmux command and close pane when gdb exit (#881)
  • 2022-10-02 1f49f8acrazy hugsy • explicitly forcing args : argparse.Namespace as a result of parse_arguments (#856)
  • 2022-10-10 3f3151ccrazy hugsy • Update utils.py
  • 2022-10-10 6f7b11acrazy hugsy • Update run-tests.yml
  • 2022-10-11 f2050afliona24 • Explicitly close the remote session (#896)
  • 2022-10-12 33fe436crazy hugsy • print warning messages when using target remote with gef (#899)
  • 2022-10-12 1fd0f34crazy hugsy • Remove the Makefile in the root folder (#898)
  • 2022-10-12 b54508acrazy hugsy • [docs] fixed bad python version for coverage docs
  • 2022-10-12 c3dbbe7crazy hugsy • [docs] added install directive for coverage
  • 2022-10-12 dd7f881crazy hugsy • [docs] coverage actions: missing packages
  • 2022-10-12 a759262crazy hugsy • [docs] adding link to coverage in docs navbar
  • 2022-10-12 3af8221crazy hugsy • [ci] Adding a new test to validate new code is tested
  • 2022-10-12 5faeed2crazy hugsy • [ci] Adding a new test to validate new code is tested
  • 2022-10-12 ed9c01ecrazy hugsy • [ci] better bash
  • 2022-10-12 26083ddcrazy hugsy • [ci] removing deprecated runner ubuntu-18.04
  • 2022-10-13 e9f3351Zhi-Qiang Zhou • Fix Safe-Linking (GLIBC >= 2.32) and malloc_state struct (#878)
  • 2022-10-13 0b17993hugsy • [ci] increased coverage result precision
  • 2022-10-21 a36ffbeclubby789 • Fix filesystem paths for debugging process in containers (#897)
  • 2022-10-21 e48e2f3hugsy • [ci] upgrade some actions, removed set-output directives
  • 2022-10-22 be82d55crazy hugsy • [ci] dummy typo
  • 2022-10-22 850a45dcrazy hugsy • [CI] Fixed incorrect coverage check
  • 2022-10-25 9edd73ecrazy hugsy • Update index.md
  • 2022-11-07 50e54e0crazy hugsy • [ci] restored pytest-forked in requirements for tests, removed old style envvar
  • 2022-11-07 a1b4f00crazy hugsy • [ci] added a margin for the coverage reduction test
  • 2022-11-07 65eece7Grazfather • reset_architecture: Return after setting arch to a specified arch (#914)
  • 2022-11-07 b52b758Ananthu • Added support for GDBHISTFILE env variable (#912)
  • 2022-11-07 c05d62aBoris-Chengbiao Zhou • Fix test command in documentation (#908)
  • 2022-11-07 ea8273bJonathan Salwan • Fix shell-storm new API (#902)
  • 2022-11-07 ec83f44crazy hugsy • fixed error from #902
  • 2022-11-07 1bf74a8crazy hugsy • [CI] Refusing anything below 70% of coverage
  • 2022-11-11 8713e3fhugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2022-11-11 af63b4dhugsy • rewrite: generate settings documentation
  • 2022-11-12 75c76feclubby789 • Add option to disable buffering (#917)
  • 2022-11-17 63ac481clubby789 • Determine the actual canary location (#918)
  • 2022-11-17 05b17d0crazy hugsy • [ci] add delay to gdbserver_session
  • 2022-11-17 4e89034hugsy • [ci] increased delay to appease GHActions gods
  • 2022-11-22 d1833d3clubby789 • Fix searching when connected to qemu-system instance (#906)
  • 2023-01-02 174830acrazy hugsy • Fixed doc wording
  • 2023-03-12 9590305crazy hugsy • Don't error out if disassembling previous instructions fails (#931)
  • 2023-03-19 8e3eba8theguy147 • fix: make sure that heap_addr is aligned (#936)
  • 2023-03-21 0cf291dtheguy147 • fix: add capability to glibc heap commands for bruteforcing the main_arena (#932)
  • 2023-04-04 0f477e7Tramadol • Add backwards memory examination for the dereference command (#942)
  • 2023-04-15 9848239crazy hugsy • Minor typo in docs/generate-settings-docs.sh
  • 2023-04-16 b1a1b2acrazy hugsy • [CI] Make coverage generate pull request comment instead of blocking validation (#938)
  • 2023-04-16 18e2c9chugsy • [docs] better formatting for settings page
  • 2023-04-16 5040cbehugsy • [scripts] add an explicit error message on failures in new-release

File diff

.github/ISSUE_TEMPLATE/bug_report.md        |    64 -
 .github/ISSUE_TEMPLATE/bug_report.yaml      |    90 +
 .github/ISSUE_TEMPLATE/feature_request.md   |    21 -
 .github/ISSUE_TEMPLATE/feature_request.yaml |    50 +
 .github/PULL_REQUEST_TEMPLATE.md            |    26 +-
 .github/workflows/coverage.yml              |    50 +
 .github/workflows/generate-docs.yml         |    10 +-
 .github/workflows/run-tests.yml             |    37 +-
 Makefile                                    |    42 -
 README.md                                   |     4 +-
 docs/api/gef.md                             | 22909 --------------------------
 docs/commands/aliases.md                    |     2 +-
 docs/commands/aslr.md                       |     2 +-
 docs/commands/canary.md                     |     2 +-
 docs/commands/checksec.md                   |     2 +-
 docs/commands/config.md                     |     2 +-
 docs/commands/context.md                    |     2 +-
 docs/commands/dereference.md                |    15 +-
 docs/commands/edit-flags.md                 |     2 +-
 docs/commands/elf-info.md                   |     2 +-
 docs/commands/entry-break.md                |     2 +-
 docs/commands/eval.md                       |     2 +-
 docs/commands/format-string-helper.md       |     2 +-
 docs/commands/functions.md                  |     2 +-
 docs/commands/gef-remote.md                 |     2 +-
 docs/commands/gef.md                        |     2 +-
 docs/commands/got.md                        |     6 +-
 docs/commands/heap-analysis-helper.md       |     2 +-
 docs/commands/heap.md                       |    24 +-
 docs/commands/help.md                       |     2 +-
 docs/commands/hexdump.md                    |     2 +-
 docs/commands/highlight.md                  |     2 +-
 docs/commands/hijack-fd.md                  |     2 +-
 docs/commands/is-syscall.md                 |    18 -
 docs/commands/ksymaddr.md                   |     2 +-
 docs/commands/memory.md                     |     2 +-
 docs/commands/name-break.md                 |     2 +-
 docs/commands/nop.md                        |     2 +-
 docs/commands/patch.md                      |     2 +-
 docs/commands/pattern.md                    |     6 +-
 docs/commands/pcustom.md                    |     2 +-
 docs/commands/pie.md                        |     2 +-
 docs/commands/print-format.md               |     2 +-
 docs/commands/process-search.md             |     2 +-
 docs/commands/process-status.md             |     2 +-
 docs/commands/registers.md                  |     2 +-
 docs/commands/reset-cache.md                |     2 +-
 docs/commands/scan.md                       |     2 +-
 docs/commands/search-pattern.md             |    11 +-
 docs/commands/shellcode.md                  |     2 +-
 docs/commands/stub.md                       |     2 +-
 docs/commands/syscall-args.md               |    49 -
 docs/commands/theme.md                      |     2 +-
 docs/commands/tmux-setup.md                 |     2 +-
 docs/commands/trace-run.md                  |     2 +-
 docs/commands/version.md                    |     2 +-
 docs/commands/vmmap.md                      |     2 +-
 docs/commands/xfiles.md                     |     2 +-
 docs/commands/xinfo.md                      |     2 +-
 docs/commands/xor-memory.md                 |     2 +-
 docs/deprecated.md                          |     2 +
 docs/faq.md                                 |     8 +
 docs/functions/base.md                      |     2 +-
 docs/index.md                               |     6 +-
 docs/install.md                             |     6 +-
 docs/testing.md                             |    29 +-
 gef.py                                      |  1573 +-
 mkdocs.yml                                  |     3 +-
 scripts/gef-extras.sh                       |    35 +-
 scripts/generate-coverage-docs.sh           |    24 +
 scripts/generate-settings-docs.sh           |    40 +
 scripts/new-release.py                      |    21 +-
 tests/api/gef_disasemble.py                 |    30 +
 tests/api/gef_session.py                    |    40 +-
 tests/api/misc.py                           |    12 +
 tests/binaries/mmap-known-address.c         |    50 +
 tests/binaries/set-permission.c             |    34 -
 tests/binaries/syscall-args.c               |    50 -
 tests/commands/canary.py                    |    15 +-
 tests/commands/dereference.py               |    46 +
 tests/commands/gef.py                       |     5 +-
 tests/commands/heap.py                      |    29 +-
 tests/commands/nop.py                       |    13 +-
 tests/commands/pattern.py                   |    37 +-
 tests/commands/pie.py                       |    16 +-
 tests/commands/search_pattern.py            |    15 +-
 tests/commands/syscall_args.py              |    89 -
 pytest.ini => tests/pytest.ini              |     5 +-
 tests/regressions/gdbserver_connection.py   |    15 +
 tests/requirements.txt                      |     2 +
 tests/utils.py                              |    44 +-
 91 files changed, 1663 insertions(+), 24149 deletions(-)

2022.06

1 year 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 • :bug: forcing docs to run the same version than gdb
  • 2022-06-13 ca67cedhugsy • :bug: 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 • :bug: 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(-)

2022.01

2 years ago

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 external ctypes 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

Commit details

100 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

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

Full Changelog: https://github.com/hugsy/gef/compare/2021.10...2022.01

2021.10

2 years ago

Changelog: 2021.10 - Royal Kill

Highlights of Royal Kill

  • 93 commits, 5 Issues & 25 PRs closed
  • Massive background re-work by @theguy147 , which includes (but not limited):
    • Better and more CI tests
    • Code coverage
    • Documentation refreshing
  • The elf-info command was entirely rewrote (@Kileak) elf-info
  • GEF now supports custom context panes (thanks to @mahaloz ) which allow to create custom (external) commands, and have them displayed as part of the break context
  • Heap stuff: heap chunks can now also display chunks in any/all arenas, fixed alignment issues (@theguy147 ) heap-stuff
  • Fixed many bugs in unicorn-emulate and capstone-disassemble commands (@theguy147 ) - with better CI to detect failures faster unicorn
  • Thanks to donations the CI has been massively improved for picking bugs quickly and in a cross-platform manner
    • CI - runner AARCH64 CI - runner AARCH64
    • CI - runner ARMv7 CI - runner ARMv7
  • And a lot more...

Contributors

Author Number of commits
theguy 37
hugsy 31
Grazfather 7
Zion 5
Ammar Faizi 3
Kileak 2
CptGibbon 1
irontigran 1
plop 1
RafaelLeeImg 1
Simon Segars 1

Closed Issues

Closed Pull Requests

Commit details

93 commits since 2021.07

Commit log

  • 2021-07-05 65a8ccfhugsy • improved the new-release script, now in python, and polls some data directly from github
  • 2021-07-05 f1d3e38hugsy • removed old release script
  • 2021-07-06 5eb3b24Ammar Faizi • x86-64: Preserve RCX and R11 when calling mprotect_asm (syscall)
  • 2021-07-07 a2b93a7Ammar Faizi • search-pattern: Don't stop searching when read_memory fails
  • 2021-07-07 593b5d3Ammar Faizi • test set-permission: Improve the test case
  • 2021-07-17 1e52006hugsy • Multiple fixes: - fixed syntax error in discord-notify - updated new-release.py to include stats of code addition/removal - added credit for gef logo in docs/index.md
  • 2021-07-22 e9614abtheguy • fix python version in unicorn-emulate
  • 2021-07-22 590f2b9theguy • remove pip2 instructions from documentation
  • 2021-07-22 57d8450theguy147 • dereference: add option to use reference address for offset calculation (#676)
  • 2021-07-23 a5ddc67theguy • use PYTHONBIN across the source
  • 2021-07-23 c8dca47hugsy • Merge pull request #678 from theguy147/py3
  • 2021-07-23 7e3bb6fhugsy • marked ida-interact as obsolete, will be replaced soon
  • 2021-07-26 0b6d816Grazfather • Make docs install instructions match readme
  • 2021-07-26 296f9f2hugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2021-07-26 f5e8cebhugsy • [docs] Fixing #680 : auto install scripts don't use sh anymore but bash
  • 2021-07-26 48a9fd7Grazfather • Update config & index docs
  • 2021-07-28 880f8b8theguy147 • Fix memory watch to use new argparse syntax of hexdump cmd (#684)
  • 2021-07-28 8cb298btheguy147 • Add git blob hash to version cmd (#683)
  • 2021-07-28 77889d8theguy147 • fix typo in version docs (#688)
  • 2021-07-31 29cc794theguy • memory watch unit tests for checking memory content
  • 2021-07-31 a8addf5theguy • fix size argument for hexdump cmd
  • 2021-07-31 44b00a8theguy • Fixed typo in pull request template
  • 2021-07-31 dddb7bftheguy • Fix heap commands when the glibc arena has not set all expected members
  • 2021-07-31 f25ba5fGrazfather • Fix syntax for ASLR
  • 2021-07-31 90c4634Grazfather • Fix docs for patch (aliases in gef-extras)
  • 2021-07-31 c21fe01Grazfather • Fix docs for 'memory'
  • 2021-07-31 04408d2Grazfather • nop: Fix default arg and docs
  • 2021-08-03 11bd6a7theguy • Mimic glibc's MALLOC_ALIGNMENT for heap chunks
  • 2021-08-03 477086etheguy • Fix usage of wrong var in output
  • 2021-08-03 c590f71theguy • Allow unaligned heap chunks as option
  • 2021-08-04 2a47ff8theguy • Add optional flags to disable auto-alignment of heap chunks
  • 2021-08-04 d5e958atheguy • Update heap cmd docs
  • 2021-08-03 2517616hugsy • Update discord-notify.yml
  • 2021-08-06 ec114a6hugsy • [doc] Updated print-format.md
  • 2021-08-07 b33316atheguy • Change 'LOCATION' to 'address'
  • 2021-08-10 8ed91f6hugsy • Merge pull request #696 from hugsy/fix_nop
  • 2021-08-10 ea5ecffhugsy • Update nop.md
  • 2021-08-10 0b7c616hugsy • Merge pull request #697 from theguy147/heap-malloc-align
  • 2021-08-11 05520e2Simon Segars • gef.sh: check if cURL or wget exist on the system
  • 2021-08-15 5a9b2a2theguy147 • Fix gef-remote: retrieve pid of inferior process after having connected to target (#686)
  • 2021-08-21 e152a34hugsy • Merge pull request #700 from BadSugar/ubuntu_fix_gef_sh
  • 2021-08-21 1ca68c4hugsy • Unittest: - added test for gef_get_auxiliary_values - added test for gef_convenience - fixed test for memory_watch
  • 2021-08-21 4554aa0hugsy • Added a new decorator only_if_current_arch_in and its doc
  • 2021-08-21 76c060fhugsy • Added unittest for parse_address
  • 2021-08-21 2fb1b10hugsy • Update run-tests.yml
  • 2021-08-21 90d2c8chugsy • Fixed test of test_cmd_memory_watch: no need for scanf, which makes testing more hazardous
  • 2021-08-23 dcfa6f2theguy147 • Fix capstone-disassemble command and documentation (#695)
  • 2021-08-23 6300e75theguy147 • Fix assemble command including docs and tests (#694)
  • 2021-08-24 5e5c638theguy147 • Update break commands (#702)
  • 2021-08-25 4f9bd61hugsy • [ci] added ubuntu-18.04 to the list of CI targets
  • 2021-08-25 b56e8cchugsy • [ci] added ubuntu-18.04 to the list of CI targets (duh)
  • 2021-08-25 5beef62hugsy • [ci] in test bins, replaced int3 with __builtin_trap()
  • 2021-08-25 c942736hugsy • followup on 4f9bd616238a
  • 2021-08-25 00bb124hugsy • [ci] added decorators to include/exclude test for specific architecture(s)
  • 2021-09-02 169e6e6plop • fix typo in search-pattern help (#705)
  • 2021-09-04 c4a4f58theguy147 • Fix name-break address parsing (#708)
  • 2021-09-05 8c5abfcKileak • Fix namebreak and add additional unit tests (#710)
  • 2021-09-05 139830fhugsy • 📕 adding new sponsors on readme
  • 2021-09-05 0bc68bbhugsy • 📕 fixed xinfo screenshot
  • 2021-09-07 1f208cctheguy147 • Update docs for several commands (#703)
  • 2021-09-07 f02e9aetheguy147 • Update and fix heap command (#701)
  • 2021-09-07 f1ffad0theguy147 • Add test for gef-remote cmd (#712)
  • 2021-09-08 620ca60CptGibbon • Correct have_fastchunks arena adjustment (#704)
  • 2021-09-08 3bc42eftheguy147 • Fix unicorn-emulate cmd (#713)
  • 2021-09-11 3fc237ctheguy147 • Fix 'heap chunks' command for non-main arenas (#706) (#709)
  • 2021-09-14 90ffa6bhugsy • Use pytest on top of unittest to allow multi-proc execution (#714)
  • 2021-09-15 44c12c6RafaelLeeImg • Fix error where breakpoint.location is None (#715)
  • 2021-09-19 f37d0ffKileak • Backport Elf / ElfInfoCommand updates (#717)
  • 2021-09-20 1c80677theguy147 • Fix error on help (#721)
  • 2021-09-20 11a68a2theguy147 • Fix heap chunks cmd for multiple heaps per arena (#716)
  • 2021-09-21 915ff91hugsy • Configuration for the stale bot (#718)
  • 2021-09-21 860facfirontigran • Add test for printing chunks with multiple heaps (#711)
  • 2021-09-21 f5df117theguy147 • Add feature to print heap chunks of all arenas (#722)
  • 2021-09-21 1df157etheguy147 • refactor: use parse_address whenever appropriate (#723)
  • 2021-09-24 143e60ahugsy • Adding unit tests for non-x86 architectures (#720)
  • 2021-09-25 6400ef7Grazfather • CI: Lint: Add more linters to test files (#725)
  • 2021-09-26 55f9090hugsy • [ci] adjusted heap-multiple-heaps to use the universal DebugBreak so non x86 test can successfully be triggered
  • 2021-09-27 3b0d9daZion • Support for custom contexts in ContextCommand (#727)
  • 2021-09-29 a4a9033hugsy • [CI] Use Actions to check URL links in the documentation (#731)
  • 2021-09-29 5baa128Zion • Allow empty context titles (#732)
  • 2021-09-30 970a6d3theguy147 • fix: cleanly close opened files (#737)
  • 2021-09-30 5ecaadbtheguy147 • Review (#733)
  • 2021-10-02 fac4e7dtheguy147 • fix: DeprecationWarning for unicode-escape decoding (#736)
  • 2021-10-08 467273ftheguy147 • fix: create tempdir before first usage (#740)
  • 2021-10-08 078ce33theguy147 • feat: allow tests to be run in other places than /tmp (#739)
  • 2021-10-10 ed413d1theguy147 • feat: measure coverage (#738)
  • 2021-10-13 8719457Zion • Fix a max() call on None in print_guessed_arguments (#742)
  • 2021-10-13 48ed480Zion • Resolve Context Trace Symbols (#743)
  • 2021-10-13 5c2fe28Zion • add thread symbol resolving like traces (#744)
  • 2021-10-14 2becf7bhugsy • Update docs/requirements.txt
  • 2021-10-16 63ffc67hugsy • Fixed a few bugs and added minor improvements to scripts/new-release.py
  • 2021-10-16 8074f88hugsy • Merge fix
  • 2021-10-16 278e84dhugsy • Merge branch 'master' into dev

File diff

 .ci/mlc_config.json                   |    3 +
 .github/PULL_REQUEST_TEMPLATE.md      |    2 +-
 .github/stale.yml                     |   25 ++
 .github/workflows/discord-notify.yml  |   10 +-
 .github/workflows/docs-link-check.yml |   16 ++
 .github/workflows/run-tests.yml       |   23 +-
 .gitignore                            |    5 +-
 Makefile                              |   58 +++--
 README.md                             |    4 +-
 docs/api.md                           |  154 +++++++++--
 docs/commands.md                      |   90 +++----
 docs/commands/aliases.md              |    4 +-
 docs/commands/assemble.md             |   62 ++++-
 docs/commands/capstone-disassemble.md |   12 +-
 docs/commands/context.md              |   12 +
 docs/commands/dereference.md          |   21 +-
 docs/commands/elf-info.md             |   57 ++++-
 docs/commands/functions.md            |   33 ++-
 docs/commands/gef-remote.md           |   48 ++--
 docs/commands/heap-analysis-helper.md |    2 +
 docs/commands/heap.md                 |   77 +++---
 docs/commands/help.md                 |    8 +-
 docs/commands/hexdump.md              |   46 ++--
 docs/commands/ida-interact.md         |    3 +-
 docs/commands/ksymaddr.md             |    4 +
 docs/commands/memory.md               |    4 +-
 docs/commands/name-break.md           |   14 +-
 docs/commands/nop.md                  |    9 +-
 docs/commands/patch.md                |    8 +-
 docs/commands/pattern.md              |   48 ++--
 docs/commands/pie.md                  |   74 +++---
 docs/commands/print-format.md         |   18 +-
 docs/commands/process-search.md       |   27 +-
 docs/commands/process-status.md       |    2 +-
 docs/commands/registers.md            |   20 +-
 docs/commands/reset-cache.md          |    5 +-
 docs/commands/scan.md                 |   25 +-
 docs/commands/set-permission.md       |   25 +-
 docs/commands/stub.md                 |   12 +-
 docs/commands/tmux-setup.md           |   16 +-
 docs/commands/unicorn-emulate.md      |   36 +--
 docs/commands/version.md              |   36 +++
 docs/commands/vmmap.md                |    2 +-
 docs/commands/xinfo.md                |    2 +-
 docs/config.md                        |   38 ++-
 docs/faq.md                           |    5 +-
 docs/index.md                         |   81 +++---
 docs/requirements.txt                 |    2 +-
 docs/screenshots.md                   |   24 +-
 gef.py                                | 1436 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
 mkdocs.yml                            |    1 +
 requirements.txt                      |    3 +
 scripts/gef.sh                        |   35 ++-
 scripts/new-release.py                |  145 +++++++++++
 scripts/new-release.sh                |   13 -
 tests/binaries/Makefile               |   10 +-
 tests/binaries/bss.c                  |    3 +-
 tests/binaries/heap-fastbins.c        |   34 +--
 tests/binaries/heap-multiple-heaps.c  |   54 ++++
 tests/binaries/heap-non-main.c        |    3 +-
 tests/binaries/heap-tcache.c          |    3 +-
 tests/binaries/heap.c                 |    6 +-
 tests/binaries/memwatch.c             |   12 +
 tests/binaries/nested.c               |    3 +-
 tests/binaries/nested2.c              |    3 +-
 tests/binaries/set-permission.c       |    4 +-
 tests/binaries/unicorn.c              |   14 +
 tests/binaries/utils.h                |   44 ++++
 tests/helpers.py                      |  158 ++++++++----
 tests/runtests.py                     |  569 +++++++++++++++++++++++++++++++----------
 70 files changed, 2832 insertions(+), 1033 deletions(-)

2021.07

2 years ago

Changelog: 2021.07 - Impractical Information

Highlights of Impractical Information

  • New unified command argument parser
  • Better aliasing (thanks @hoefler02)
  • More documentation (thanks @plan-do-break-fix )
  • Updated the pattern command to strictly follow its usage in pwntools
  • Bug fixes in AARCH64 (thanks @borismol )
  • Improved CI & CD (Actions, Pylint, regressions)
  • Bug fix in heap bin tcache for multi-threaded execution (thanks @irontigran )
  • Started moving support for IDA/Binary Ninja interface to gef-extras, by leveraging rpyc
  • Removed more Python2 legacy code

Contributors

Name Number of commits
Boris Molodenkov 6
Grazfather 4
hugsy 79
Jacob Heybey 1
Jeffrey Swan 1
Michael Hoefler 14
Simon Wörner 1

Closed Issues

Closed Pull Requests

Commit details

106 commits since 2021.04

Commits

  • 2021-04-07 013ba5eMichael Hoefler • Added alias options: add, remove, list
  • 2021-04-07 3477d39Michael Hoefler • fixed typo
  • 2021-04-12 29368d0Michael Hoefler • subcommands / tab completion
  • 2021-04-12 46b24aaMichael Hoefler • clearer code
  • 2021-04-12 1cb15f4Michael Hoefler • update docs for aliases command
  • 2021-04-14 df34985Michael Hoefler • suggested changes
  • 2021-04-14 908db30Michael Hoefler • unit test
  • 2021-04-16 0ad5f99Jacob Heybey • Upgrade the tcache command to work for all threads
  • 2021-04-28 5ff0bdcJeffrey Swan • Fix some typos in the docs
  • 2021-05-18 2479d6aGrazfather • ida_gef: Add api map for DelBpt
  • 2021-05-21 4ae9dbbSimon Wörner • fix address underflow on disassemble (#652)
  • 2021-06-05 c032bf6Boris Molodenkov • Fix aarch64 tbz, tbnz, cbz and cbnz instructions estimation
  • 2021-06-06 fac0fb4Michael Hoefler • minor changes
  • 2021-06-07 03bb804Michael Hoefler • remove automatic saves
  • 2021-06-08 aa38365hugsy • implemented argparsing using argparse, applied on unicorn-emulate
  • 2021-06-08 0f7a5e5Michael Hoefler • fix alias tests
  • 2021-06-09 bd8e338hugsy • * improved command argparsing * ported a few functions to use it * updated unit tests to reflect the syntax change
  • 2021-06-09 08946bdhugsy • - switched emulate to use the new argparser
  • 2021-06-09 34b15d6hugsy • implemented argparsing using argparse, applied on unicorn-emulate
  • 2021-06-09 6482690hugsy • * improved command argparsing * ported a few functions to use it * updated unit tests to reflect the syntax change
  • 2021-06-09 2892d15hugsy • - switched emulate to use the new argparser
  • 2021-06-09 0b503b5hugsy • merge fix
  • 2021-06-10 bd65e81hugsy • [argparse] allowing positional arguments to pass default values as list
  • 2021-06-11 d6fd038hugsy • New addition for #659 : - added pattern command - changed the default period to 4 for better compat with pwntools (fixed #658) - updated unit tests
  • 2021-06-12 bbe84dbhugsy • Added argparsing support and unit test for processlisting (#659)
  • 2021-06-12 782dd88hugsy • - added RemoteCommand for argparsing (#659) - fixed ArgumentParser prog name (#659)
  • 2021-06-14 2ed2373Michael Hoefler • gef command documentation
  • 2021-06-14 9e27f9eMichael Hoefler • fix period
  • 2021-06-15 d0a01daMichael Hoefler • gef subcommand documentation
  • 2021-06-15 50ea000Michael Hoefler • fixes + line wrapping
  • 2021-06-20 5d167f8hugsy • * Addresses most of the concerns raised in the review of PR #661 * Added the possibility to use short flags * Updated the documentation to provide relevant examples
  • 2021-06-20 7e47e8fhugsy • Updated example of print-format to reflect short flag
  • 2021-06-20 f52183fhugsy • [printf-format] fixed incorrect syntax
  • 2021-06-20 eda454bhugsy • Doc: added an example for parse_arguments to illustrate how to use positional arguments with a list of option (as suggested in #661)
  • 2021-06-21 abe837ehugsy • Making @Grazfather happy again 😀(issue #661)
  • 2021-06-22 9f9b9b9hugsy • [copy_to_clipboard] using context (see #661)
  • 2021-06-22 202a185hugsy • Fixed issue #664 : adding an acknowledgement section to project sponsors
  • 2021-06-22 7e62ddahugsy • [gef-remote] fixed missing incorrect option name
  • 2021-06-22 a652786hugsy • [capstone-disassemble] using new argparsing (see ##661)
  • 2021-06-22 5f5ba01hugsy • [registers] using new argparsing (issue #661)
  • 2021-06-22 c5644b1hugsy • [elf-info] using new argparsing (issue #661)
  • 2021-06-22 9ffe5cdhugsy • [name-break] using new argparsing (issue #661)
  • 2021-06-22 e38f7ddhugsy • [hexdump] using new argparsing (issue #661)
  • 2021-06-22 556aa92hugsy • [patch] using new argparsing (issue #661)
  • 2021-06-23 4661f81hugsy • [discord-notify] using embeds to make things more explicit, bumped to 0.3.2
  • 2021-06-24 a6d2bafhugsy • [discord-notify] fixed json typo + removed unsupported hyperlink
  • 2021-06-24 b335d3dhugsy • [discord-notify] better formatting using embeds
  • 2021-06-24 de053b8hugsy • [discord-notify] fixed typo
  • 2021-06-24 6acab61hugsy • [discord-notify] fixed syntax error
  • 2021-06-24 417f7b0hugsy • [discord-notify] using the proper syntax for Ilshidur/action-discord
  • 2021-06-24 71dbaddhugsy • [discord-notify] typo
  • 2021-06-25 762e73dBoris Molodenkov • Restore selected frame after context_threads
  • 2021-06-24 7b2a0a2hugsy • [discord-notify] bye bye trash Ilshidur/action-discord , hello sarisia/actions-status-discord
  • 2021-06-24 8b04ca3hugsy • [discord-notify] syntax
  • 2021-06-24 847949bhugsy • [discord-notify] last touch
  • 2021-06-24 ba88941hugsy • [discord-notify] last touch
  • 2021-06-25 ee3564ahugsy • [discord-notify] fixed syntax error in issue notification
  • 2021-06-26 0749012Boris Molodenkov • Fix incorrect lru_cache usage
  • 2021-06-26 ac545fehugsy • [ci] caching libs for test runs - #660
  • 2021-06-26 527b840hugsy • [ci] better jobs splitting - #660
  • 2021-06-26 e83dafchugsy • [ci] fixed yaml syntax error - #660
  • 2021-06-27 75223e5Boris Molodenkov • Fix frame level in context_trace and highlight selected frame
  • 2021-06-28 cdb4896Boris Molodenkov • Fix context regs order (#670)
  • 2021-06-30 15ffa33hugsy • Improvement of get_register after #669 to restore some decent level of caching
  • 2021-06-30 cbaf9d7hugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2021-06-30 42c7e51hugsy • added regression tests for the PRs #670 and #668
  • 2021-06-30 62b7a04hugsy • added regression tests for the PRs #670 and #668
  • 2021-06-30 1e9b7dehugsy • removed useless todo
  • 2021-06-30 686ff82hugsy • fixed pylint
  • 2021-07-01 39503dfhugsy • turn pylint into something actionable
  • 2021-07-01 4d4a813hugsy • minor pylint suggested improvements
  • 2021-07-01 ee81a62hugsy • minor pylint fixes (no-space-after-comma)
  • 2021-07-01 42d524chugsy • [pylint] add missing-import exceptions
  • 2021-07-01 05d244fhugsy • [actions] fixing gh action cache
  • 2021-07-01 6ba3867hugsy • [actions] fixed missing path for gh action cache
  • 2021-07-01 185fa0chugsy • [actions] fixed bad archive path
  • 2021-07-01 2b5bb29hugsy • [actions] caching is hard
  • 2021-07-01 5fb2e90hugsy • adding parse_arguments for pie * commands (#659)
  • 2021-07-03 c9b0bdahugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
  • 2021-07-03 ab0edc5hugsy • [ci] Fixed a bug inrun-test.yml that prevented cache to be correctly collected
  • 2021-07-05 7d1ab00Boris Molodenkov • Add missing aarch64 condition codes (#671)
  • 2021-07-05 80c768aGrazfather • Remove more python2-specific stuff
  • 2021-07-05 e95b072Grazfather • Fix caching in CI tests

2021.04

3 years ago

April 2021 Release with improvements that include:

  • better performance by improving caching system
  • better Qemu-user support
  • made the code more Python3 friendly
  • some UI improvements

Enjoy 🍻

2021.01

3 years ago

Routine release because it's been a while 😂

Bug were fixed, issues were addressed, people are happy.

Enjoy 🍻!

2020.06

3 years ago

Incomparable Evil

Features / improvements:

  • Glibc 2.32 heap safe linking support added
  • pcustom: now supports recursive structure
  • Rewrite of gef-binja, and is now a plugin available from the Binary Ninja Plugin Store

And as usual many fixes, ~60 commits, 3 new committers, etc. etc.

Enjoy 🍻!