Skip to content

can1357/haruspex

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Haruspex

/həˈrʌspeks/

A religious official in ancient Rome who predicted the future or interpreted the meaning of events by examining the insides of birds or animals that had been sacrificed.

Exploration of x86-64 ISA using speculative execution.

Haruspex is a project attempting to explore and audit the x86-64 instruction set by (ab)using speculative execution and certain low-level performance counters Intel CPUs provide mainly for the identification of undocumented opcodes and deducing the pipeline properties of each instruction. You can find the article explaining the methodology here.

  • /analysis contains the Node.js server responsible for reducing the dataset and serving it as an interactive table, which you can find live at haruspex.can.ac .
  • /kernel contains the code responsible for producing this data, note that it is essentially "pseudo-code" due to some of the dependencies and parts of the toolchain I used to build it I cannot share, but should be pretty easy to translate it to work in your OS.
  • /raw-data contains the raw data from certain processors.

Thanks to

  • @JustasMasiulis for helping with the web components.
  • @H4vC for the name.

License

Haruspex is licensed under the GNU General Public License v3.

About

Exploration of x86-64 ISA using speculative execution.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages