Comment by still_grokking
3 years ago
In my opinion the core on which poke was made is actually much more interesting than the tool as such.
Poke is actually not only an editor, it's a domain specific language.
This language is built on top of something called GNU Jitter.
https://www.gnu.org/software/jitter/
Jitter is a very interesting project! It's a kind of generic interpreter that is—as the name suggests—almost a JIT compiler. It's something more or less "in between". Technically it's more an interpreter + VM. But it uses all kinds of (I think novel) tricks to remove the overhead of interpretation, which makes the code at runtime almost look like what a JIT compiler would have produced.
Some more internal info than on the GNU page on how this works can be found in the following slides:
http://ageinghacker.net/talks/jitter-slides--saiu--ghm2017--...
I'm curious as to whether the techniques used here are safe against Spectre-like attacks. There appears to be a heavy reliance on indirect branching. The slides here are dated just before Spectre was published, so it would not have been a concern at the time.
>I'm curious as to whether the techniques used here are safe against Spectre-like attacks
Because people will be compromising your GNU poke or Jitter code?
Not poke per se, but Jitter is intended to be a retargetable interpreter for other programming languages, so maybe.