Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

Как узнать какие DLL подгружены к процессу?   Найти похожие ветки 

 
Xemax   (2002-10-12 21:24) [0]

Как узнать какие DLL подгружены к процессу? Это надо сделать используя ТОЛЬКО библиотеки Ntdll.dll и Kernel32.dll. Еще раз обращу внимание на слово ТОЛЬКО - PSAPI.dll выходит за граници этого только!!!


 
Digitman   (2002-10-13 13:33) [1]

читай все относящееся к структуре PEB (process environmemt block)


 
Xemax   (2002-10-13 18:20) [2]

typedef struct _PEB {
BYTE Reserved1[2];
BYTE BeingDebugged;
BYTE Reserved2[229];
PVOID Reserved3[59];
ULONG SessionId;
} PEB, *PPEB;

И что мне потом с этой структурой делать?


 
Digitman   (2002-10-14 09:12) [3]

нет, это не PEB.
это жалкое подобие PEB

а что тебе не читается обычными (документированными) средствами-то ?

в цикле (с пом. ф-ции VirtualQuery[Ex]) пройдись по всем регионам ВАП процесса, отфильтруй только те, что имеют MEMORY_BASIC_INFORMATION.TYPE = MEM_IMAGE, базовый адрес каждого из полученных регионов трактуй как хэндл PE-модуля и вызывай для этого хэндла GetMofuleFileName().
И всех делов ! Фильтр по TYPE = MEM_IMAGE заведомо работает на всех NT-based платформах, так что - проще способа не найдешь


 
Толик   (2002-10-14 10:35) [4]

В StringList записываются имена подгруженных файлов и HICON ассоциированных с ними иконок

procedure EnumLoadingModule(const AStrings: TStrings);
var
MemoryInfo: TMemoryBasicInformation;
Region: longword;
pStr: pchar;
FileInfo: PSHFileInfo;
const
SizeFileInfo: longword = System.SizeOf(TSHFileInfo);
begin
Region := 0;
pStr := SysUtils.StrAlloc(MAX_PATH);
try
FileInfo := System.GetMemory(SizeFileInfo);
try
while Windows.VirtualQuery(pointer(Region), MemoryInfo, System.SizeOf(MemoryInfo)) =
System.SizeOf(MemoryInfo) do
with MemoryInfo do begin
if (State <> MEM_FREE) and (BaseAddress <> nil) and (AllocationBase = BaseAddress) then begin
if GetModuleFileName(longword(BaseAddress), pStr, MAX_PATH) > 0 then begin
ShellAPI.SHGetFileInfo(pStr, 0, FileInfo^, SizeFileInfo,
SHGFI_ICON or SHGFI_SMALLICON);
AStrings.AddObject(pStr, TObject(FileInfo^.hIcon));
end;//if
end;//if
Region := Region + RegionSize;
end;//with
finally
System.FreeMemory(FileInfo);
end;//try
finally
SysUtils.StrDispose(pStr);
end;//try
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
14-82915
lipskiy
2002-10-26 00:21
2002.11.25
Две сети на одном компе - и чтоб одна другую не видела - реально?


3-82595
iNew
2002-11-05 03:58
2002.11.25
В BLOB поле храню фотографии, как сделать чтобы если есть


1-82685
Evyshka
2002-11-13 09:55
2002.11.25
Как вытащить текущий год ? :-))


7-83015
dr.karter
2002-09-25 15:23
2002.11.25
Реестр


6-82894
Serg T
2002-09-21 22:27
2002.11.25
Как скачать URL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский