Re: Как вытащить графику из видеопамяти?
От: AndreyRus  
Дата: 17.12.08 08:18
Оценка: -1
Здравствуйте, AlexeyPetrov, Вы писали:

AP>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде EXE-файла в поисках распаковщика, появилась идея найти картинки прямо в памяти, куда игра загружает всю графику при запуске.


Ты Вор?
Как вытащить графику из видеопамяти?
От: 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.
Re[2]: Как вытащить графику из видеопамяти?
От: AlexeyPetrov  
Дата: 17.12.08 10:46
Оценка:
Здравствуйте, AndreyRus, Вы писали:

AR>Здравствуйте, AlexeyPetrov, Вы писали:


AP>>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные. И чтобы не разбираться в коде EXE-файла в поисках распаковщика, появилась идея найти картинки прямо в памяти, куда игра загружает всю графику при запуске.


AR>Ты Вор?


Цель у меня примерно такая же, как у автора этого сайта:
http://www.extractor.ru/about/
Re: Как вытащить графику из видеопамяти?
От: Phoenics Россия https://sourceforge.net/projects/phengine
Дата: 24.12.08 08:17
Оценка:
Здравствуйте, AlexeyPetrov, Вы писали:

AP>Соответственно, вопрос: есть ли программа для сохранения в файл видеопамяти с видеокарты? Всей или конкретного процесса — без разницы.


AP>PS: Игра написана на Visual C++ с использованием DirectX.


Попробуй использовать специализированные отладчики и профилировщики для графических приложений, как праивло они умеют доставать ресурсы из памяти. Например для огла есть GLintercetp, gDEBuger первый точно умеет сохранять шейдеры и текстуры, второй может показать налету все текстуры и другие ресурсы в видеопамяти, возможно и сохранять умеет. Для директа попробуй NVPerfHud/NVPerfKit, сам я ими не пользовался но они почти наверянка такое умеют, ну и вцелом полазь по разделам для разрабов на сайтах произовдителей товей видеокарты, как праивло там можно найти отладочные тулсы и т.п. софт, который поможет тебе решить твою проблему
---=== С наилучшими пожеланиями, Phoenics ===---
_
Re: Как вытащить графику из видеопамяти?
От: nen777w  
Дата: 24.12.08 09:45
Оценка:
Я кстати прикол вспомнил. Когда писал текстурный менеджер под OGL то были интересные глюки, в текстурном менеджере была функция для дампа текстуры в битмап что бы можно было посмотреть что туда попало и как. Так вот погонял я как то в кризис (DirecX) приложение а потом сел за дебагер, был какой то баг, и каким то образом получилось что текстуры из кризиса попали в дамп.
Re[2]: Как вытащить графику из видеопамяти?
От: 8bit  
Дата: 24.12.08 09:51
Оценка:
Здравствуйте, nen777w, Вы писали:

Дык видеопамять-то одна на всех...
Re: Как вытащить графику из видеопамяти?
От: Evgolas Россия http://DelaDarom.Ru
Дата: 24.12.08 22:48
Оценка:
Здравствуйте, AlexeyPetrov, Вы писали:

AP>Нужно вытащить графику (картинки, анимацию) из одной игрушки — файловые ресурсы у неё шифрованные.

<...>
AP>PS: Игра написана на Visual C++ с использованием DirectX.

Посмотрите что такое DLL Injection, Detours; ну и у Рихрера был пример перехвата.
Когда разберетесь — попробуйте перехватывать DXCreateTexture из d3dx9.dll (название и местоположение точно не помню — уточните сами).

Либо поищите уже такие готовые подобные проги, наверняка есть.
-----------------------------
Сервис Услуга-за-Услугу
Городской рогейн для роллеров
Заметки шароварщика
-----------------------------
Re: Как вытащить графику из видеопамяти?
От: alchemist  
Дата: 31.01.09 12:52
Оценка:
This is a proprietary compressed and encrypted file (images and sounds), may be extracted by hooking the application.
Contact me if you need help.

the.alchemist.4444 @ gmail.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.