blitz / baresifter Goto Github PK
View Code? Open in Web Editor NEWA bare-metal x86 instruction set fuzzer a la Sandsifter
License: GNU Affero General Public License v3.0
A bare-metal x86 instruction set fuzzer a la Sandsifter
License: GNU Affero General Public License v3.0
I would like to fuzz MAME's i386 core using this tool, but unfortunately, this only works on 64-bit CPUs, and MAME's emulation simply hasn't gotten that far yet. I also can't run sandsifter since most modern Unices require at least a Pentium if not a Pentium Pro to install, and MAME's emulation of PCs based on those CPUs is shoddy currently at best.
XED is used inside and outside of Intel, is reasonably self contained and hopefully more actively maintained than Capstone.
Is it possible to make the Analyzer filter out some of the prefix groups in it's results somehow, like I implemented in my own fork of Baresifter (implemented for the Baresifter output, but not for Analyzer input yet (don't know the language that well))?
So far I've (see git pull request from my own Baresifter fork) implemented the possiblity to:
Is it possible to add the same logic to the Analyzer (so detecting specified prefixes and excluding them from results if the used prefix bit is cleared) based on the inputted (already filtered) text file containing Baresifter's output?
When a page fault is thrown for the instruction fetching second page, the I-bit (bit 4 of the error code) is never set because it only happens on NX-enabled processors.
This breaks the analysis to incorrectly detect all instructions as 1-byte instructions.
It looks like the tool skips scanning all prefixes somehow (looking at the logs generated)?
They might explode the search space somewhat, but they might also have different encodings and length affecting of the instructions (immediate size and modr/m size differences for example).
So that mainly affects operand and address and perhaps also REX on x86_64 specifically (which is currently detected as a prefix incorrectly on x86 as well, fixed in my repository).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.