I want to be able to do what an ordinary disassembler does—list the assembler instructions of an arbitrary executable—but from C#. It would consist, for instance, of finding a specific instruction from its address and determining which memory address is accessed by it.
Any Google search I tried leads me rather to the resources which explain how to decompile C# applications themselves in order to get IL bytecode. Except that I don't care about IL bytecode: what I want is to get the actual instructions of any app, including ones written in plain C or any other language.
In other words, I want the same thing as in How can I see the assembly code for a C++ program? question, but to be able to do it programmatically instead of using a GUI tool.
How do I do that?