|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 26, 2004 14:45:08 У кого-нибудь есть список в удобочитаемом виде функций ядра NT 5(речь о mov eax, something; int 2e;), естественно описание что они делают и список аргументов. В природе существует? |
|
|
Дата: Авг 27, 2004 00:31:59 Ну дык у Z0MBiE уже сто лет лежит и гуглица сразу по "int 2e" . Только это всё дело меняеться с каждым сервис паком , лучше в отладчике (или дизассемблере) самому искать если надо конкретно . |
|
|
Дата: Авг 27, 2004 18:34:11 2bogrus Я смотрел лист от ZOMBiE, но там только до 199, а у меня 120F. Такое возможно? Привести кусок кода? |
|
|
Дата: Авг 27, 2004 18:38:12 Такое возможно? Такое не только возможно, такое неизбежно. Номера в eax меняются с каждым билдом/сервиспаком. У MS есть специальный скрипт для перебивки этих индексов при каждом билде, если не ошибаюсь. Так что оставь ты эту затею и шурши что-нибудь сам. |
|
|
Дата: Авг 27, 2004 21:21:33 2volodya В каком файле распологается обработчик 2e? Если можно, пример как получить этот адрес в SoftIce. |
|
|
Дата: Авг 27, 2004 21:33:06 А что, по сайту искать уже не модно? Возьми, например, мою: http://wasm.ru/article.php?article=packers2 Мне лень объяснять одни и те же вещи по нескольку раз. |
|
|
Дата: Авг 27, 2004 21:51:11 Вот ещё ссылка http://gl00my.chat.ru/nt/int2e.txt Вот MessageBeep двух видов (для w2ksp4) push 0 call MessageBeep push 500 call Sleep push 24h push 0 mov eax,1139h ; beep mov edx,esp int 2Eh push 0 call ExitProcess |
|
|
Дата: Авг 28, 2004 18:14:51 2 volodya Почитал я твою статью. Вот исследуем программу. Сбросили дамп, но все вызовы Windows API остались в виде прямых адресов, тоесть таблицу импорта востановить не удалось. В программе call xxxxxxxx. Идем туда: mov eax, 120F lea edx, [esp+04] int 2e ret 1c типичный системный вызов. Руководствуясь твоей статьей: exp KeSirvice dd KeServiceDescriptorTable ... ... f8 ... Опа, а у нас 120F. Ладно, сморим кто у нас обработчик: idt 2e ntoskrn!ExReleaseResourceForThread+0b На KiSystemService не похож. Где ошибка? |
|
|
Дата: Авг 29, 2004 07:22:39 techgl > там только до 199, а у меня 120F. Такое возможно? Системные вызовы с номерами >= 1000h идут в win2k.sys - это GDI и т.п. Это 2я таблица - W32pServiceTable. |
|
|
Дата: Авг 30, 2004 19:09:46 На KiSystemService не похож. KiSystemSerive - это немного не из той оперы. S_T_A_S_ все и сказал. Дополнительно рекомендую глянуть на: http://www.volynkin.ru/sdts.htm Сама теневая SST заполняется так: UserVerify(KeAddSystemServiceTable(W32pServiceTable,
countTable,
W32pServiceLimit,
W32pArgumentTable,
W32_SERVICE_NUMBER));
И теневая, и обычная SST имеют такую структуру: typedef struct _KSERVICE_TABLE_DESCRIPTOR {
PULONG_PTR Base;
PULONG Count;
ULONG Limit;
#if defined(_IA64_)
LONG TableBaseGpOffset;
#endif
PUCHAR Number;
} KSERVICE_TABLE_DESCRIPTOR, *PKSERVICE_TABLE_DESCRIPTOR;
Заполняются в KeAddSystemServiceTable. К сожалению, я не нашел определений аргументов и т.п., но есть IDA :) Дизасмим win32k.sys и имеем (у мя W2k SP4): INIT:A01925FD push ebx INIT:A01925FE push offset W32pArgumentTable INIT:A0192603 push W32pServiceLimit INIT:A0192609 push esi INIT:A019260A push offset W32pServiceTable INIT:A019260F call ds:KeAddSystemServiceTable Напоминаю прототип:
BOOLEAN
KeAddSystemServiceTable(
IN PULONG_PTR Base,
IN PULONG Count OPTIONAL,
IN ULONG Limit,
IN PUCHAR Number,
IN ULONG Index
)
/*++
Routine Description:
This function allows the caller to add a system service table
to the system
Arguments:
Base - Supplies the address of the system service table dispatch
table.
Count - Supplies an optional pointer to a table of per system service
counters.
Limit - Supplies the limit of the service table. Services greater
than or equal to this limit will fail.
Arguments - Supplies the address of the argument count table.
Index - Supplies index of the service table.
Return Value:
TRUE - The operation was successful.
FALSE - the operation failed. A service table is already bound to
the specified location, or the specified index is larger than
the maximum allowed index.
--*/
Нас интересует Limit. На моем компе он выглядит так: .data:A018BBA0 W32pServiceLimit dd 280h Полагаю, теперь вопросы должны уйти. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.039 |