Как вытащить графику из видеопамяти?
От: AlexeyPetrov  
Дата: 17.12.08 06:58
Оценка:
Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.