Другие альтернативы, чтобы обойти WH_CALLWNDPROC глобальный хук + инъекция Dll (кольцо 3)? - PullRequest
0 голосов
/ 17 ноября 2018

Я хочу знать, каковы возможные решения для обхода dll-инъекции, выполняемой руткитом при каждом выполнении любого процесса (, где используется глобальный хук WH_CALLWNDPROC сообщение, чтобы обнаружить это )?

enter image description here

Основываясь на моем случае, а также на этом ответе , я уже знаю (и проверял) две альтернативы, которые работают на 100%, чтобы обойти это, являются ли они:

1 .UnhookWindowsHookEx

2 .Выполнить мой процесс через другой процесс, с флагом DEBUG_ONLY_THIS_PROCESS , используя CreateProcess, чтобы получать уведомления о загрузке DLL, когда это обнаруживается, я беру EntryPoint of dllи напишите что-нибудь к этому, тогда dll выгружен.


3 .Другим возможным решением может быть обратный вызов TLS , как было сказано в ответе, связанном выше, но я не знаю, как реализовать (в коде) для этой цели анти-dll инъекция .Кто-то знает и может привести пример кода?

Заранее благодарим вас за любые предложения / или другие альтернативы, чтобы обойти этот способ инъекции DLL.


ВЫПУСК:

Я думаю, что 3-е возможное решение, перечисленное выше, кажется заслуживающим внимания.Затем я ищу ответ с примером кода по этому поводу: "A process can host a TLS callback, and then it will receive notifications of thread creation. That can intercept thread creation such as what is produced by CreateRemoteThread. If the thread start address is LoadLibrary(), then you have a good indication that someone is about to force-load a DLL." А затем блокировать инъекцию DLL.

1 Ответ

0 голосов
/ 26 ноября 2018

Я думаю, что нет необходимости продолжать искать разные альтернативы, вместо этого используйте альтернативы, которые вы уже нашли, такие как UnhookWindowsHookEx .Если вы хотите, просто попробуйте обратный вызов TLS в любом случае.

...