hellomello
LIEF
Our great sponsors
hellomello | LIEF | |
---|---|---|
2 | 4 | |
80 | 4,137 | |
- | 2.1% | |
0.0 | 9.4 | |
almost 4 years ago | 21 days ago | |
C++ | C++ | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hellomello
-
Compiling Rust for .NET, using only tea and stubbornness
Tangentially related, I've written a barebones assembler for Android .apk files once (strictly speaking, the assembler is for .dex files, but it also comes with a set of tools to package and sign .apk files). It's written mainly in Nim and provides enough primitives to allow creating Java "stubs" for native .so libraries, so that .apk-s can be built in Nim WITHOUT JDK AT ALL. The Android NDK is still kinda needed/useful, though IIRC mainly for access to adb, and especially adb logcat (which you'll need A LOT for debugging if you try to use this contraption).
I'd love to One Day™ Rewrite It In Rust.
The .dex assembler itself is at: https://github.com/akavel/dali — you may like to check out the tests at: https://github.com/akavel/dali/tree/master/tests to see how using it looks like.
An example project with a simple .apk written purely in Nim (NO JDK) is at: https://github.com/akavel/hellomello/tree/flappy (unfortunately, given Nim's poor packaging story, it's most probably already bitrotten to the extent that it can't be quickly and easily built & used out of the box). I recorded a presentation about this for an online Nim conference — see: https://www.youtube.com/watch?v=wr9X5NCwPlI&list=PLxLdEZg8DR...
LIEF
-
What's the Most Portable Way to Include Binary Blobs in an Executable?
My team is working on this problem in the context of creating Node.js single-executable applications. While the naive approach of just appending data at the end of the binary works, it is not friendly with code-signature in macOS and Windows given that signing operates on PE and Mach-O sections.
We have recently open-sourced a small tool called Postject (https://github.com/postmanlabs/postject), which is able to inject arbitrary data as proper ELF/Mach-O/PE sections for all major operating systems (with AIX support coming). The tool also provides C/C++ cross-platform headers for easily traversing the final binary and introspect whether the segment is present or not.
The tool is based on the LIEF (https://github.com/lief-project/LIEF) project.
At Postman, we are making use of this on our custom Node.js single-executable applications and soon on our custom Electron.js builds too.
-
Pefile python module features
https://github.com/lief-project/LIEF https://lief-project.github.io/doc/latest/api/python/index.html
-
Collection of tools for executable packing detection
Bintropy: Entropy-based packing detection featuring multiple modes (whole binary, per section or segment). Based on the awesome LIEF library, therefore supports ELF, PE, Mach-O.
-
rabin2 for scraping ELF to JSON
I've been looking at LIEF toolkit for similar purposes (https://github.com/lief-project/LIEF). It's a python framework for cross platform binary analysis. I'm curious, does rabin2 support dll format?
What are some alternatives?
PhoneVR - Use Steam VR-enabled applications with your phone as HMD (Head-mounted display). The only Open-Source solution to similar commercial packages like VRidge, iVRy, Trinus etc etc.
dll-proxy-generator - Creates a proxy dll which sits between the game and original dll
libtorrent4j - libtorrent for java, a swig Java interface for libtorrent
radare2 - UNIX-like reverse engineering framework and command-line toolset
androguard - Reverse engineering and pentesting for Android applications
tree-sitter-html - HTML grammar for Tree-sitter
dali - Indie assembler/linker for Dalvik VM .dex & .apk files (Work In Progress)
pe - A :zap: lightweight Go package to parse, analyze and extract metadata from Portable Executable (PE) binaries. Designed for malware analysis tasks and robust against PE malformations.
clr_lite
vivaldi_modding - Custom modifications for Vivaldi web browser.
Misery - 3d programming is fun.
bintropy - Analysis tool for estimating the likelihood that a binary contains compressed or encrypted bytes