Начинающий
-
Автор темы
- #1
Есть простая функция
BOOL GetComputerNameW(
LPWSTR lpBuffer,
LPDWORD nSize
);
Есть простая программа)
int main(){
do {
wchar_t computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName) / sizeof(computerName[0]);
GetComputerNameW(computerName, &size);
wprintf(L"Computer name: %ls\n", computerName);
getchar();
} while (1);
И простая hook.dll
BOOL WINAPI new_GetComputerNameW(LPWSTR lpBuffer, LPDWORD nSize) {
char* comp_name = (char*)"BLABLA";
const auto res = orig_comp(lpBuffer, nSize);
wcsncpy(lpBuffer, (wchar_t*)comp_name, *nSize);
*nSize = wcslen(lpBuffer);
return res;
}
И инжектор который по циклу Sleep(1) проверяет CreateToolhelp32Snapshot, находит нужный процесс и туда вставляет hook.dll.
Все работает, НО, программа первый раз выводит информацию без хука.
Мне вообще не очень нравится что это делается циклом, есть какой-нибудь способ иньектить дллку при запуске нужного процесса?
BOOL GetComputerNameW(
LPWSTR lpBuffer,
LPDWORD nSize
);
Есть простая программа)
int main(){
do {
wchar_t computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName) / sizeof(computerName[0]);
GetComputerNameW(computerName, &size);
wprintf(L"Computer name: %ls\n", computerName);
getchar();
} while (1);
И простая hook.dll
BOOL WINAPI new_GetComputerNameW(LPWSTR lpBuffer, LPDWORD nSize) {
char* comp_name = (char*)"BLABLA";
const auto res = orig_comp(lpBuffer, nSize);
wcsncpy(lpBuffer, (wchar_t*)comp_name, *nSize);
*nSize = wcslen(lpBuffer);
return res;
}
И инжектор который по циклу Sleep(1) проверяет CreateToolhelp32Snapshot, находит нужный процесс и туда вставляет hook.dll.
Все работает, НО, программа первый раз выводит информацию без хука.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Толи инжектор не успевает, толи хзМне вообще не очень нравится что это делается циклом, есть какой-нибудь способ иньектить дллку при запуске нужного процесса?