steg86
emu-info
Our great sponsors
steg86 | emu-info | |
---|---|---|
2 | 1 | |
280 | 108 | |
- | - | |
8.0 | 4.2 | |
12 days ago | 4 months ago | |
Rust | Assembly | |
GNU General Public License v3.0 or later | - |
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.
steg86
-
Weird things I learned while writing an x86 emulator
This is a good list! Another fun quirk: because x86 is a register-memory architecture and allows all kinds of variants of reg/mem operand encodings, there are a handful of equivalent encodings with exactly the same lengths (and just slightly different ModR/M bytes). You can take advantage of this to do software fingerprinting or, in my case, steganography without changing an executable’s size or semantics[1].
[1]: https://github.com/woodruffw/steg86
- Yes, the 8086 wanted to be mechanically translatable from the 8080, but
emu-info
-
Weird things I learned while writing an x86 emulator
I'd guess it's "undocumented", not "undefined". Don't know how the situation is on x86, but on the Z80 there were indeed some slight differences in undocumented behaviour depending on the CPU vendor, but those are so obscure that it hardly affected any real world code, because it affected the undocumented flag bits 3 and 5, and this behaviour was only properly decoded in the 2000's (https://github.com/floooh/emu-info/blob/master/z80/memptr_en...).
The only CPU I know with actual undefined behaviour is the 6502 for some of the undocumented/illegal opcodes which can yield different results based on things like current CPU temperature (see the ANE/XAA instruction description: https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes)
What are some alternatives?
cross - “Zero setup” cross compilation and “cross testing” of Rust crates
stegano-rs - A cross-platform command line tool for steganography focused on performance and simplicity written in rust-lang.
steganography - A simple steganography library written in rust
node-replicated-kernel - Experimental kernel with built-in replication.
static-web-server - A cross-platform, high-performance and asynchronous web server for static files-serving. ⚡
dmd - dmd D Programming Language compiler
cross - “Zero setup” cross compilation and “cross testing” of Rust crates [Moved to: https://github.com/cross-rs/cross]