Цитата:
Сообщение от alexteam
патч дллку ))
|
рульный совет.
после инжекта ты знаеш адрес загрузки длл.
можно узнать по какому смещению лежит нужная переменная.
потом пишем туда через WriteProcessMemory
(ты уже писал в память чтобы "заинжектить" и значит у тебя есть соответствующие права)
только адреса придется искать.
твой случай можно разрулить так:
в длл делаем экспортируемую функию
int m_connect(int port)
{
// тут делаем что тебе нужно с портом.
return true;
};
у тебя есть своя программа_инжектилка.
там пишем такой код.
c++ Код:
DWORD a1 = loadLibrary("твой_модуль.dll");
DWORD a2 = getprocaddress(a1,"m_connect");
FreeLibrary(a1);
DWORD ofs_connect = a2 - a1; // узнали как далеко находится функция [b]m_connect[/b] от начала длл.
HANDLE hProcess = CreateProcess("линейка.exe");
DWORD pStartThread = GetProcAddress(GetModuleHandle(L"kernel32.dll"), "LoadLibraryW");
PVOID mem = VirtualAllocEx(hProcess,0,0x1000,0x1000,0x40);
if(! WriteProcessMemory(hProcess, mem, "путь_к_длл", 50, 0) ) return 0; //чтото нитак.
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, pStartThread, mem, CREATE_SUSPENDED, NULL);
ResumeThread(hThread);
//тоесть выполнили стандартную догрузку длл.
DWORD dwWaitResult = WaitForSingleObject( hThread, INFINITE);// ждем завершения потока
DWORD exitcode = 0;
BOOL rth = GetExitCodeThread(hThread,&exitcode); // получаем его результат.
CloseHandle(hThread);//
VirtualFreeEx(hProcess,mem,0,MEM_RELEASE);// освобождаем ненужные ресурсы.
//получаем адрес функции "m_connect" в процесе "линейка.ехе"
DWORD connect_address = exitcode + ofs_connect;
// теперь уличная магия
hThread = CreateRemoteThread(hProcess, NULL, 0, connect_address, port, CREATE_SUSPENDED, NULL);
ResumeThread(hThread);
CloseHandle(hThread);
CloseHandle(hProcess);
Добавлено через 3 минуты
Цитата:
Сообщение от izen
ну а в чем проблема через тот-же сокет передать?
|
+1
Цитата:
Сообщение от izen
Банальный файл в корне то-же вариант.
|
а за такое на кострах сжигать надо.
Добавлено через 2 минуты
Цитата:
Сообщение от izen
или да, найти абсолютное файловое смещение номера порта в dll и тупо ее патчить перед иньектом.
|
и за такое тоже