X-Graber [P-invok`e object parse]

X-Graber [P-invok`e object parse]

post id: 27

post length: 2271

post datetime: 12/9/2009 8:07:59 PM

post ip: 77.51.3.219

X-Graber [P-invok`e object parse]

Дата подачи: 06.09.2009

коррект от: 18.09.2009

---------------------------

Этиология:

X-Graber [P-invok`e object parse]

Патогенез:

В теории:

Для каждого приложения Windows имеется две раздельных таблицы дескрипторов:

1 – для постоянных базовых объектов [или объектов ядра] . На основании дескриптора можно получить сам объект [через аналог Attach - для восстановления объекта некоторого класса/ Detach – для его высвобождения], либо через API, принимающие в качестве параметра в том или ином виде манипулятор [P-манипулятор].

-----------------------

Получаем таблицу:

-----------------------

1. ZwQuerySystemInformation[SYSTEM_HANDLE_INFORMATION]

<Опционально> . [CheckTokenPrivileges]

2. ZwDuplicateObject [или DuplicateHandle (без разницы)]

3. ZwQueryObject [ObjectBasicInformation]

4. ZwQueryObject [ObjectTypeInformation]

5. ZwQueryObject [ObjectNameInformation]

далее по обстоятельствам….

-------------------------

PS:

----------------- --------

Через API::Например, для файлов:

1.CreateFileMapping()

2.MapViewOfFile()

3.… работаем с данными …

4.UnmapViewOfFile()

Пример получения таблицы дескрипторов системных [G] объектов:

Где выделено красным – возможные носители контекста устройства [D3D::Device DC].

2 – временных [пользовательских].

-НЕ РАССМАТРИВАЕТСЯ [!]

------------------------------------------

Клинические проявления:

К сожалению, по причине нехватки времени и ума, оба указанных варианта детально пока не рассматриваются. Объявленная выше задача [а именно получение меша из “чужого” приложения] решается намного проще путём перехвата функции [D3DX::LoadMeshFromXA] или [D3DX::OptimizeVertices] из d3dx9d_36.dll с дальнейшей развилкой (к примеру) на [D3DX::SaveMeshToXA]. Возможно, несколько позже будет возврат к этой теме, а пока что она будет перемещена назад или подбита к схожей по содержанию теме.

THE END.