CreateToolHelp32Snapshot - аналогичные методы получения СП

Для неординарных вопросов. Если вы опытный программист, попавший в трудную ситуацию, — вам сюда.

Модератор: gaidar

Правила форума
Этот раздел не предназначен для того, чтобы вы адресовали свою проблему профессионалам.
Этот раздел предназначен для профессионалов, которые столкнулись с проблемой и не могут решить ее самостоятельно.
Если вы считаете себя профессионалом, а свою проблему сложной — вам сюда.
Если модератор посчитает, что вы ошиблись, то на первый раз он перенесет ваше сообщение в основной раздел без последствий для автора. Во второй раз тема будет закрыта, а автору будет выписано нарушение. В третий раз автор будет забанен.
xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

CreateToolHelp32Snapshot - аналогичные методы получения СП

Сообщение xenomorph » 31.10.2006 (Вт) 23:35

Привет Всем!

Задача:

Получить список процессов в ОС Win 4.0 Wks Sp 6a \ Win 4.0 Srv Sp 6a
Проблема:

Can’t find entry point – CreateToolHelp32Snapshot
- система ругается на kernel32.dll ///
Работает с PSAPI.DLL ...
но это лишних 19 кб! Что для меня критично!
Я канкшно могу её запихнуть в ресурсы ... но
может есть ещё методы?

Вопрос:

Есть ли какой-то универсальный (читай - ещё какой)
метод выковыривания списка процессов?
я накопал два:
1. PSAPI.DLL
2. CreateToolHelp32Snapshot
--
Заранее спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 01.11.2006 (Ср) 0:50

ntdll!ZwQuerySystemInformation. Кажется, диспетчер задач через него работает.
Изображение

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 04.11.2006 (Сб) 19:46

2 keks-n - спасибо! То что нужно!
Проблема в том что эта часть слабо документирована ...

Я сам не раскопаю - ...
достаточно сложно ...

Если кто сможет - поделитесь пожалуйста!
т.е. тема открыта!
--
Всем спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 04.11.2006 (Сб) 23:39

То ли на форуме, то ли на местном сайте был, однако пример. И был даже пример перехвата оной, с целью скрытия процесса
Изображение

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

ку

Сообщение xenomorph » 05.11.2006 (Вс) 10:20

2 keks-n

Пример того что надо на Pascal-e:

Чего я НЕ нашёл:

1. Декларации структур.
2. GetInfoTable.
3. тут вообще-то callbacks есть*?
--
Вообщем портануть мозгов у меня не хватает *-((.
Но может кому поможет ...

Код: Выделить всё
'=================================================
{
  Получение списка процессов через ZwQuerySystemInformation.
}
procedure GetNativeProcessList(var List: PListStruct);
var
Info: PSYSTEM_PROCESSES;
NewItem: PProcessRecord;
Mem: pointer;
begin
  Info := GetInfoTable(SystemProcessesAndThreadsInformation);
  Mem := Info;
  if Info = nil then Exit;
  repeat
   GetMem(NewItem, SizeOf(TProcessRecord));
   ZeroMemory(NewItem, SizeOf(TProcessRecord));
   lstrcpy(@NewItem^.ProcessName,
           PChar(WideCharToString(Info^.ProcessName.Buffer)));
   NewItem^.ProcessId  := Info^.ProcessId;
   NewItem^.ParrentPID := Info^.InheritedFromProcessId;
   AddItem(List, NewItem);
   Info := pointer(dword(info) + info^.NextEntryDelta);
  until Info^.NextEntryDelta = 0;
  VirtualFree(Mem, 0, MEM_RELEASE);
end;
'=================================================


Анологичная функция использована в статье про хэндлы ...

http://www.vbstreets.ru/VB/Articles/66343.aspx

но обработка структур по дельте, когда я их НЕ понимаю ...
эт не для меня ...
Я просто внимательно послежу за данным топиком! :-)
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 05.11.2006 (Вс) 11:29

xenomorph
Завтра буду дома - поковыряю.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 11.11.2006 (Сб) 11:29

Анологичная функция использована в статье про хэндлы ...

http://www.vbstreets.ru/VB/Articles/66343.aspx
А во второй статьея показывал, как получить список процессов... :wink: Читай прямо с начала раздел "Обнаружение скрытых процессов"
А я все практикую лечение травами...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 11.11.2006 (Сб) 23:35

2 Twister:
Статья просто супер!
Я уже код оттуда порипал 8-).

Однако проблема похожая:
Can't find dll entry point QueryInformationJobObject in kernel32.dll!

Можно ли как нить БЕЗ этой функции?
--
Заранее огромное спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 11.11.2006 (Сб) 23:37

2 Twister:

Забыл добавить - я извращаюсь на WinNT 4.0 sp6a в VMWare.

Просьба за криво-недоделаный kernel32.dll пинать не меня а Билли! *-(.
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 20.11.2006 (Пн) 15:03

Спасибо за отклик на статью. Мне приятно что старания не прошли даром... :wink:

По поводу твоей проблемы: просто убери тот кусок кода, который строит список процессов по job-объектам, ибо я не знаю есть ли таковые в NT4...
А я все практикую лечение травами...


Вернуться в Раздел для Профессионалов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList  
cron