Не соглашусь, он очень плохо написан, не в обиду тс.инжектор у тебя нормальный
1) я имел ввиду его работоспособность, а не кодстайлНе соглашусь, он очень плохо написан, не в обиду тс.
1. char buf[50] = {0}; и sprintf + printf не нужно, printf и так умеет принимать аргументы как и sprintf, buf выкинуть и сразу печатать через printf
2. в C++ переменные должны быть объявлены как можно ближе к использованию, не нужно их писать в начале функции, объявляй сразу где они появляются
3. выбери единый стиль для названия переменных и другого, у тебя одна переменная капсом, другая в виндовом стиле, третья в кэмилькейсе
4. не проверяешь результаты выделения памяти, записи памяти и создания потока в удаленном процессе, это важно
5. записывая имя дллки в удаленный процесс ты записываешь ТОЛЬКО ее длину, это анстаб, будет крашить у рандомных людей, сложновыявляемая ошибка, нужно выделять и записывать (длина + 1) * sizeof(char), т.к. нужно записать еще нулевой символ потому что LoadLibrary принимает строку заканчивающуюся нулем, да sizeof(char) сейчас бесполезен, но если ты решишь поменять на LoadLibraryW то все что нужно будет заменить на wchar_t.
6. в IsProcessRun ты не закрываешь снимок процессов, это утечка памяти
7. выкинь функцию IsProcessRun, и пусть GetProcId возвращает номер процесса, а не записывает в глобальную переменную (это плохой тон), и 0 если процесса нет
8. инклудов хватит на параход, проверь что они действительно тебе все нужны
Так работоспособность тоже нестабильная.имел ввиду его работоспособность
при распаковке она загружается на диск , мне же нужно избавиться от этого и что бы она с ресурса проекта сразу инжектилась без распаковкиинжектор у тебя нормальный, он работает правильно
dll нужно обязательно распаковывать куда-нибудь перед инжектом и указывать полный путь к ней
Пожалуйста, авторизуйтесь для просмотра ссылки.
CHAR szDllPath[MAX_PATH];
DWORD dwBytesReturned = GetFullPathNameA(lpDllName, MAX_PATH, szDllPath, NULL);
тогда используй другой способ инжекта, LL тут не подойдетпри распаковке она загружается на диск , мне же нужно избавиться от этого и что бы она с ресурса проекта сразу инжектилась без распаковки
шо таке LL?тогда используй другой способ инжекта, LL тут не подойдет
UPD:Пожалуйста, авторизуйтесь для просмотра ссылки.
инжект с помощью удаленного вызова LoadLibraryшо таке LL?
понял , спасибоинжект с помощью удаленного вызова LoadLibrary
охуенно работает)тогда используй другой способ инжекта, LL тут не подойдет
UPD:Пожалуйста, авторизуйтесь для просмотра ссылки.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz