Skip to content

Two weeks of binsider (0.2.0)

Stats

It’s been only two weeks and binsider already reached 1.7k stars on GitHub:

Star History Chart Star History Chart

Analytics from Umami:

dynamic analysis

I would like to thank everyone who supported the project by starring, sharing, and contributing! 🖤

Discord

I created a Discord server for discussing the development, features, and issues:

If you are a reverse engineering enthusiast, Rust developer, or just curious about the project, feel free to join the server by clicking the link above!

What’s new?

Click here for the full changelog.

Better platform support

The dynamic analysis feature is now optional and gated behind the dynamic-analysis feature flag.

This change allows binsider to run on platforms where the dynamic analysis is not supported, e.g., macOS and Windows.

To build, run the following command:

Terminal window
cargo build --no-default-features

Run with args

Now it is possible to dynamically analyze binaries with their CLI arguments. This feature is useful for analyzing binaries that require specific arguments to run correctly, e.g:

Terminal window
binsider "python test.py"

Nix flake

I know y’all like Nix, so we have a Nix flake for binsider now! ❄️

Terminal window
nix run "github:orhun/binsider"

binsider as a library

binsider is now available as a Rust library if you want to integrate it into your TUI/Ratatui project!

[dependencies]
binsider = "0.1"
ratatui = "0.28"

See the documentation for more information.

Improved white theme support

Moths and other creatures that prefer light themes can now enjoy binsider too! 🦋

We now check the background color of the terminal and use appropriate accent colors. (e.g. white text on a black background)

Reorder symbol table

The symbols and dynamic symbols table in static analysis are now reordered for better readability:

  • Name, Type, Value, Size, Bind, Visibility, Ndx
  • Name, Requirements, Type, Value, Size, Bind, Visibility, Ndx

static analysis

Sorted shared libraries

The shared libraries in the general analysis are now sorted alphabetically for better readability.

general analysis

Squashed bugs

  • (dynamic) Fix locating the binary (#48)
  • (strings) Replace unicode whitespace for correct rendering (#28)
  • (file) Do not panic if creation time is not supported (#25)
  • (tui) Stop the event handler on quit (#24)
  • (flake) Fix test failure on Nix (#30)
  • (test) Ensure that binary is built before the test runs (#11)

Seeking contributors

I’m looking for new contributors to help with the development and fixing bugs!

Here is a list of issues that need attention:

IssueTitleImportanceType
#43Tracing system call error: ESRCH: No such processHelp NeededBug
#35Support displaying general file information on WindowsHelp NeededFeature
#17Print the list of linked libraries as a tree and indicate how they were resolvedMediumFeature
#45Support searching for shared librariesMediumFeature
#22Sort Symbols by Name or AddressMediumFeature
#7Support tweaking dynamic analysis optionsMediumFeature
#5Improve the test suiteMediumFeature
#47Human readable output for static analysisEasyFeature
#6Launch TUI from selected tabEasyFeature
54Show the number of shared librariesEasyFeature

Also, if you are feeling like researching/brainstorming, here are some issues that needs some thought:

IssueTitle
#46Support diffing binaries
#26Support more platforms via LIEF
#16Binwalk/unblob

Feel free to ask questions in issues or the Discord server - always happy to guide you through the code!

Reproducible builds

Last week I had the chance to attend the Reproducible Builds Summit in Hamburg, Germany. A lot of topics has been discussed - binsider was one of them and I got some feedback/thoughts from people with different backgrounds.

reprobuilds

One of the reoccurring ideas was to add diffoscope support to binsider for comparing binaries. Leave a comment on #46 if you think that would be useful - I might start working on it in the upcoming weeks.

Support the development

Become a sponsor of my work 🖤 or simply buy me a coffee