На собеседовании при приеме на работу меня попросили скрыть процесс от SoftIce - это возможно???? Все варианты которые я нашел не могут справится с SoftIce. Что по этому поводу думают эксперты
Да-да... Меня тоже интересует этот вопрос. И ещё я нашёл несколько защит от отладки SoftIce'ом... Но это не спасает. Может кто даст линки?
Достаточно удалить процесс из списка EPROCESS и по командам proc и addr в софтайсе он выводиться не будет. Если надо сделать антиотладку, то проще будет просто грохать систему при запуске айса.
Ms Rem, а что за список EPROCESS? =) Как получить его адрес? Это типа массив? Я просто посмотрел определине EPROCESS (сразу подумал, что это связный список) и ничего не нашёл там для себя.
Для доступа к списку EPROCESS используется NtQuerySystemInformation ? Если так, то дадите ссылочку на пример ее использования на С++? А то я не могу заставить ее работать. В проекте на MS Visual C++ 6.0 компилятор ругается, наверно чего-то не подключил
Drakon, защиту от отладки я видел, веселая вещь, но не к месту, вот ссылочка http://www.delphiworld.narod.ru/base/anti_softice.html ,провда пример на Delphi
Проблема похоже так и решается, но по NtQuerySystemInformation нет инфы в MSDN, я пользуюсь January 2001 MSDN.
Ms Rem, что ты подразумеваешь под удалить процесс из списка EPROCESS? Я нашел пример где переопределяется указатель предыдущего процесса в списке EPROCESS так, чтобы через скрываемый процесс перепрыгивали при просмотре. Такой финт работает только на диспечер задач, SoftIce все видит.
Слышал, что можно скрыть процесс замаскировав его под скринсейвер, деталей пока не знаю, что вы об этом думаете? Прочитал статью Ms Rem'а о нулевом кольце - там все детально описано. Тему можно считать закрытой!!!
Saint German Как я с тобой свяжусь? и о чем говорить, я там не работаю, а только хочу устроится, не факт что мне это удастся
Не могу получить список модулей с помощью ZwQuerySystemInformation. Информацию о процессах с помощью той же процедуры получаю нормально, может я использую неправильную структуру SYSTEM_MODULE_INFORMATION, вот какой вариант я использую: typedef struct _SYSTEM_MODULE_INFORMATION { //SystemInformationClass 11 ULONG Reserved[2]; PVOID Base; ULONG Size; ULONG Flags; USHORT Index; USHORT Unknown; USHORT LoadCount; USHORT ModuleNameOffset; CHAR ImageName[256]; }SYSTEM_MODULE_INFORMATION, * PSYSTEM_MODULE_INFORMATION; typedef struct _STSTEM_MODULE_INFORMATION_EX { ULONG ModuleCount; SYSTEM_MODULE_INFORMATION *Modules; }SYSTEM_MODULE_INFORMATION_EX, * PSYSTEM_MODULE_INFORMATION_EX; подскажите что не так, если ошибка в структуре