Two weeks of binsider (0.2.0)
Stats
It’s been only two weeks and binsider
already reached 1.7k stars on GitHub:
Analytics from Umami:
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:
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:
Nix flake
I know y’all like Nix, so we have a Nix flake for binsider
now! ❄️
binsider
as a library
binsider
is now available as a Rust library if you want to integrate it into your TUI/Ratatui project!
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
Sorted shared libraries
The shared libraries in the general analysis are now sorted alphabetically for better readability.
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:
Issue | Title | Importance | Type |
---|---|---|---|
#43 | Tracing system call error: ESRCH: No such process | Help Needed | Bug |
#35 | Support displaying general file information on Windows | Help Needed | Feature |
#17 | Print the list of linked libraries as a tree and indicate how they were resolved | Medium | Feature |
#45 | Support searching for shared libraries | Medium | Feature |
#22 | Sort Symbols by Name or Address | Medium | Feature |
#7 | Support tweaking dynamic analysis options | Medium | Feature |
#5 | Improve the test suite | Medium | Feature |
#47 | Human readable output for static analysis | Easy | Feature |
#6 | Launch TUI from selected tab | Easy | Feature |
54 | Show the number of shared libraries | Easy | Feature |
Also, if you are feeling like researching/brainstorming, here are some issues that needs some thought:
Issue | Title |
---|---|
#46 | Support diffing binaries |
#26 | Support more platforms via LIEF |
#16 | Binwalk/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.
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 ☕