Показать сообщение отдельно
Старый 10.11.2010, 00:54   #6
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

Цитата:
Сообщение от 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, "путь_к_длл", 500) ) 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 и тупо ее патчить перед иньектом.
и за такое тоже
__________________
Шожиделать.. ботить хочется..

Последний раз редактировалось destructor, 10.11.2010 в 00:54. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
За это сообщение destructor нажился 2 спасибками от: