В модуле uglobalfuncs.pas есть процедура
procedure GetProcessList(var sl: TStrings);
в ней есть строки:
GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
tmp:=LowerCase(ExtractFileName(string(ModName)));
Так вот, функция GetModuleFileNameEx не для всех процессов возвращает имя. И если имени нет, то в буфере ModName остается прошлая строка или вообще мусор. Поэтому предлагаю изменить так:
var cnt: integer
....
cnt:= GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
ModName[cnt]:= #0;
tmp:=LowerCase(ExtractFileName(string(ModName)));
Если так не сделать то пакет хак пытается инжектить не те процессы.
Например первый процесс найден нужный l2.bin. Потом идет какой то процесс без имени. А в списке опять таки получаем имя l2.bin.
Добавлено через 9 часов 8 минут
alexteam, каким образом ты реализовал возможность не обрабатывать трафик в каком то из направлений?
Ты просто читаешь с сокета сколько пришло и пересылаешь по назначению?
Последний раз редактировалось Yegor, 10.01.2010 в 01:03.
Причина: Добавлено сообщение
|