Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с перехватом функции ZwCreateFile, надо как-то декодировать имя файла 
:(
    Опции темы
NT_AUTHORITY
Дата 30.1.2008, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.1.2008

Репутация: нет
Всего: нет



Есть такая задача. Пишу программу для перехвата вызовов функции ZwCreateFile. Эта функция задекларирована у меня так:

Код

NTStatus = cardinal;

function ZwCreateFile(  FileHandle:PHANDLE;
                        DesiredAccess:ACCESS_MASK;
                        ObjectAttributes:PObjectAttributes;
                        IoStatusBlock:pointer;
                        AllocationSize:pointer;
                        FileAttributes,ShareAccess, CreateDisposition, CreateOptions:cardinal;
                        EaBuffer: pointer;
                        EaLength:cardinal): NTStatus;
                        stdcall; external 'ntdll.dll';


Здесь нас интересует структура PObjectAttributes, которая представляет из себя следующее:

Код

PObjectAttributes = ^TObjectAttributes;
TObjectAttributes = packed record
    Length:cardinal;
    RootDirectory:THANDLE;
    ObjectName:PWideString; //PUnicodeString, в идеале, но Delphi не воспринимает.
    SecurityDescriptor:PSECURITY_DESCRIPTOR;
    SecurityQualityOfService:Pointer;
    Attributes:cardinal;
end;


Мне отсюда надо взять имя файла, которое передаётся в эту структуру. Однако, оно представляет из себя какие-то "иероглифы". Кто знает, как это расшифровать? 

PS. Пробовал RtlUnicoeStringToAnsiString и WideCharToMultibyte - не помогло.
RtlUnicoeStringToAnsiString я объявил так:

Код

function RtlUnicodeStringToAnsiString(str:PChar;pUS:PWideString;bBool:boolean):NTStatus; stdcall; external 'ntdll.dll';

PM MAIL   Вверх
MetalFan
Дата 30.1.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



Цитата(NT_AUTHORITY @  30.1.2008,  09:16 Найти цитируемый пост)
PWideString

очень сомневаюсь, что там такой тип. скорее PWideChar...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
EvilsInterrupt
Дата 30.1.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 1
Всего: 9



NT_AUTHORITY, есть документ и называется "Талмуд черной магии" его чернокнижник Свен Шрайбер написал, там есть то, что тебе нужно! Есть еще шаманский бубен, называется livekd.exe.
PM MAIL WWW ICQ Jabber   Вверх
bartram
Дата 30.1.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: 3
Всего: 29



NT_AUTHORITY, а структуру PObjectAttributes ты сам описывал или взял откуда-то?

Добавлено через 5 минут и 9 секунд
Цитата(NT_AUTHORITY @  30.1.2008,  11:16 Найти цитируемый пост)
PUnicodeString, в идеале, но Delphi не воспринимает.

Почему это не воспринимает?
Описывается так
Код

PUnicodeString = ^TUnicodeString;
  TUnicodeString = packed record
    Length: Word;
    MaximumLength: Word;
    Buffer: PWideChar;
end;




--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
NT_AUTHORITY
Дата 2.2.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.1.2008

Репутация: нет
Всего: нет



Спасибо за PUnicodeString!  smile 


Цитата(EvilsInterrupt @  30.1.2008,  12:12 Найти цитируемый пост)
NT_AUTHORITY, есть документ и называется "Талмуд черной магии" его чернокнижник Свен Шрайбер написал, там есть то, что тебе нужно! Есть еще шаманский бубен, называется livekd.exe. 


Долго пытался понять, что тут имеется в виду... Насколько я понял, речь идёт о специальной электронной книге, где описаны все тонкости работы с недокументированными Zw... А если так, то нельзя ли дать на неё ссылку?

И последнее. Может, кто-нито знает, где взять готовые описания функций Zw... и документацию по ним (если таковая существует)?

PM MAIL   Вверх
ne0n
Дата 4.2.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(NT_AUTHORITY @  2.2.2008,  11:01 Найти цитируемый пост)
А если так, то нельзя ли дать на неё ссылку?


Недокументированные возможности Windows 2000 Свен Шорайберг, в гугл!

Цитата(NT_AUTHORITY @  2.2.2008,  11:01 Найти цитируемый пост)
И последнее. Может, кто-нито знает, где взять готовые описания функций Zw... и документацию по ним (если таковая существует)?


Гэри Неббет. справочник по базовым функциям Api Windows NT/2000. искать там же!

PM MAIL ICQ   Вверх
NT_AUTHORITY
Дата 5.2.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 7.1.2008

Репутация: нет
Всего: нет



Всем спасибо, но с поставленной задачей я уже разобрался. Насчёт книг - там метров много (с инета качать неохота...)?
PM MAIL   Вверх
ne0n
Дата 6.2.2008, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(NT_AUTHORITY @  5.2.2008,  16:46 Найти цитируемый пост)
 Насчёт книг - там метров много (с инета качать неохота...)?


ну это смотря в каком формате найдешь, неббет в пдф на английском есть 2-х метровый, шрайбер на русском +примеры с CD 8 метров в дежавю!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.