_____ ---' __\_______ ______)GNU poke
__)The extensible editor for structured __) binary data
---._______) [ video | releases | pickles | development | community | related projects ] GNU poke is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them. ,---- | (poke) dump | 76543210 0011 2233 4455 6677 8899 aabb ccdd eeff 0123456789ABCDEF | 00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............ | 00000010: 0100 3e00 0100 0000 0000 0000 0000 0000 ..>............. | 00000020: 0000 0000 0000 0000 0802 0000 0000 0000 ................ | 00000030: 0000 0000 4000 0000 0000 4000 0b00 0a00 ....@.....@..... | 00000040: 5548 89e5 b800 0000 005d c300 4743 433a UH.......]..GCC: | 00000050: 2028 4465 6269 616e 2036 2e33 2e30 2d31 (Debian 6.3.0-1 | 00000060: 382b 6465 6239 7531 2920 362e 332e 3020 8+deb9u1) 6.3.0 | 00000070: 3230 3137 3035 3136 0000 0000 0000 0000 20170516........ | (poke) load elf | (poke) var ehdr = Elf64_Ehdr @ 0#B | (poke) ehdr.e_ident | struct { | ei_mag=[0x7fUB,0x45UB,0x4cUB,0x46UB], | ei_class=0x2UB, | ei_data=0x1UB, | ei_version=0x1UB, | ei_osabi=0x0UB, | ei_abiversion=0x0UB, | ei_pad=[0x0UB,0x0UB,0x0UB,0x0UB,0x0UB,...], | ei_nident=0x0UB#B | } `---- Introductory Video ================== Current Release =============== poke 4.2 [relnotes] [manual] [1 July 2024] [See all releases] If you find a bug running poke, please report it in our bugzilla instance at sourceware. Pickles ======= GNU poke comes with many pre-written pickles that can be used to poke at many different kind of binary data. However, some pickles are big and complex enough to benefit from being distributed on their own packages. poke-elf poke-dwarf -------- ---------- poke-elf is a full-fledged pickle poke-dwarf is a collection of for editing ELF object files, pickles for editing DWARF debug executables, shared libraries info. and core dumps. It supports many architectures and extensions, as well as DWARF. Development =========== Sources Mailing Lists ------- ------------- The source code is available in Development of GNU poke is a git repository hosted at GNU driven in the poke-devel savannah. The repository can be mailing list. Please subscribe cloned using several methods. if you want to hack with us. Public archives are available. Continuous Integration ---------------------- Buildbots hosted at Sourceware: Pipelines hosted at GitLab: Community ========= IRC Channel Blogs ----------- ----- Developers and users gather in Pokology is a community-driven the #poke channel at Libera.Chat. website maintained by the poke users and developers. Related Projects ================ PACME poke-el ----- ------- PACME is an Acme-like user interface Emacs interface to poke. It is for poke, in the form of a bunch of in GNU ELPA. The git repo is here. small C programs collated by a screen manager. poke-mode Jitter --------- ------ Emacs major mode for editing Poke The Poke Virtual Machine is based It is in GNU ELPA. The git repo on Jitter by Luca Saiu. is here.