Академический Документы
Профессиональный Документы
Культура Документы
процессе, оттуда мониторить список процессов и внедрять в браузеры нагрузку (возможно, DLL
которая будет работать уже конкретно в браузере).
Тут МЫ ПОНИМАЕМ, что на 64 битной системе 64-битнй модуль будет одновременно держать в себе
нагрузку и для 32 -битных браузеров и для 64-битных браузеров!
ClientID, group и внешний IP-адрес будут переданы через функцию Start в параметре
ParentInfo
Конфиг для динамических инжектов будет передан через функию Control( Ctl = "dinj")
Конфиг для статическких инжектов будет передан через функию Control( Ctl = "sinj")
2. код внутри модуля, в некотором потоке мониторит процессы и грузить некоторую нагрузку в
браузеры. этой нагрузке передаётся ранее полученный конфиг от демо-запускатора и мы наблюдаем
работу инжекта.
Требования:
2. код самого модуля не должен пытаться получить путь к самому себе, ибо в реальных условиях он
тоже будет запускаться в памяти без сохранения на диск
....
6 Модуль экспортирует следующие функции: Start, Control, Release, FreeBuffer. Все функции имеют
конверцию вызова stdcall и экспортируются по именам.
6.1 Функция Start имеет следующий прототип:
PVOID Start(
LPCSTR ModuleName,
LPCBYTE Arg,
SIZE_T ArgLen,
LPSTR ResultInfo,
PVOID EventCallback,
PVOID EventCallbackContext,
PVOID Reserved1);
ResultInfo -буфер для результирующей строки ctl. Буфер имеет фиксированную длину 1024 байта
Функция в случае удачи возвращает описатель, который необходимо использовать при вызове
функций Control и Release. В случае неудачи функция возвращает ноль.
CHAR ParentID[256];
CHAR ParentGroup[64];
CHAR SelfIP[64];
LPCWSTR ParentFiles;
} ;
ParentFiles - не используется
BOOL Control (
PVOID ModuleHandle,
LPCSTR Ctl,
LPCBYTE CtlArg,
SIZE_T CtlArgLen,
LPSTR CtlResultInfo,
PVOID* ppOutData,
PDWORD pOutDataSize,
LPCSTR pOutDataTag,
PVOID Reserved1);
ResultInfo -буфер для результирующей строки ctl. Буфер имеет фиксированную длину 1024 байта
pOutDataTag - буфер для вспомогательного тега, который будет отправлен на сервер. Буфер имеет
фиксированную длину 128 байт
Функция в случае удачи возвращает TRUE, в противном случае функция возвращает FALSE. В случае
успеха если значение *ppOutData после вызова не равно нулю, то этот буфер должен быть
освобождён через функцию FreeBuffer
VOID Release (
PVOID ModuleHandle);
Функция реализует полное завершение работы модуля. В её задачи входит удаление всех ресурсов
используемых в ходе работы модуля.
VOID FreeBuffer (
PVOID pMemory);