Christopher Domas presents at Black Hat 2017 how page fault analysis and processor fuzzing can exhaustively search the x86 instruction set. The talk uncovers undocumented instructions and hardware bugs and shows limits of disassemblers.
Why Hacker News points people here: HN recommends it as a clever, entertaining and easy-to-follow talk on finding hidden x86 instructions with the Sandsifter tool.
“I found it easy to follow and pretty entertaining.”HN comment, 2018
“he demonstrates the limitations of all disassemblers out there, including IDA's”
Shows limitations of all disassemblers including IDA's.
Full comment
> I trust its disassembler (especially for mainstream languages) more than almost any other disassembler Might I suggest Christopher Domas' Black Hat talk "Breaking the x86 ISA", along the way of which he demonstrates the limitations of all disassemblers out there, including IDA's :) Talk: this video Slides: link Paper: link
RecommendsanfractuosityJan 2018
“I thought the 'Breaking the x86 Instruction Set' talk was extremely clever”
Extremely clever talk on undocumented x86 instructions.
Full comment
One of my favourite talks I watched was "Low Cost Non-Invasive Biomedical Imaging - An Open Electrical Impedance Tomography Project" link As it presented an interesting technique I'd never heard of before, along with an implementation. Also I thought the 'Breaking the x86 Instruction Set' talk was extremely clever - this video
RecommendsDyslexicAtheistJan 2018
“BlackHat 2017: Breaking the x86 Instruction Set”
Listed among favorite talks of 2017.
Full comment
my favorite were: - How the reputation economy is creating data-driven conformity link - DEF CON 25 (2017) - Weaponizing Machine Learning link - BlackHat 2017: Breaking the x86 Instruction Set this video
RecommendsnnnateOct 2018
“I found it easy to follow and pretty entertaining.”
Easy to follow and entertaining talk by Christopher Domas.
Full comment
Breaking the x86 Instruction Set by Christopher Domas. this video I found it easy to follow and pretty entertaining.
RecommendsjchwApr 2019
“There was a really good Blackhat talk a year or two ago”
Talk on finding undocumented opcodes via Sandsifter.
Full comment
There was a really good Blackhat talk a year or two ago in a sort of similar vein: they developed an approach to iterate and find undocumented opcodes. this video The software they developed is called Sandsifter.
RecommendstyingqNov 2020
“A really good talk on reverse engineering an ISA implementation”
Good talk on reverse engineering an ISA implementation.
Full comment
"I thought you were saying that the use of microcode would complicate verification of the hardware." I do think that microcode opens up the possibility of subtle injections to follow code/hardware paths you might not easily predict. A really good talk on reverse engineering an ISA implementation: this video
RecommendsBlackLotus89Mar 2021
“There was an interesting black hat talk about automatically finding undocumented instructions.”
Interesting talk on automatically finding undocumented instructions.
Full comment
There was an interesting black hat talk about automatically finding undocumented instructions. [0] Interesting comment on twitter to the instruction of the original post[1] [0] this video [1] link
Recommendsgbrown_Apr 2021
“the video from BlackHat[2] is a good watch”
Good watch on finding undocumented x86 instructions.
Full comment
How about undocumented instructions? Sandsifter[1] is an interesting project and the video from BlackHat[2] is a good watch. There's also a previous discussion of it on HN[3]. [1] link [2] this video [3] link
RecommendsbrokenmachineJul 2021
“I watched a super interesting Black Hat video on youtube”
Fuzzing opcodes to discover hidden CPU instructions.
Full comment
I watched a super interesting Black Hat video on youtube that talked about discovering secret instructions on CPUs by iterating over each bit of opcodes until you get an illegal instruction, and thereby discovering if an opcode is valid or not. He set up a room full of PCs running his code and had hardware to auto-reset them when they crashed. this video
Cites itzilitorNov 2017
Cited regarding Intel hidden instructions.
Full comment
Data Breach Transparency - At a minimum, their should be a penalty that grows from the time the breach was learned to when they disclose it publicly. - There should also be penalities for not being transparent about what exact data was leaked for what users. Social Security Number - SSN is similar to a password- you want to keep it hidden, and if it leaked, you should change it. However, we can't change it. Perhaps it should be considered more as a password? User Data Rights - People should know what personal data companies have on them. A good example of this is Equifax storing peoples home addresses- this could be disclosed. On the other hand, a it is probably fine to exclude other types of data, such as an advertiser storing your zip code- people probably don't care as much. - Should people have a right to have certain kinds of data (e.g. SSN) removed from websites? Adoption from USA Nutrition Label - Is it a good idea to mandate companies disclose the security they use? For example, at one time reddit had their passwords stored as plaintext and they got hacked. Disclosing basic security hygiene (e.g. password storage) somewhere standardized in the website would make it much less outrageous. Technology Improvement - Certain technologies enable hackers more than others. SQL seems to enable a lot of hacking. Should we discourage it? - Get rid of Intel ME technologies - link - Get rid of Intel hidden instructions - this video - Get rid of Simon and Speck - link - What is "be
Cites itFLUX-YOUJan 2018
Related to controlling CPU behavior via undocumented instructions.
Full comment
I do also wonder if some speculative prediction / branching stuff can be controlled through undocumented CPU instructions: this video
Cites itohaalJan 2018
“I think it's mostly interesting from an academic perspective that we have a tool that is able to find these kinds of things now.”
Related talk with relevant section and quote.
Full comment
Related talk (relevant part starts at 38:43) this video Quote from the talk: I don't want to make it sound like the sky is falling. This was found on one very esoteric processor that is not used in widespread production. I think it's mostly interesting from an academic perspective that we have a tool that is able to find these kinds of things now.
Cites itmmcloughlinOct 2019
“Sandsifter x86 fuzzer.”
Related project: Sandsifter x86 fuzzer.
Full comment
Great project and write-up. I'm reminded of a couple other projects. MC Hammer project for LLVM tests round-trip properties of the ARM assembler. link Sandsifter x86 fuzzer. linkthis video
Cites itcaleb-allenMar 2020
“a security researcher was able to identify a significant number of undocumented instructions”
Researcher identified many undocumented instructions.
Full comment
This was also linked elsewhere but a security researcher was able to identify a significant number of undocumented instructions: this video
Cites itdnauticsDec 2020
“really hit home to me how bad the encoding is”
Shows how bad the x86 encoding is.
Full comment
xoreaxeaxeax's videos about how to systematically parse the asm space of x86 really hit home to me how bad the encoding is. this video
Cites itskunkworkerApr 2021
Source for opcodes that disassemblers misinterpret.
Full comment
I would be really interested to see how often malicious software utilized undocumented opcodes that disassemblers incorrectly interpret and thus lead a security researcher down a rabbit hole while the actual opcode does something different. Like the 66e9xxxxxxxx and 66e8xxxxxxxx opcodes in x86_64 [1] If my understanding is correct, Stuxnet incorporated bytecode for the PLCs in S7comm, a protocol that was not open at the time. Though this is different then including undocumented opcodes for the system being targeted directly. [1] this video
Cites itLinuxBenderAug 2022
“a talk with a brief overview of the tools”
Overview of tools for decoding undocumented instructions.
Full comment
What are the implications of such hardware on user security? Threat persistence, i.e. persistent rootkits, persistent remote monitoring if one has privs to tickle the CPU instructions that give access. It is just a matter of time before there are public tools for script kiddies to manage the OS within the CPU. Here [1] is an example of someone slowly making progress decoding all the undocumented instructions and here is a talk with a brief overview of the tools. [2] This is not specific to Intel's ME but it is the way people will eventually tame/exploit that beast in my opinion. There are more recent talks that get deeper into security rings in the CPU. This video [3] more related to your question but not specific to ME however can be used to access ME and much more. If this appears to difficult and time consuming just know that some folks out there have the documentation for the undocumented instructions. You may find some tools on github and other public repos for disabling ME. Use with care. Test on an identical model of system that is at the same firmware/BIOS and same model of CPU as those tools can brick your CPU. As @rocket_surgeron stated, one can buy CPU's with ME disabled but that will not disable the "God Mode" referenced in [3]. [1] - link [2] - this video [3] - link