Вопрос такой назрел, собственно, почему используют сисколлы для обхода юм хуков, если можно выполнить анхук всей dll.
Например ntdll.dll
1) маппим копию с диска ntdll в память
2) находим VA .text секции похученной dll
3) находим VA .text секции смапленной чистой копии
4) получаем mem protect .text секции похученной dll
5) копируем «чистую» .text секцию по VA похученной, тем самым пропатчивая аверские хуки до состояния оригинала. Т.е анхук.
6) восстанавливаем mem protect свежесмапленной секции, чтобы было как у похученной.
7)???profit
В чем преимущества сисколлов? Или я чего то не знаю? Если объективно проще и универсальнее этот способ.
UPD. При таком подходе
1) функции для анхука можно сисколлить, а уже после анхука использовать остальные апи в привычной манере.
2) если условная ntdll юзает импорты, то их патчить тоже.
Например ntdll.dll
1) маппим копию с диска ntdll в память
2) находим VA .text секции похученной dll
3) находим VA .text секции смапленной чистой копии
4) получаем mem protect .text секции похученной dll
5) копируем «чистую» .text секцию по VA похученной, тем самым пропатчивая аверские хуки до состояния оригинала. Т.е анхук.
6) восстанавливаем mem protect свежесмапленной секции, чтобы было как у похученной.
7)???profit
В чем преимущества сисколлов? Или я чего то не знаю? Если объективно проще и универсальнее этот способ.
UPD. При таком подходе
1) функции для анхука можно сисколлить, а уже после анхука использовать остальные апи в привычной манере.
2) если условная ntdll юзает импорты, то их патчить тоже.
Последнее редактирование: