We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

GNU poke, an extensible editor for structured binary data

00:00

Formal Metadata

Title
GNU poke, an extensible editor for structured binary data
Title of Series
Number of Parts
44
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Producer

Content Metadata

Subject Area
Genre
Abstract
GNU poke is a new interactive 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. GNU poke is a new interactive 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. Once a user has defined a structure for binary data (usually matching some file format) she can search, inspect, create, shuffle and modify abstract entities such as ELF relocations, MP3 tags, DWARF expressions, partition table entries, and so on, with primitives resembling simple editing of bits and bytes. The program comes with a library of already written descriptions (or "pickles" in poke parlance) for many binary formats. GNU poke is useful in many domains. It is very well suited to aid in the development of programs that operate on binary files, such as assemblers and linkers. This was in fact the primary inspiration that brought me to write it: easily injecting flaws into ELF files in order to reproduce toolchain bugs. Also, due to its flexibility, poke is also very useful for reverse engineering, where the real structure of the data being edited is discovered by experiment, interactively. It is also good for the fast development of prototypes for programs like linkers, compressors or filters, and it provides a convenient foundation to write other utilities such as diff and patch tools for binary files. This talk (unlike Gaul) is divided into four parts. First I will introduce the program and show what it does: from simple bits/bytes editing to user-defined structures. Then I will show some of the internals, and how poke is implemented. The third block will cover the way of using Poke to describe user data, which is to say the art of writing "pickles". The presentation ends with a status of the project, a call for hackers, and a hint at future works.
Text editorSystem programmingDedekind cutSheaf (mathematics)String (computer science)Computer fileScripting languageFile formatLatent heatComputer programmingProgramming languageGraphics softwareSoftwareRevision controlCore dumpBeta functionPOKEComputer programTerm (mathematics)Computer fileText editorData structureCore dumpMultiplication signSheaf (mathematics)Arithmetic progressionScripting languageArithmetic meanCompilerSoftware bugPoint (geometry)Binary fileAbstractionDemo (music)InformationChainingTotal S.A.TouchscreenPhysicalismPatch (Unix)Uniform resource locatorHacker (term)Gastropod shellAssembly languageLinker (computing)Object-oriented programmingLibrary (computing)Field (computer science)Right angleHardware description languageHazard (2005 film)BitFunction (mathematics)Content (media)Computer clusterDifferent (Kate Ryan album)Computer animationLecture/Conference
Gastropod shellHacker (term)Core dumpExecution unitData structureComputer filePOKEProgramming languageMereologyBinary fileBeat (acoustics)Core dumpReading (process)BitGastropod shellComputer programComputer animation
Limit (category theory)Gastropod shellCore dumpWechselseitige InformationExecution unitPersonal identification numberProgrammable read-only memoryRevision controlComputer configurationImplementationInclusion mapFile formatPOKEConvex hullComputer filePOKEExpressionDemo (music)NumberField (computer science)Data structureConstraint (mathematics)CodeEmailProgramming languageRight angleType theoryComputer animation
Gastropod shellRevision controlCore dumpHill differential equationNo free lunch in search and optimizationType theoryDescriptive statisticsPOKECore dumpComputer fileVariable (mathematics)Hash functionComputer animation
Gastropod shellHill differential equationVirtual machineRevision controlMotion blurFlagInformationPointer (computer programming)Link (knot theory)String (computer science)Inclusion mapNo free lunch in search and optimizationConvex hullTape driveExecution unitVariable (mathematics)Sheaf (mathematics)Element (mathematics)Computer fileSystem callTable (information)Array data structureEmailNumberSequenceDifferent (Kate Ryan album)Constraint (mathematics)Real numberUniform resource locatorRight angleField (computer science)FlagFile formatDecimalException handlingCASE <Informatik>Multiplication signString (computer science)Stability theoryObject-oriented programmingError messageVideo gameFunctional programmingStreaming mediaType theoryPOKEDecision theoryPointer (computer programming)Content (media)Level (video gaming)Line (geometry)Demo (music)SpacetimeReading (process)FluxPersonal identification numberComputer animationSource code
Array data structureIntegerString (computer science)Programming languageMaß <Mathematik>Parity (mathematics)Operations researchInterior (topology)POKEObject-oriented programmingDifferent (Kate Ryan album)File formatBitType theoryBeat (acoustics)Computer programElectronic mailing listCharacteristic polynomialLine (geometry)Computer configurationOrder of magnitudeNumeral (linguistics)Military base1 (number)QuicksortData structureString (computer science)Normal (geometry)Term (mathematics)Programming languageOperator (mathematics)IntegerMultiplication signExecution unitOrientation (vector space)Radical (chemistry)CASE <Informatik>Strategy gameRight angleAlgebraBasis <Mathematik>Array data structureComputer filePersonal identification numberMetreSemiconductor memoryComputer animation
Gastropod shellInformationChi-squared distributionLink (knot theory)Tape driveConvex hullSineTerm (mathematics)POKEData conversionOrder of magnitudeType theoryObject-oriented programmingIntegerMathematicsPhysicalismSlide ruleWebsiteExecution unitRight angleComputer animation
Data conversionExecution unitProgramming languageArray data structureType theoryString (computer science)Element (mathematics)FlagField (computer science)Mach's principleObject-oriented programmingDemo (music)POKEType theoryArray data structureString (computer science)Data structureBitInterior (topology)NumberParameter (computer programming)Multiplication signInfinityBlock (periodic table)IntegerSemiconductor memoryComputer fileFile formatProgramming languageExecution unitElement (mathematics)Auditory maskingInheritance (object-oriented programming)Point (geometry)Sheaf (mathematics)Default (computer science)Algebraic closureFunctional programmingConnectivity (graph theory)Variable (mathematics)Social classLengthField (computer science)Computer programQuicksortEigenvalues and eigenvectorsRight angleFile systemEmailStrategy gameSet (mathematics)Source codeSound effectoutput1 (number)Uniform resource locatorData conversionSign (mathematics)Programmable read-only memoryComputer animation
Field (computer science)Mach's principleType theoryProgramming languageFrame problemConstraint (mathematics)Field (computer science)POKEProcess (computing)Type theoryError messageScripting languageLevel (video gaming)Codierung <Programmierung>View (database)BitWordConstraint (mathematics)Exterior algebraRight angleCondition numberFunctional programmingConstructor (object-oriented programming)ExpressionSparse matrixAxiom of choiceQuicksortBlock (periodic table)NeuroinformatikData structureKeyboard shortcutHidden Markov modelRecursive descent parserArray data structureIntegerFrame problemFile formatScherbeanspruchungMappingSystem callMP3ParsingSpacetimeMereologyPersonal identification numberPoint (geometry)Network topologyLatent heatCodeCASE <Informatik>Normal (geometry)String (computer science)CodePointer (computer programming)Computer fileoutputComputer animation
Polymorphism (materials science)Interior (topology)Programming languageType theoryBlock (periodic table)Texture mappingVariable (mathematics)POKERead-only memorySpacetimePOKEMappingVariable (mathematics)CodeLevel (video gaming)Multiplication signElement (mathematics)Computer fileArray data structureIntegerComputer animation
Interior (topology)Gastropod shellCore dumpExecution unitHidden Markov modelDifferent (Kate Ryan album)SpacetimeSound effectMathematicsEqualiser (mathematics)Array data structureIntegerElement (mathematics)Centralizer and normalizerPOKE2 (number)Goodness of fitComputer animation
Variable (mathematics)POKERead-only memorySpacetimeTexture mappingProgramming languageType theoryArray data structureData typeParameter (computer programming)String (computer science)File formatFunction (mathematics)Transport Layer SecurityArchitectureTransformation (genetics)Mathematical analysisCompilerCode generationPhase transitionParsingCodeMacro (computer science)SpektralmaßAssembly languageLoop (music)AlgorithmIterationInstallable File SystemDatabase transactionCache (computing)Object-oriented programmingProblemorientierte ProgrammierspracheOvalCore dumpLocal GroupRule of inferenceFunctional programmingUniform resource locatorQuicksortArray data structureDifferent (Kate Ryan album)Object-oriented programmingCompilerExpressionAssembly languagePOKEProgramming languageSpacetimeHand fanCodeDisassemblerMultiplication signCartesian coordinate systemVirtual machineCore dumpTexture mappingRight angleProcess (computing)Semiconductor memoryString (computer science)Run time (program lifecycle phase)Computer fileNormal (geometry)Level (video gaming)File systemDefault (computer science)Line (geometry)MereologyCoroutineData structureOperator (mathematics)Type theoryParameter (computer programming)Variable (mathematics)MappingElectronic mailing listCASE <Informatik>Message passingQuantum stateLengthSource codeBitFront and back endsMachine codeMathematical optimizationReading (process)AbstractionVirtualizationComputer architecturePhysical systemComputer animation
Gastropod shellCore dumpHill differential equationSystem programmingLocal GroupRule of inferenceOvalVariable (mathematics)Type theoryFunction (mathematics)File formatComputer fileComputer networkProblemorientierte ProgrammierspracheParameter (computer programming)Core dumpRight anglePOKEFunctional programmingSource codeTheory of relativityComputer fileComputer animationLecture/Conference
Mountain passSuite (music)Core dumpArray data structureComputer fileProgramming languageType theoryAlgebraic closureVariable (mathematics)Texture mappingConstructor (object-oriented programming)Set (mathematics)Pattern matchingImplementationSpacetimeProcess (computing)String (computer science)Module (mathematics)Physical systemHome pageHacker (term)Source codeNetwork topologyComputer fileSoftware testingRaster graphicsFunctional programmingHacker (term)Multiplication signSuite (music)Game controllerTheory of relativityMassSet (mathematics)Electronic mailing listFreewareInformationEnumerated typeSequenceType theoryDirectory serviceSearch treeArithmetic progressionSource codeLoop (music)Projective planeoutputHome pageQuicksortAuditory maskingLink (knot theory)Programming languageBeat (acoustics)Computer animation
System programmingCodierung <Programmierung>Binary fileFunctional programmingMereologyCASE <Informatik>Text editorComputer filePOKEDescriptive statisticsProgramming languageOrder (biology)PrototypeData structureWritingLibrary (computing)Multiplication signProjective planeComputer programRight angleLine (geometry)Constraint (mathematics)Flow separationOpen sourceBitMoment (mathematics)IntegerGraphics tabletLipschitz-StetigkeitCodeUtility softwareParsingDifferenz <Mathematik>Patch (Unix)Repository (publishing)Entropie <Informationstheorie>Lecture/Conference
System programmingWebsiteLattice (order)Computer animation
Transcript: English(auto-generated)