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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как остановить чужой драйвер? 
V
    Опции темы
DIMONSOFT
Дата 17.8.2007, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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


PlayBoy
**


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

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



остановить,если честно не знаю...разве что выгрузить но есть пару но...поищи инфу по ZwUnloadDriver

Это сообщение отредактировал(а) ne0n - 17.8.2007, 15:25
PM MAIL ICQ   Вверх
DIMONSOFT
Дата 17.8.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Пасиб. Попутный вопрос: как конвертировать string->punicodestring?
--------------------
PM MAIL   Вверх
ne0n
Дата 17.8.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



может стоит попробовать так:
Код

type
  PUnicodeString = ^TUnicodeString;
  TUnicodeString = packed record
    Length,
    MaxLength: WORD;
    Buffer: PWideChar;
  end;


function StrToUnStr(const Value: String):  PUnicodeString;
begin
   Value^.Buffer:=Value;
end;

//или так хотя врятли...

var
MyPunocodeString;
YouStrib:String;
....

MyPunocodeString:=PUnicodeString(YouString);
...


вообщем не проверял...будет работать или нет smile 
PM MAIL ICQ   Вверх
DIMONSOFT
Дата 17.8.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



pointer type required smile 
--------------------
PM MAIL   Вверх
ne0n
Дата 17.8.2007, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



блин походу я это в бреду писал smile  попробуй вот так:
Код

function StrToUnStr(const Value: String):  PUnicodeString;
var
a: PUnicodeString;
begin
   a^.Buffer:= PWideChar(Value);
   result:=a;
end;

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


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



ne0n
Цитата(ne0n @  17.8.2007,  22:24 Найти цитируемый пост)
блин походу я это в бреду писал   попробуй вот так:

Я могу ошибаться, но мне кажется, что ты еще не вышел из бреда smile


Цитата(ne0n @  17.8.2007,  22:24 Найти цитируемый пост)
function StrToUnStr(const Value: String):  PUnicodeString;
var
a: PUnicodeString;
begin
   a^.Buffer:= PWideChar(Value);
   result:=a;
end;


Куда у тебя а^ указывает ?

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


PlayBoy
**


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

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



Riply, хех попходу ты права smile 
Ща попробуем реабилитироваться...
Вот следующая идея мож попробовать так...при помощи натив функции
Код

function RtlUnicodeStringToAnsiString(
  DestinationString: PAnsiString;
  SourceString: PUnicodeString;
  AllocateDestinationString: boolean
): NTSTATUS; stdcall external 'ntdll.dll';


Это сообщение отредактировал(а) ne0n - 17.8.2007, 23:53
PM MAIL ICQ   Вверх
Riply
Дата 17.8.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



ne0n
Цитата(ne0n @  17.8.2007,  23:23 Найти цитируемый пост)
Вот следующая идея мож попробовать так...при помощи натив функции

Так бы, конечно, получилось бы, но нужна чуть чуть другая Nt-функция(с точностью до наоборот  smile .
Но мой тебе совет: попробуй ее сам написать, а не экспортировать.
Очень поможет в будущем.

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


PlayBoy
**


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

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




Модератор: Сообщение скрыто.

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


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



P.S. Что бы знать, что должно получится в результате, используй экспортируему ф-ию.
У UnicodeString не только Buffer надо инициализировать. 
PM MAIL   Вверх
ne0n
Дата 17.8.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



Цитата(Riply @  17.8.2007,  23:53 Найти цитируемый пост)
У UnicodeString не только Buffer надо инициализировать.


длину?!
PM MAIL ICQ   Вверх
Riply
Дата 18.8.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

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



Цитата(ne0n @  17.8.2007,  23:54 Найти цитируемый пост)
длину?! 

Правильно будет обе "длинны". 
Посмотри что и как заполняет RtlAnsiStringToUnicodeString - и все станет понятно.
Так же обрати внимание на параметр AllocateDestinationString. Он очень важен.

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


PlayBoy
**


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

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



ок все учтем(кстати DIMONSOFT это и тебя касается smile ) smile 
PM MAIL ICQ   Вверх
MetalFan
Дата 19.8.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



вот вам простейший пример:
Код

type
  PUnicodeString = ^TUnicodeString;
  TUnicodeString = packed record
    Length,
    MaxLength: WORD;
    Buffer: PWideChar;
  end;

procedure proc;
var
  lAnsiStr: string;
  lWideStr: WideString;
  lUnicodeString: TUnicodeString;
  lPUnicodeString: PUnicodeString;
begin
  lAnsiStr := 'test string строка';
  lWideStr := lAnsiStr;
  lUnicodeString.Length := Length( lWideStr );
  lUnicodeString.MaxLength := Length( lWideStr ) + 2;
  lUnicodeString.Buffer := @lWideStr[1];
  lPUnicodeString := @lUnicodeString;
...

в итоге в lPUnicodeString мы имеем то, что надо.
но есть одно но! после выхода из proc указатель lPUnicodeString "умрет"...


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


Бывалый
*


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

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



Благодарю всех, но че-то не работает(драйвер не выгружается)....  smile  smile хотя запускается нормально
Код

uses nativeapi;

procedure TForm1.Button1Click(Sender: TObject);
var
lAnsiStr: string;
  lWideStr: WideString;
  lUnicodeString: TUnicodeString;
  lPUnicodeString: PUnicodeString;
begin
  lAnsiStr := edit1.text;
  lWideStr := lAnsiStr;
  lUnicodeString.Length := Length( lWideStr );
  lUnicodeString.MaximumLength := Length( lWideStr ) + 2;
  lUnicodeString.Buffer := @lWideStr[1];
  lPUnicodeString := @lUnicodeString;

ZwUnloadDriver(lPUnicodeString);
end;



Это сообщение отредактировал(а) DIMONSOFT - 21.8.2007, 01:14
--------------------
PM MAIL   Вверх
sentry
Дата 21.8.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Code Monkey
*


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

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



DIMONSOFT, почитай тут, вдруг поможет.
И покажи, какие ошибки хоть выдает, коли не выгружает...
PM MAIL   Вверх
DIMONSOFT
Дата 21.8.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нашел решение: http://forum.sources.ru/index.php?showtopic=128188
Всем еще раз спасибо smile . ne0n +1
--------------------
PM MAIL   Вверх
ne0n
Дата 21.8.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


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

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



DIMONSOFT, не во всех драйверах есть обработчик выгрузки...так что эта функция работает не в 100%(обычно так во всякой малваре поступают)  smile 

Это сообщение отредактировал(а) ne0n - 21.8.2007, 15:08
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0953 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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