Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

11.07.2008, 00:04
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме: 725870
Репутация:
208
|
|
Получить хендл на файл
Интересует, есть ли еще способ получить хендл для файла, кроме как вызова NtCreateFile() ?..
PS: Usermode
Последний раз редактировалось razzzar; 11.07.2008 в 00:22..
|
|
|

11.07.2008, 12:21
|
|
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме: 404152
Репутация:
94
|
|
Сообщение от razzzar
Интересует, есть ли еще способ получить хендл для файла, кроме как вызова NtCreateFile() ?..
PS: Usermode
если не ошибаюсь при открытии файла функцией FileOpen возращается, так же как и в FileCreate.
В WinAPI функция FindFirstFile() возращает, так же зависит от того хендл какого именно файла ты хочешь получить, если библиотеки то вот:
Handle := GetModuleHandleA('Library.dll')
если процесса то можно так:
Код:
char szEXEName[ BUFSIZ ];
GetModuleFileName(
NULL, // для текущего модуля, подставь другой хэндл для другого
szEXEName, // сюда будет записано имя модуля
sizeof( szEXEName )-1
);
|
|
|

11.07.2008, 13:37
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме: 725870
Репутация:
208
|
|
Про NtOpenFile и так ясно, чот можно получить.
FindFirstFile() вообще не возвращасет никаких хедлов на файл.
Про модули это ты вообще не по теме 
|
|
|

11.07.2008, 13:49
|
|
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме: 3371897
Репутация:
1462
|
|
из ниоткуда ты хэндл не получишь ,
цитирую Рихтера:
Когда процесс инициализируется в первый paз, таблица описателей еще пуста. Но стоит одному из его потоков вызвать функцию, создающую объект ядра (например, CreateFtleMapping), как ядро выделяет для этого объекта блок памяти и инициализирует его, далее ядро просматривает таблицу описателей, принадлежащую данному процессу, и отыскивает свободную запись. Поскольку таблица еще пуста, ядро обнаруживает структуру с индексом 1 и инициализирует ее
тоесть для создания понадобится самому вызвыать файловую функцию , или для уже открытия 'искать' процесс который уже имеет доступ к описателю...
это что касается создания хэндлов ...
про получение -
Обязательно прочитай статью MS-REMа ...
http://wasm.ru/article.php?article=lockfileswork
|
|
|

11.07.2008, 15:59
|
|
Участник форума
Регистрация: 16.06.2007
Сообщений: 107
Провел на форуме: 725870
Репутация:
208
|
|
Jes, спасибо за ссылку.
|
|
|

11.07.2008, 16:49
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
есть возможность заюзать ядреную функцию NtVdmControl
она множет многое, но вот что именно хз - юзается она порой при эмуляции DOS
По крайней мере если через неё можно получить список файлов в дире, то сокрее всего и открыть как нибуть, но точно ен уверен
|
|
|

11.07.2008, 19:27
|
|
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме: 390892
Репутация:
60
|
|
slesh
Есть какая-нить инфа по этой функции? Нашел только эту статью, еще походу много инфы на азиатских сайтах, только там хер что поймешь.
|
|
|

11.07.2008, 23:44
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
SlyBit
http://www.wasm.ru/article.php?article=hidingnt
Код:
NTSTATUS NtVdmControl(
IN ULONG ControlCode,
IN PVOID ControlData
);
|
|
|

12.07.2008, 01:13
|
|
Познающий
Регистрация: 04.07.2008
Сообщений: 56
Провел на форуме: 390892
Репутация:
60
|
|
0verbreaK
Я ж про нее и говорю...
|
|
|

12.07.2008, 14:39
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
SlyBit у Гари Небета в справочнике по недокументированным функциям Native API есть описание этой функции, определена как:
Код:
ZwVdmControl performs a control operation on a VDM.
NTSYSAPI
NTSTATUS
NTAPI
ZwVdmControl(
IN ULONG ControlCode,
IN PVOID ControlData
);
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|