All Projects → taviso → Kiewtai

taviso / Kiewtai

A port of Kaitai to the Hiew hex editor

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Kiewtai

Pev
The PE file analysis toolkit
Stars: ✭ 422 (+290.74%)
Mutual labels:  binary-analysis, reverse-engineering
Andromeda
Andromeda - Interactive Reverse Engineering Tool for Android Applications
Stars: ✭ 627 (+480.56%)
Mutual labels:  binary-analysis, reverse-engineering
Binaryninja Api
Public API, examples, documentation and issues for Binary Ninja
Stars: ✭ 437 (+304.63%)
Mutual labels:  binary-analysis, reverse-engineering
Cwe checker
cwe_checker finds vulnerable patterns in binary executables
Stars: ✭ 372 (+244.44%)
Mutual labels:  binary-analysis, reverse-engineering
Scripting
PS / Bash / Python / Other scripts For FUN!
Stars: ✭ 47 (-56.48%)
Mutual labels:  dfir, binary-analysis
Sec skills
软件安全工程师技能表
Stars: ✭ 410 (+279.63%)
Mutual labels:  binary-analysis, reverse-engineering
Goblin
An impish, cross-platform binary parsing crate, written in Rust
Stars: ✭ 591 (+447.22%)
Mutual labels:  binary-analysis, reverse-engineering
Idenlib
idenLib - Library Function Identification [This project is not maintained anymore]
Stars: ✭ 322 (+198.15%)
Mutual labels:  binary-analysis, reverse-engineering
Pharos
Automated static analysis tools for binary programs
Stars: ✭ 955 (+784.26%)
Mutual labels:  binary-analysis, reverse-engineering
Macbook issues
《macOS软件安全与逆向分析》勘误
Stars: ✭ 11 (-89.81%)
Mutual labels:  binary-analysis, reverse-engineering
Decomp
Components of a decompilation pipeline.
Stars: ✭ 343 (+217.59%)
Mutual labels:  binary-analysis, reverse-engineering
Barf Project
BARF : A multiplatform open source Binary Analysis and Reverse engineering Framework
Stars: ✭ 1,280 (+1085.19%)
Mutual labels:  binary-analysis, reverse-engineering
Avatar2
Python core of avatar²
Stars: ✭ 334 (+209.26%)
Mutual labels:  binary-analysis, reverse-engineering
Security Notes
📓 Some security related notes
Stars: ✭ 422 (+290.74%)
Mutual labels:  binary-analysis, reverse-engineering
Ddisasm
A fast and accurate disassembler
Stars: ✭ 325 (+200.93%)
Mutual labels:  binary-analysis, reverse-engineering
Kam1n0 Community
The Kam1n0 Assembly Analysis Platform
Stars: ✭ 467 (+332.41%)
Mutual labels:  binary-analysis, reverse-engineering
Macbook
《macOS软件安全与逆向分析》随书源码
Stars: ✭ 302 (+179.63%)
Mutual labels:  binary-analysis, reverse-engineering
E9patch
A powerful static binary rewriting tool
Stars: ✭ 317 (+193.52%)
Mutual labels:  binary-analysis, reverse-engineering
Die Engine
DIE engine
Stars: ✭ 648 (+500%)
Mutual labels:  binary-analysis, reverse-engineering
Redasm
The OpenSource Disassembler
Stars: ✭ 1,042 (+864.81%)
Mutual labels:  binary-analysis, reverse-engineering

Introduction

Kiewtai is a HEM (aka plugin) for the Hiew hex editor that makes all the binary parsers from the Kaitai project available. This means you can get all the fields marked and decoded for dozens of popular file formats. You can also use the Kaitai format to write a new template for a file format you're analyzing.

Click here to see a list of all the formats supported by Kaitai.

Want to see it in action? See some Screenshots!

Installation

If you don't want to build it yourself, check out the releases tab

Copy kiewtai.hem to your hem folder, which should be where you installed hiew.

Usage

Press F11 and Select Kiewtai: Kaitai Struct format parsers.

You will be shown a list of all supported parsers, select the one you want.

Kiewtai will highlight the different fields, and add a comment describing the field.

Kiewtai JPEG Demo

Advanced Usage

If you want Kiewtai to analyze a section of a larger file, for example you have a firmware blob or filesystem image, Simply mark the section you want analyzed. If you work in DFIR, you probably call this "carving".

  • Press F2 to toggle between Simple and Detailed parsing.

The default parsing mode is verbose, try this if you prefer.

  • Press F3 to enable or disable comments.

Kiewtai will add comments to Hiew describing each field, these are displayed as you navigate around. You can also browse and search them with F12.

  • Press F4 to enable or disable markers.

Kiewtai will add color markers by default so you can easily see where the different fields are. Press F4 if you don't like this.

  • Press F5 to search for a parser.

The list of parsers is quite long, press F5 and enter some search terms if you like.

Kiewtai EXE Demo

Notes

If you're a Hiew user and want to help make better documentation, click here!

This project uses the following third party libraries:

Please feel free to file an issue for any bugs, missing features or documentation!

Oh, and I prounounce Kiewtai "cue-tie". 🙂

Screenshots

Here are some screenshots of different Kiewtai screens.

Browsing a GIF header

You can see the magic, version, descriptors, dimensions are all identified.

The comment shows Kiewtai knows the cursor is on the applicationId field.

The individual R/G/B bytes are hilighted, which makes the data look stripey. If that's too much verbosity, press F2 on the parser list and Kiewtai will reduce the level of detail it generates.

Screenshot

Show the recognized fields in an EXE file.

You can load multiple Kaitai parsers at once, this screenshot shows the DosMz and MicrosoftPE parsers loaded simultaneously.

If you have an embedded file, simply mark it and Kiewtai will only analyze that block.

Kiewtai MZ/PE fields

Browsing the chunks of a PNG image.

The field names display as comments as you navigate around a file.

Kiewtai PNG chunks

Browsing Formats available.

Kaitai has parsers for dozens of popular formats already made, you can see the full list online here. The list is long, you type F5 to serach it.

Kiewtai Parser List

Automatically handle common subformats.

Here Kiewtai parsed a pcap file, and all the Tcp, Udp, Icmp, packets and Ethernet frames inside the pcap are automatically recognized. This all happened automatically when loading the Pcap parser!

Viewing the MAC address

List all the PCAP fields

Building

If you don't want to build it yourself, check out the releases tab

I used Visual Studio 2019 to develop Kiewtai.

This project uses submodules for some of the dependencies, be sure that you're using a command like this to fetch all the required code.

git submodule update --init --recursive

  1. Download and Install the Kaitai Struct compiler.
  2. If you don't have them already, install Open JDK, GNU make, and GNU binutils.

If you use chocolatey, this command should be enough:

> choco install make openjdk mingw
  1. Open a Visual Studio Developer Command Prompt.
  2. Type make.exe

If everything worked, you should have a file called kiewtai.hem

If you get The system cannot find the file specified errors, verify objcopy.exe, make.exe and kaitai-struct-compiler.bat are all in your %PATH%.

Testing

There are some simple tests in the test directory that verify some common formats are working as expected.

Simply type make in the test directory to run them.

Author

Tavis Ormandy [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].