Clerk Ага, понятно. Да мне, главное, чтобы эффективно работало и не очень сильно расходовало системные ресурсы. Это пока что на первом месте для меня. Что посоветуете использовать? В каком плане "не актуально"? В плане установки перехвата или в плане используемых функций для этого? Есть какие то актуальные библиотеки для перехвата (Delphi), или лучше все пробовать реализовывать самому? Сорри, что задаю много вопросов, но я хочу научиться.
Charm0nt Троян не должен использовать патчи. Вобще нельзя изменять кодосекции. В связи с этим я даже не рассматриваю всякие движки для сплайсов и тп. как годные для использования(ну разве что для отладки и в качестве надстроек в легальном софте). Актуально такое было лет 6%7 назад. Технологический уровень обоих сторон растёт.
Clerk А, имеется в виду под "Патчи" - установка перехвата чужом процессе (то есть изменяем память)? А трояны, типа Zeus и т. д. работают разве не с помощью таких технологий как сплайсинг и т. д. для перехвата API?
как-то через одно место все. Как может быть неизвестен размер данных которые вы хотите вставить? Указатель в send заменяете на свой, в котором ваши данные. Зачем тут исключения какие-то, если большой размер VirtualAlloc, иначе HeapXxx. Че велсипед изобретать.
onSide Новый размер данных может быть запросто неизвестен. Например, если в отправляемом пакете обнаруживаю определенный байт некоторого значения, - значит делаю изменения (дополнения и т. п.). Таких байтов может быть много, значит размер нового блока данных не всегда известный.
Charm0nt вариант 1-просто юзаешь HeapReAlloc и делаешь что угодно вариант 2-сначала определяешь на сколько изменить размер, и выделяешь память один раз, делаешь изменения. И вообще сомневаюсь что у тебя будет такая побайтная замена по очень много раз на один пакет. Задача похожа на теоретическую, сначала попробуй реализовать самый простой для тебя метод и потом смотри подходит тебе или нет.