Операция выполнена!
Закрыть
Хабы: Информационная безопасность, Сетевые технологии

Эта статья появилась как следствие моего желания к обобщению опыта, полученного при изучении внутреннего строения подсистемы работы с RPC в Windows. В течение множества лет я сначала работал с COM/DCOM, создавал кастомные сервера и клиенты, которые использовали эти технологии. При этом вся работа с COM велась с использованием стандартных средств: MIDL и библиотеки ATL. Потом я начал более глубоко вникать в устройство внутренних механизмов Windows и тут возникла необходимость в использовании RPC на гораздо более низком уровне, который бы позволял как можно более полно использовать все возможности этой технологии. Однако, как оказалось, в сети довольно сложно найти какой-то материал, который бы освещал RPC с необходимых мне точек зрения. Поэтому волей-неволей, но мне пришлось самому изучать то, что нужно мне и с той детализацией, которая мне была нужна. Как итог сейчас, например, я могу строить RPC сервера и клиенты абсолютно без использования MIDL или NDR для передачи совершенно произвольных данных. Могу реализовать клиента, который бы осуществлял десятки одновременных параллельных запросов к одному и тому же RPC серверу. Могу возвращать с RPC сервера расширенную информацию об ошибках, а также получать максимально возможную информацию о клиенте, который произвёл вызов. Кроме того я был вынужден достаточно плотно изучить и стандартную подсистему кодирования NDR и теперь у меня есть собственные расширенные примеры кодирования и декодирования всех основных типов на основе официально не декларируемых функций. И теперь весь этот опыт я постараюсь как можно полно и подробно представить в этой статье. Если у кого-либо из читателей возникнут дополнения/замечания, то буду рад услышать полезную информацию от умных людей.

Читать далее
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro