MBot Posted June 26, 2022 Posted June 26, 2022 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 10 issues closed ( 850 • 840 • 838 • 835 • 832 • 831 • 829 • 826 • 823 • 820 ) 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 the git 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 on get_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 (in gef-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 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 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 - made GlibcArena and GlibcChunk 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 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 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__ to Section 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 and gef.session.remote 2022-01-07 8262adc • hugsy • added a simple helper reset() that allows to entirely reset the gef session using pi 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 using lru_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 for download_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 a Path 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 for gef 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 and patch 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__ for FileFormat - FileFormat also requires a section member 2022-06-25 546f4b1 • hugsy • Better gef-remote : rewrite and add remote 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(-) Download
Recommended Posts