PyVM
bap
Our great sponsors
PyVM | bap | |
---|---|---|
1 | 3 | |
106 | 1,981 | |
- | 2.1% | |
0.0 | 4.6 | |
almost 3 years ago | 6 days ago | |
Python | OCaml | |
MIT License | MIT License |
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.
PyVM
-
Any standard algorithms for parsing (disassembling) machine code?
Back in the day, I wrote this x86 emulator just for fun: https://github.com/ForceBru/PyVM, and to this day, my implementation of instruction parsing (disassembly) is bugging me because it's a mess and doesn't seem correct at all, even though it kind of works. However, after a couple of years of occasionally trying to find some kind of "proper" algorithm for machine code disassembly, I couldn't find anything... noteworthy, or well-known, or widely used.
bap
-
Any standard algorithms for parsing (disassembling) machine code?
BAP (https://github.com/binaryanalysisplatform/bap), angr (https://angr.io/) and others already do what you're asking for as more purpose-built solutions for dynamic analysis. Angr specifically in python.
- You need to stop idolizing programming languages.
-
Starting ocaml
I find this pretty good https://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/intro/ocaml.html. Fun projects include compilers (pattern matching and static types are why Ocaml is usually selected), binary analysis stuff https://github.com/BinaryAnalysisPlatform/bap, stuff that requires async so you can try out nomadic async stuff, or really anything you desire.
What are some alternatives?
kyber-py - A pure python implementation of CRYSTALS-Kyber
VMProtect-devirtualization - Playing with the VMProtect software protection. Automatic deobfuscation of pure functions using symbolic execution and LLVM.
pyt - A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications
angr - A powerful and user-friendly binary analysis platform!
klee - KLEE Symbolic Execution Engine
MobileApp-Pentest-Cheatsheet - The Mobile App Pentest cheat sheet was created to provide concise collection of high value information on specific mobile application penetration testing topics.
ocamlformat - Auto-formatter for OCaml code
bolt - Bolt is a language with in-built data-race freedom!
tornado - Tornado is a BitTorrent client written entirely in OCaml.
hardcaml - Hardcaml is an OCaml library for designing hardware.
ataraxia - Simple and lightweight source-based multi-platform Linux distribution with musl libc.
reko - Reko is a binary decompiler.