Git Product home page Git Product logo

pre_workbench's Introduction

Protocol Reverse Engineering Workbench

PRE Workbench is a software to support researchers in reverse engineering protocols and documenting the results. It supports various sources to import protocol traffic from, helps the discovery process by displaying different views and heuristic-based highlighting on data, and aids in documenting and sharing findings.

Screenshot

Installation

For installation instructions see docs/install.md.

Development

make dev or python3 setup.py build_ext --inplace to compile pyx files in place

make package builds pip packages and uploads to pypi

make pyinstaller builds PyInstaller package (run pip install pyinstaller before)

Run scripts\build_installer.bat from a cmd.exe in this directory to build the setup.exe on Windows.

Third Party

Icons

Fugue Icons, https://p.yusukekamiyamane.com/

Crystal Project, https://store.kde.org/p/1002590/

Libraries

PyQt5

QScintilla

Lark Parser

Cython

Qt-Advanced-Docking-System

pre_workbench's People

Contributors

luelista avatar

Stargazers

 avatar dà fǎ shī avatar Philipp Pagel avatar Paul G avatar  avatar  avatar  avatar bryan avatar  avatar Jakob Link avatar  avatar Fabian Freyer avatar Aiekick avatar

Watchers

 avatar Jiska Classen avatar

Forkers

hl0071

pre_workbench's Issues

*** Hex viewer meta-issue

  • re-implement "Data Inspector" in HexView #4
  • Entropy detection #1
  • histogram (1, 2, 4 byte blocks)
  • simple range annotation
  • create FormatInfo fields from context menu
  • faster implementation of RangeList (intervaltree?)

Select SmartSelection matches

Currently SmartSelection matches can be selected from the context menu of the selection:

grafik

It would be useful to allow selecting matches by directly clicking on them, e.g. ctrl-click on a match.

Naming

  • rename ObjectWindow to DataSourceWindow?
    • or DataWindow? or some even better name?
    • or atleast in the UI to "Data Window"?
  • rename Selection Heuristics to SmartSelection?

fix PcapFileDataSource

parse binary only to get reassemble_into and store_into lists, without producing range-annotated hexdump

*** dissector generation

General

  • ??? how to handle parse_with, reassemble_into, store_into
  • convert expressions to C
  • ...numeric
  • ...array/member (helper functions)

Generate readers - similar to parse methods, but with static calls instead of loops over self.children

  • read bytes and fixed from tvb (see also issue #10)
  • generate struct reader (generate sequential code to parse children one by one)
  • generate repeat reader (parse child in loop)
  • generate variant reader (generate sequential code to try variants until one succeeds)

change FixedFieldFI to wireshark types

FixedFieldFI currently specifies types with the python struct.pack type syntax.

changing this to wireshark's field types ("L" --> FI_UINT32 etc) would make generating wireshark dissectors easier and more predictable

also, the ws field types are kind of more powerful (more string types) and have useful predefined types (ip, mac address)

save as dialog bugs

  • "save as" for new files should start in project directory - currently it starts in "/" or some last-used location
  • all file extensions should be allowed - currently (at least on macOS) a ".txt" suffix is forced

padding field (VarByteFieldFI ?)

add a field type (or a param / expression syntax for VarByteFieldFI) to allow easy specification of padding fields (pad to length, pad to multiple of N)

Length detection highlighting disappears when scrolling

Hi!

The length highlighting in the hex view is super neat, but when selecting the length field of a long-ish packet that does not fit on the screen completely, the highlighting disappears when scrolling down to find the end, even though the length field stays selected.

(tested on the pypi release)

Parse selection with grammar

allow user to parse only a selected range of a ByteBuffer with the grammar, not the whole ByteBuffer

Data inspector kindof allows this already

maybe just implement a data inspector which can use a grammar from the project instead of from the separate file?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.