
09.12.2009, 16:48
|
|
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами:
9399214
Репутация:
52
|
|
возник вопрос как получить список всех модулей в системе (загруженных) через NtQuerySystemInformation немогу понять какую ей структуру надо
Код:
Procedure GetSystemInformation;
var
Temp: PSYSTEM_MODULE_INFORMATION;
modin:PSYSTEM_MODULE_INFORMATION;
ReturnLength: DWORD;
I: integer;
ou:integer;
begin
ou:=0;
try
ReturnLength := 0;
if NtQuerySystemInformation(SystemModuleInformation,nil, 0, ReturnLength) <> STATUS_INFO_LENGTH_MISMATCH then
Exit;
if ReturnLength > 0 then
begin
GetMem(modin, ReturnLength);
try
if NtQuerySystemInformation(SystemModuleInformation,modin, ReturnLength, ReturnLength) = 0 then
begin
Temp := modin;
repeat
Form2.ListBox1.Items.Add(Temp^.aSysM.ImageName);
Temp := Pointer(DWORD(Temp) + Temp^.aSysM.ModuleNameOffset);
if Temp^.aSysM.ModuleNameOffset=0 then
inc(ou);
until ou=2;
end;
finally
FreeMem(modin);
end;
end;
finally
end;
end;
SYSTEM_MODULE= ^_SYSTEM_MODULE;
_SYSTEM_MODULE= packed record
Reserved:array[0..1] of ULONG;
Base:ULONG;
Size:ULONG;
Flags:ULONG;
Index:ULONG;
Unknown:ULONG;
ModuleNameOffset:SHORT;
ImageName:Array[0..256] of Char;
end;
PSYSTEM_MODULE_INFORMATION = ^SYSTEM_MODULE_INFORMATION;
SYSTEM_MODULE_INFORMATION = packed record
uCount:ULONG;
aSysM:SYSTEM_MODULE;
end;
уже начался брутвфорс по перебору вариантов но это не дело...
|
|
|