Как определить, кто и когда изменяет код библиотеки DLL.
В моем окружении есть странная машина. при загрузке программы user32.dll, кодекс user32.dll!ShowWindow модифицируется. результат будет:
u user32!витрина
*** Ошибка: не удалось найти файл символов. По умолчанию экспортируются символы для C:\Windows\system32\user32.dll -
user32!витрина:
00000000'775a1910 ff2572fc0600 СПМ параметр qword ptr записи [библиотека user32!DrawFrameControl+0x15a8 (00000000`77611588)]
00000000'775a1916 0000 добавить байт ptr [rax], al
00000000'775a1918 0f05 системного вызова
00000000'775a191a С3 рет
00000000'775a191b 90 НОП
в обычной машине код:
u user32!витрина
user32!витрина:
00000000'76d11910 4c8bd1 mov r10, rcx
00000000'76d11913 b858100000 mov eax, 1058h
00000000'76d11918 0f05 системного вызова
00000000'76d1191a С3 рет
00000000'76d1191b 90 nop
файл: c:\windows\system32\user32.dll в этих двух машинах происходит то же самое в двоичном виде. я сравнил.
я хочу знать, кто и когда изменил код в этой странной машине. я думаю, что он может быть изменен драйвером при загрузке модуля. И я думаю, что мне нужно написать водителя, чтобы поймать его. но у меня нет опыта работы водителем.
Есть ли другой способ поймать его ?
Что я уже пробовал:
я пробовал, написал консольное приложение, которое не загружалось user32.dll, и я пользователь LoadLibrary для загрузки user32.dll, код также модифицируется.
Sergey Alexandrovich Kryukov
Ух ты! Если ваши наблюдения действительно верны,я бы уже переустановил всю ОС...
—СА