Our great sponsors
-
PyVM
A virtual machine written in Python that executes x86 binaries according to the Intel Software Developer Manual (by ForceBru)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
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 (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.
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.
Related posts
- Starting an open-source re-implementation of an old game
- Is taking the ASM dump from Ida pro after human correction a good way to re-write the software from scratch?
- Program modification via reassembling
- Hacking a game with DLL injection [Game Hacking 101]
- Qiling: A True Instrumentable Binary Emulation Framework