Здравствуйте, AlexeyPetrov, Вы писали:
AP>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде EXE-файла в поисках распаковщика, появилась идея найти картинки прямо в памяти, куда игра загружает всю графику при запуске.
Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде 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.
Здравствуйте, AndreyRus, Вы писали:
AR>Здравствуйте, AlexeyPetrov, Вы писали:
AP>>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде EXE-файла в поисках распаковщика, появилась идея найти картинки прямо в памяти, куда игра загружает всю графику при запуске.
AR>Ты Вор?
Здравствуйте, AlexeyPetrov, Вы писали:
AP>Соответственно, вопрос: есть ли программа для сохранения в файл видеопамяти с видеокарты? Всей или конкретного процесса — без разницы.
AP>PS: Игра написана на Visual C++ с использованием DirectX.
Попробуй использовать специализированные отладчики и профилировщики для графических приложений, как праивло они умеют доставать ресурсы из памяти. Например для огла есть GLintercetp, gDEBuger первый точно умеет сохранять шейдеры и текстуры, второй может показать налету все текстуры и другие ресурсы в видеопамяти, возможно и сохранять умеет. Для директа попробуй NVPerfHud/NVPerfKit, сам я ими не пользовался но они почти наверянка такое умеют, ну и вцелом полазь по разделам для разрабов на сайтах произовдителей товей видеокарты, как праивло там можно найти отладочные тулсы и т.п. софт, который поможет тебе решить твою проблему
---=== С наилучшими пожеланиями, Phoenics ===--- _
Я кстати прикол вспомнил. Когда писал текстурный менеджер под OGL то были интересные глюки, в текстурном менеджере была функция для дампа текстуры в битмап что бы можно было посмотреть что туда попало и как. Так вот погонял я как то в кризис (DirecX) приложение а потом сел за дебагер, был какой то баг, и каким то образом получилось что текстуры из кризиса попали в дамп.
Здравствуйте, AlexeyPetrov, Вы писали:
AP>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные.
<...> AP>PS: Игра написана на Visual C++ с использованием DirectX.
Посмотрите что такое DLL Injection, Detours; ну и у Рихрера был пример перехвата.
Когда разберетесь — попробуйте перехватывать DXCreateTexture из d3dx9.dll (название и местоположение точно не помню — уточните сами).
Либо поищите уже такие готовые подобные проги, наверняка есть.