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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> API --- не работает код 
:(
    Опции темы
SneG0K
  Дата 19.12.2007, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Я тут решил сделать следующий шаг в программировании на дельфях и решил взяться за API

Код

Function NewZwQuerySystemInformation(ASystemInformationClass: dword;
                                     ASystemInformation: Pointer;
                                     ASystemInformationLength: dword;
                                     AReturnLength: PCardinal): NTStatus; stdcall;
var
 Info, Prev: PSYSTEM_PROCESSES;
begin
 Result := TrueZwQuerySystemInformation(ASystemInformationClass,
                                        ASystemInformation,
                                        ASystemInformationLength,
                                        AReturnLength);

 if (ASystemInformationClass = SystemProcessesAndThreadsInformation) and
    (Result = STATUS_SUCCESS) then
    begin
      Info := ASystemInformation;
      while(Info^.NextEntryDelta > 0) do
       begin
         Prev := Info;
         Info := pointer(dword(Info) + Info^.NextEntryDelta);
         if lstrcmpiw(Info^.ProcessName.Buffer, 'winlogon.exe') = 0 then
           Prev^.NextEntryDelta := Prev^.NextEntryDelta + Info^.NextEntryDelta;
       end;
    end;
end;



Этот код должен скрывать винлогон из диспетчера, но при компилировании вылетают ошибки..... помогите разобраться smile 
PM WWW Skype   Вверх
Exai1e
Дата 19.12.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SneG0K, 
Не забывай писать текст ошибок ;)


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Riply
Дата 19.12.2007, 22:22 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(SneG0K @  19.12.2007,  21:13 Найти цитируемый пост)
Этот код должен скрывать винлогон из диспетчера, но при компилировании вылетают ошибки


Если ты не в состоянии сам разобраться с ошибками при "компилировании",
то IMHO рано браться за перхват API.
Может, сначала, книжки почитать ?

По сабжу: внешне все выглядит пристойно (не компилировала).
Смотри как у тебя определены используемые структуры и констаниы.
PM MAIL   Вверх
ASGDeveloper
Дата 20.12.2007, 13:10 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


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

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



Цитата(SneG0K @  19.12.2007,  21:13 Найти цитируемый пост)
Этот код должен скрывать винлогон из диспетчера, но при компилировании вылетают ошибки..... помогите разобраться 

Этот код никого не скрывает, это просто код перехватчика. Для того, чтобы произошло скрытие нужно поставить хук на функцию ZwQuerySystemInformation.

И вообще нужно немного по-другому составить код:
Код

Function NewZwQuerySystemInformation(ASystemInformationClass: dword;
ASystemInformation: Pointer;
ASystemInformationLength: dword;
AReturnLength: PCardinal): NTStatus; stdcall;
var
Info, Prev: PSYSTEM_PROCESSES;
begin
Result := TrueZwQuerySystemInformation(ASystemInformationClass,
ASystemInformation,
ASystemInformationLength,
AReturnLength);

if (ASystemInformationClass = SystemProcessesAndThreadsInformation) and
(Result = STATUS_SUCCESS) then
begin
Info := ASystemInformation;
while(Info^.NextEntryDelta > 0) do
begin
Prev := Info;
Info := pointer(dword(Info) + Info^.NextEntryDelta);
if lstrcmpiw(Info^.ProcessName.Buffer, 'winlogon.exe') = 0 then
if Info^.NextEntryDelta=0 then
Prev^.NextEntryDelta:=0
else
Prev^.NextEntryDelta := Prev^.NextEntryDelta + Info^.NextEntryDelta;
end;
end;
end;
end;

Потому что, если скрываемый процесс последний в списке, то Info^.NextEntryDelta=0 и строка Prev^.NextEntryDelta := Prev^.NextEntryDelta + Info^.NextEntryDelta; ничего не делает

В аттаче рабочий вариант скрытия винлогона.

Это сообщение отредактировал(а) ASGDeveloper - 20.12.2007, 13:23

Присоединённый файл ( Кол-во скачиваний: 32 )
Присоединённый файл  prochide.rar 10,11 Kb
PM MAIL   Вверх
Yanis
Дата 12.1.2008, 22:19 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ASGDeveloper
За такое форматирование надо ставить в угол.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
ama_kid
Дата 12.1.2008, 23:50 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(SneG0K @  19.12.2007,  21:13 Найти цитируемый пост)
Я тут решил сделать следующий шаг в программировании на дельфях и решил взяться за API
Как-то не с того конца ты решил взяться  smile Я, помнится, начинал с банального создания окон и работы с сообщениями... А ты - сразу за перехват...  smile 



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.

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


 




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


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

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