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
tomkdocs-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
oremulate
) 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 advancedrpyc
Python library. -
A new subcommand appeared,
gef install
which allows to install commands fromgef-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
- 20 PRs closed ( 852 • 851 • 849 • 848 • 846 • 845 • 844 • 843 • 842 • 841 • 839 • 834 • 833 • 830 • 828 • 827 • 825 • 824 • 822 • 821 )
Commit details
148 commits since 2021.10
Commit log
- 2021-10-22 b982f3c • hugsy • Fixed minor bug in
new-release.py
in thegit
shell command - 2021-10-22 83b4934 • hugsy • Update README.md
- 2021-10-25 50231d9 • mh4ckt3mh4ckt1c4s • Fix typo in
docs/api.md
(#747) - 2021-10-31 c10b1e4 • hugsy • Update README.md
- 2021-11-02 8fc0583 • skysider • add number arg for 'heap chunk' command (#745)
- 2021-11-16 721ad4b • mattadev • Use sha256 for gef_hash to quiet static analyzers (#751)
- 2021-11-27 34a14bc • hugsy • Remove the
assert
onget_register
(#754) - 2021-11-27 152bb0c • hugsy • fixed typo from #754
- 2021-11-28 97ad7f7 • hugsy • [CI] Change test order
- 2021-11-29 5b91420 • Teddy Heinen • add support for hex strings to print-format (#758)
- 2021-12-03 add63da • theguy147 • fix typo in GotBaseFunction docs (#761)
- 2021-12-06 04f847b • hugsy • Bound
nb_argument
when printing guessed arguments (fix #753) (#755) - 2021-12-06 702858c • hugsy • Remove final
assert
(#756) - 2021-12-06 3efb77b • hugsy • Adds constants to
gef.py
for M68K support (ingef-extras
) (#757) - 2021-12-11 d512ac9 • hugsy • Added @therealdreg to the sponsors list
- 2021-12-11 1c9da33 • hugsy • Update README.md
- 2021-12-11 d98ffb7 • Wyatt Neal • Fixes GEF installer bash script #762)
- 2021-12-11 61782e4 • hugsy • [Refactor] Adds a global class
Gef
and instancegef
that will be used to make the API simpler and more Pythonic. Also adds memory access (viagef.memory
) and settings (viagef.config
) - 2021-12-11 380412e • hugsy • Added GEF compatibility matrix
- 2021-12-13 cdfdf42 • hugsy • More changes to a more pythonic version - creates a
GefHeapManager
class - deprecates many functions to an equivalent more readable - madeGlibcArena
andGlibcChunk
classes iterable - 2021-12-13 9f45be8 • hugsy • Fixed the heap (arena & chunk) iterators
- 2021-12-13 e36152d • hugsy • - Separate gef managers initialization - Add
gef.session
which includes many runtime info (.pagesize
,.canary
,.constants
, etc.) - Add more docstrings - The GDB command objects are now in the namespacegef.gdb
- Adjust some gef functions to check result - Makeendian_str
,gef_pagesize
,gef_read_canary
,set_gef_setting
andget_gef_setting
deprecated APIs - 2021-12-13 fbbcc3a • hugsy •
get_memory_alignment()
->gef.arch.ptrsize
- 2021-12-13 e709aeb • hugsy • Fixed
heap.base_address
- 2021-12-13 43a9920 • hugsy •
get_pid()
->gef.session.pid
- 2021-12-13 5b20f3c • hugsy • Fixed
canary
command - 2021-12-13 87e6204 • hugsy • Fixed
elf-info
- 2021-12-13 52b0646 • hugsy • Fixed
patch qword
- 2021-12-13 d1aee83 • hugsy • CI passing w00t
- 2021-12-13 1f62d53 • hugsy • test everything
- 2021-12-13 7698f30 • hugsy • making linters happy
- 2021-12-14 b9493f2 • hugsy • fixed
GlibcArena.__eq__
- 2021-12-15 a98dcb9 • hugsy • -
get_register
->gef.arch.register()
- new context manager for output redirection:RedirectOutputContext
- 2021-12-15 321e104 • hugsy • added
__str__
toSection
- 2021-12-16 a7ab48e • theguy147 • refactor: use Generators and Comprehension (#771)
- 2021-12-16 f497bc8 • theguy147 • refactor: replace OSError aliases (#769)
- 2021-12-25 08f4b28 • szotsaki • Update dereference.md (#773)
- 2022-01-05 a697afd • hugsy • use avatars for contributors and sponsors in readme and docs/index
- 2022-01-07 8a27a38 • theguy147 • refactor: remove utf8 encoding declaration (#770)
- 2022-01-07 4f6ab0c • hugsy • Added
gef.memory.maps
- 2022-01-07 d2f5f27 • hugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
- 2022-01-07 f0126ce • hugsy • added
gef.session.qemu_mode
andgef.session.remote
- 2022-01-07 8262adc • hugsy • added a simple helper
reset()
that allows to entirely reset the gef session usingpi reset()
- 2022-01-07 0ee63e3 • hugsy •
__gef_redirect_output_fd__
->gef.ui.redirect_fd
- 2022-01-07 df129ed • hugsy • replaced
__gef_int_stream_buffer__
->gef.ui.stream_buffer
- 2022-01-07 809c735 • hugsy • removed global
__infos_files__
, was obsolete since we started usinglru_cache
- 2022-01-07 eb7312b • hugsy •
__commands__
-->gef.session.commands
- 2022-01-07 d83b239 • hugsy •
highlight_table
-->gef.ui.highlight_table
- 2022-01-07 67df573 • hugsy •
libc_args_definitions
-->gef.session.libc_args_definitions
- 2022-01-07 93f2b15 • hugsy • restore commands & functions as globals
- 2022-01-07 84b00f1 • hugsy • fixed typo in uimanager
- 2022-01-07 4bcf19a • hugsy •
new_objfile_handle
doesn't need to re-init the managers since we already reset its cache - 2022-01-07 b0da3f8 • hugsy •
__watches__
->gef.ui.watches
- 2022-01-07 f08667b • hugsy •
__context_messages__
->gef.ui.context_messages
- 2022-01-07 bf96176 • hugsy •
__gef_convenience_vars_index
->gef.session.convenience_vars_index
- 2022-01-07 10a97c6 • hugsy • linting
- 2022-01-07 ece1662 • hugsy • moved the last globals to
gef.session
- 2022-01-08 b95c4ac • hugsy • making
ptrsize
static for x86 and x64 - 2022-01-08 a04cd64 • hugsy • making
ptrsize
static for arm, arm64 and mips - 2022-01-08 6514ad3 • hugsy • restoring MIPS64
- 2022-01-08 bca69da • hugsy • hardcoding endianness for x86,64 and arm,64
- 2022-01-08 32941ad • hugsy • added a class decorator to register architectures
- 2022-01-08 d5a3bb6 • hugsy • changed path to
pathlib.Path
(#775) added test fordownload_file
- 2022-01-08 64e3115 • hugsy • [arm] fix
ptrsize
caching - 2022-01-09 1a430d5 • theguy147 • refactor: add type hints (#774)
- 2022-01-09 8de60eb • hugsy • Merge branch 'gdb_8_py36_code_refactor' of github.com:hugsy/gef into gdb_8_py36_code_refactor
- 2022-01-09 5f641bb • hugsy • Replaced
GEF_RC
to aPath
object (#775) - 2022-01-10 b653a6e • hugsy • Automatically generating gef api (#776)
- 2022-01-10 f7979f5 • hugsy • Markdown doc also shows if a function/class is deprecated (#776)
- 2022-01-10 3179289 • hugsy • [docs] Partially fix hrefs in
api/gef.md
- 2022-01-10 c25f9c1 • hugsy • [gef] fixing glibc main arena calculation for arm [docs]
@deprecated
adds a note in the api doc - 2022-01-11 29a9925 • hugsy • [tests] fixed
heap set-arena
- 2022-01-11 adcc1d4 • hugsy • Fixed PPC specs URL
- 2022-01-11 ad51825 • theguy147 • refactor: use f-strings across codebase (#768)
- 2022-01-11 8ad0c4f • hugsy • Fixed PPC specs URL
- 2022-01-11 1683fcb • hugsy • [docs] Fixed complete API link in
api.md
- 2022-01-11 bf70642 • hugsy • Merge branch 'dev' into gdb_8_py36_code_refactor
- 2022-01-12 bdea715 • hugsy • first run of pr feedback
- 2022-01-12 2975d5f • theguy147 • [CI] Add tests for heap bins(#780)
- 2022-01-12 795f51c • hugsy • [docs] updating docs to stipulate the new minimum requirements for gef
- 2022-01-12 b442af3 • hugsy • [elf] fixed duplicate
SHT_NUM
value - 2022-01-16 8ebd7b0 • hugsy • Apply suggestions from code review
- 2022-01-16 fa28aa2 • hugsy • Removed debug info in
FormatStringSearchCommand
- 2022-01-16 e4a77aa • hugsy • - fixed
heap
CI failures (defered to #785) - minor type adjustments - 2022-01-16 5f31516 • Grazfather • Merge pull request #779 from hugsy/gdb_8_py36_code_refactor
- 2022-01-17 9055b65 • Grazfather • tests: Make sure keystone and capstone tests fail with missing lib (#791)
- 2022-01-17 599db81 • hugsy • Fixed bugs in
GefSetting
that prevented saved values to be loaded (#792) - 2022-01-18 67fccb5 • Zion • updated add_context_pane settings use (#796)
- 2022-01-18 d162004 • Grazfather • Use https URLs where we can (#793)
- 2022-01-18 9560041 • hugsy •
@deprecated
warning display can be toggled off (#795) - 2022-01-20 c6909e1 • theguy147 • refactor: add missing py3.6 type hints (#797)
- 2022-01-20 eaf9d11 • Grazfather • Variadic gef print (#789)
- 2022-01-21 b4bffdc • hugsy • Update copyright year (#800)
- 2022-01-25 779369f • hugsy • Complete rewrite of
pcustom
command (#794) - 2022-01-25 364cf44 • hugsy • ELF class upgrades (#798)
- 2022-01-27 58f2a2e • theguy147 • fix: heap bins commands (#805)
- 2022-01-29 65daade • hugsy • - Regenerated API doc
- 2022-01-29 a280cfe • Grazfather • Re-add lru_cache to __get_register_for_selected_frame (#809)
- 2022-01-30 545fa28 • hugsy • fixed
theme
: use the gef settings manager - 2022-01-30 8c8c838 • hugsy • - changed the
try
/except
forgef restore
to indicate which setting name is missing - 2022-01-30 283690a • hugsy • - added cache management for
Architecture
- 2022-01-30 48d39bb • code-byter • Update gef config parameters of gef-extras installation script (#807)
- 2022-02-01 c078733 • Grazfather • Fix RISCV arch detection (#790)
- 2022-02-01 d1fa00f • theguy147 • fix: make shebang lines portable (#814)
- 2022-02-04 4365d9c • hugsy • Fix double loading of external plugins (#816)
- 2022-02-09 8c0f625 • hugsy • - create
gef.ui.libc_args_table
(#821) - 2022-02-09 d86e7a0 • hugsy • Minor follow-up of #821
- 2022-02-13 82b2570 • hugsy • Remove
ida-interact
(#817) - 2022-02-13 37bb542 • hugsy • Add class factory support for
pcustom
(#819) - 2022-02-13 18c7ba4 • hugsy • Better tests (#813)
- 2022-02-14 2b7f315 • Ebubekir Türker • remove unnecessary warnings (#824)
- 2022-02-21 18c40b6 • Boris-Chengbiao Zhou • Add mechanism to let architectures specify whether they support a gdb arch (#822)
- 2022-02-26 0954a16 • hugsy • New subcommand
gef install
(#825) - 2022-02-26 6e3cd5c • hugsy • Update gef.md
- 2022-03-04 7817bea • hugsy • [docs] http -> https because apparently it's a big deal for debugging stuff
- 2022-03-04 93f3010 • hugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
- 2022-03-07 d540abd • hugsy • pushing urgent fix for #831 (even tho
get_arch
will be deprecated after #827) - 2022-04-09 e50af77 • Khaotic • Improve identifying Stack Canaries (#833)
- 2022-05-22 7f45550 • hugsy • Type Hinting Fixes - Part 1 (#827)
- 2022-06-13 a89f91c • hugsy • Move 3rd party to extras (#841)
- 2022-06-13 d7d64a2 • hugsy • Update generate-docs.yml
- 2022-06-13 dca3cb1 • hugsy • Update generate-docs.yml
- 2022-06-13 a7d8fa5 • hugsy • Updated documentation appearance
- 2022-06-13 d836054 • hugsy • Squashed commit of the following:
- 2022-06-13 5b468d0 • hugsy • 🐛 forcing docs to run the same version than gdb
- 2022-06-13 ca67ced • hugsy • 🐛 Last doc fixes, GEF API is now generated from Actions
- 2022-06-14 c671bed • hugsy • Update install.md
- 2022-06-14 37ddf86 • hugsy • Updated
gef-extras.sh
installation script - 2022-06-14 d463f7d • hugsy • [docs] hardcoded emojis instead of md
- 2022-06-16 8ee281d • hugsy • Update README.md
- 2022-06-16 f375efc • hugsy • Merge branch 'dev' of github.com:hugsy/gef into dev
- 2022-06-17 a78915d • hugsy • remove rtfd cfg file
- 2022-06-17 1c295fc • hugsy • restoring temporarily rtfd for redirection to the new docs
- 2022-06-18 dbf2372 • hugsy • Remove
ida-interact
(#842) from GEF, entirely moved to GEF-Extras - 2022-06-19 bf959a3 • hugsy • Type hinting fixes - part 2 (#839)
- 2022-06-19 0fcd20a • Dreg • keep x86 and x86_64 FLAGS Register when calls to mprotect. Added pushfd, popfd, pushfq, popfq instructions (#844)
- 2022-06-20 f890579 • hugsy •
master
->main
(#845) - 2022-06-23 0100c7b • hugsy • New abstraction class for fileformat, but defaults to GEF. This allows PE/MachO fileformat to be supported via gef-extras
- 2022-06-23 1e8f55f • Dreg •
print-format
andpatch byte
commands can work together (#843) - 2022-06-24 343cd23 • Dreg • Fix typo in patch byte help (#848)
- 2022-06-24 5dd793d • hugsy • 🐛 fixes - moved prompt init after gef initial loading - added a
__str__
forFileFormat
-FileFormat
also requires a section member - 2022-06-25 546f4b1 • hugsy • Better
gef-remote
: rewrite and addremote
full support (#830) - 2022-06-25 9834252 • hugsy • Better
gef-remote
- part 2: Remote Qemu (#846) - 2022-06-26 09b2f13 • hugsy • Merge branch 'dev' into allow_new_file_format
- 2022-06-26 a2a4bfa • hugsy • Minor update to unittest of
print-format
after #843 (#852) - 2022-06-26 d594eb3 • hugsy • Fix 850 (#851)
- 2022-06-26 7925b0a • hugsy • Merge branch 'dev' of github.com:hugsy/gef into allow_new_file_format
- 2022-06-26 06f879a • hugsy • [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(-)