3 ms·
- Runs it in a virtual machine/emulator (QEMU). - Records (with PANDA) every instruction run and every piece of data read or written by that virtual machine fo
by AlyssaRowan 12y ago
- Runs it in a virtual machine/emulator (QEMU).
- Records (with PANDA) every instruction run and every piece of data read or written by that virtual machine for half a minute while it's playing audio. (!)
- Analyses that recording and uses some very clever statistics to identify functions that read chunks of data that looks encrypted, and write chunks of data that looks compressed (yes, you can tell the difference, compression is imperfect).
- Out pops one likely candidate, which sure enough is the decrypter.
- moyix 12y agoSmall correction: the magic of record-replay is that you don't have to record every piece of data read/written, only the non-deterministic events (interrupts, accesses to devices, and a couple instructions like `rdtsc`). This lets the overhead during recording stay low, while still getting all the benefits of a full execution trace. This is why we're able to store the Spotify trace [1] in only 263.1 MB. [1] http://www.rrshare.org/detail/28/ http://www.rrshare.org/detail/28/