diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
| commit | f2ec263023649e596c5076df32c2d328bc9393d2 (patch) | |
| tree | 5dd86caab46e552bd2e62bf9c4fb1a7504a44db4 /results/scraper/fex/2841 | |
| parent | 63d2e9d409831aa8582787234cae4741847504b7 (diff) | |
| download | qemu-analysis-main.tar.gz qemu-analysis-main.zip | |
Diffstat (limited to 'results/scraper/fex/2841')
| -rw-r--r-- | results/scraper/fex/2841 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/results/scraper/fex/2841 b/results/scraper/fex/2841 new file mode 100644 index 000000000..f4dd50228 --- /dev/null +++ b/results/scraper/fex/2841 @@ -0,0 +1,20 @@ +Denuvo needs inline self-modifying code support +Currently it crashes because of an invalid instruction. +The instruction stream (From Hatsune Miku Project DIVA Mega Mix+) starts as follows. +```asm +1569854b0 812d000000001896… sub dword [rel data_1569854ba], 0x1b519618 {0xa20f9090} // Modifies the next instruction +1569854ba a826 test al, 0x26 // Instruction modified +1569854bc 61 ?? +``` + +The initial sub instruction in this block is modifying the code just after the instruction. Which turns it in to: +```asm +0x00000000 1 90 nop +0x00000001 1 90 nop +0x00000002 2 0fa2 cpuid +0x00000004 10 8105f2ffffff1896511b add dword [rip - 0xe], 0x1b519618 +0x0000000e 1 c3 ret +``` + +The final add there modifying the code back to what it was before. +FEX need to have a generic (and fast) solution towards detecting something like this if we want any Denuvo Anti-Tamper games to work. \ No newline at end of file |