Пожалуйста, обратите внимание, что пользователь заблокирован
А есть возможность в WinAPI написать hook для перехвата html-текста и возможности его подмены? Может кто делал подобное или примеры?
Раньше можно было подгузить свою dll в AppInit_DLLs, не знаю работает ли этот метод сейчасА есть возможность в WinAPI написать hook для перехвата html-текста и возможности его подмены? Может кто делал подобное или примеры?
Такое делали любые банкботы, см. в паблике сорцы того же Зевс (12 летней давности, устарело, но для понимания сути пойдет).Может кто делал подобное или примеры?
Работает, но есть ограничения на вин8 (не работает при secure boot), на семерке вроде по дефолту отключено или винда может загружать только подписанные длл (подробнее см. мсдн, уже не помню).свою dll в AppInit_DLLs
Вообще не стоит задачей перехватывать данные. Лишь пользователь не смог выйти в сеть. может кто взяться за проект?Дело не столько в Winapi, перехват где, в контексте браузеров? Сначала надо решить задачу по инжекту кода в процесс браузера, далее этот код развернёт в процессе браузера хуки на функции, которые отвечают за приём данных с web. Если это такие браузеры как Chrome, то там собственные функции отвечающие за чтение данных по сети, эти функции естественно никуда не экспортируются и искать такое придётся сигнатурно, например сканируя память процесса. так что перехватить просто winsock'овский recv недостаточно, потому что весь траф пошифрован ( 99% веб сайтов используют SSL )
При этом чтобы перехватить внутренние функции нужно будет воспользоваться не какими-то магическими вызовами Winapi, а например сплайсингом ( перезаписью первых N инструкций машинного кода функции на инструкцию jmp <myhandler> - где myhandler собственно обработчик который будет выполняться вместо перехваченной функции )
Как это примерно реализовывается можно посмотреть тут https://github.com/rossja/TinyNuke/blob/master/Bot/FirefoxChrome.cpp
Ещё например, вместо того чтобы искать сигнатурно функции, которые отвечают за приём трафа, можно попробовать организовать MITM, добавив свои сертификаты в доверенные CA и перенаправлять траф на собственный локальный "прокси сервер", для этого скорее всего понадобится тоже сделать хук ( например тем же самым сплайсингом ) уже винапишных функций, скорее всего это будет винсоковский connect в перехватчике которого надо будет подрубить сокет к локальному серверу ( и пробросить туда собственно айпишник на который браузер коннектится ) и далее на стороне локального сервера имитировать SSL handshake, выдав обратно браузеру наш сертификат который уже добавлен в трасты.
Вообщем данная задача делится на
1) Изучение Техник инжекта кода
2) Изучение https протокола https://datatracker.ietf.org/doc/html/rfc2818
- Изучение таких WinApi как OpenProcess,CreateFileMapping,MapViewOfFile2,ReadProcessMemory,WriteProcessMemory
- Изучение хотя бы очень базово инструкций интеловского ассемблера x86/x64 чтобы вообще понимать что происходит
- Изучение структуры PE файлов в Windows https://wasm.in/blogs/pe-urok-1-obzor-pe-formata.50/ https://habr.com/ru/post/266831/
- Изучение техники ReflectiveDllInjection