Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде EXE-файла в поисках распаковщика, появилась идея найти картинки прямо в памяти, куда игра загружает всю графику при запуске — в debug.txt при этом валятся такие сообщения:
GAME_RESOURCE_PRELOAD 9
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
[primary] [av video mem: result 0x00000000, total 0795E000, free 0723EA00]
[primary] [surface create (system) result: 0x00000000]
.............
С помощью программки ArtMoney удалось сделать дамп оперативной памяти процесса, просканировать его специальными утилитками по известным сигнатурам и найти таким образом все звуки из игры в несжатом формате WAV (PCM). Графики в оперативке не оказалось, но судя по приведённому выше логу, грузятся картинки не в оперативку, а сразу в видеопамять, которую ArtMoney сохранять не умеет.
Соответственно, вопрос: есть ли программа для сохранения в файл видеопамяти с видеокарты? Всей или конкретного процесса — без разницы.
PS: Игра написана на Visual C++ с использованием DirectX.